Instalando Mercurial no Mac OS X 10.6 Snow Leopard
-
13-09-2019 - |
Pergunta
Instalação Mercurial no Mac OS X 10.6 Snow Leopard
Eu instalei Mercurial 1.3.1 no Mac OS X 10.6 Snow Leopard de fonte usando o seguinte:
cd ~/src
curl -O https://www.mercurial-scm.org/release/mercurial-1.3.1.tar.gz
tar -xzvf mercurial-1.3.1.tar.gz
cd mercurial-1.3.1
make all
sudo make install
Isso instala os arquivos do site-pacotes para Mercurial em /usr/local/lib/python2.6/site-packages/
. Eu sei que a instalação de Mercurial da Imagem Mac Disk irá instalar os arquivos em /Library/Python/2.6/site-packages/
, que é o diretório site-packages para o padrão do Mac OS X instalar Python.
Eu Python 2.6.2+ instalado como um quadro com seu diretório site-packages em:
/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages
Com Mercurial instalado desta forma, tenho de emissão:
PYTHONPATH = / usr / local / lib / python2.6 / site-packages: "$ {PYTHONPATH}"
a fim de obter Mercurial para o trabalho.
Perguntas
- Como posso instalar o Mercurial de fonte com o site de pacotes em um diretório diferente?
- Existe uma vantagem ou desvantagem de ter os site-packages no local atual? Seria melhor em um dos Python diretórios local-pacote que já existe?
- Preciso estar preocupado com virtualenv funcionando corretamente desde que eu tenha modificado PYTHONPATH (ou quaisquer outros conflitos para que o assunto)?
Razões para instalar a partir da fonte
Dan Benjamin de Hivelogic fornece os benefícios de e instruções para a instalação do Mercurial de fonte em seu artigo Instalação Mercurial no Snow Leopard .
Solução
Especialmente desde que você tem Python 2.6 disponível, você pode fazer algo como python setup.py install --user
, que irá instalar Mercurial com ~ / .local como prefixo. Você não tem que mudar o PYTHONPATH para isso, mas só adicionar ~ / .local / bin ao seu PATH.
Quanto às vantagens e desvantagens: Isso tudo depende do que o seu PYTHONPATH na aparência geral como desde modificá-lo irá, naturalmente, modificar a ordem de carregamento de pacotes (que se torna relevante se você tem uma versão do Mercurial instalado com um prefixo e outro com um diferente prefixo). Em geral, eu tento colocar todos os pacotes personalizados em um determinado site-packages pasta (/usr/local/lib/python2.6/site-packages dizem). Mais uma vez: Se você é a única pessoa que vai usar essas libs, a bandeira --user fornecido pelo distutils Python 2.6 do faz algo parecido com isto muito fácil (com a adição de ~ / .local para o caminho de pesquisa padrão para módulos)
virtualenv deve funcionar muito bem, desde que você o seu PYTHONPATH é usado de forma consistente.
Outras dicas
Por necessidade de MacPorts uso? python easy_install
é a maneira mais fácil e livre de erros:
easy_install -U mercurial
É apenas uma simples bala de ouro, o tempo todo.
Instale mercurial - ou qualquer pacote de Python em geral - em seu diretório home do usuário. Assim, você pode acessá-los de qualquer Python (da mesma versão) ou qualquer virtualenv. Consulte PEP 370 para mais detalhes.
$ cd mercurial-x.y.z/
$ python2.6 setup.py install --user
$ ~/.local/bin/hg
...
Mas por que você quer construir manualmente mercurial? Eu uso MacPorts .
$ sudo port install mercurial
$ which hg
/opt/local/bin/hg
Atualizar : Hoje em dia, eu simplesmente usar PyPM para instalar mercurial em ~/.local/bin/hg
.
como sugerido por Sridhar, MacPorts funciona bem na arquitetura múltipla e versões de MacOSX + permite atualizações e muito mais:
$ port variants mercurial
mercurial has the variants:
bash_completion: Completion support for bash
zsh_completion: Install mercurial zsh completion file
$
de modo que você pode usar:
$ sudo port install mercurial +bash_completion
---> Computing dependencies for mercurial
---> Fetching mercurial
---> Attempting to fetch mercurial-1.3.1.tar.gz from http://arn.se.distfiles.macports.org/python
---> Attempting to fetch mercurial-1.3.1.tar.gz from http://www.selenic.com/mercurial/release/
---> Verifying checksum(s) for mercurial
---> Extracting mercurial
---> Configuring mercurial
---> Building mercurial
---> Staging mercurial into destroot
---> Installing mercurial @1.3.1_0+bash_completion
---> Activating mercurial @1.3.1_0+bash_completion
---> Cleaning mercurial
$
Todas essas respostas parecer complicado para os médios usuários Mac OS X, porque eles são específicos para outras plataformas instaladas. A partir de agora os Mercurial site oferece um pacote de instalação (compactado como um arquivo zip).