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 .

Foi útil?

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).

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top