Установка Mercurial на Mac OS X 10.6 Snow Leopard
Установка Mercurial на Mac OS X 10.6 Snow Leopard
Я установил Mercurial 1.3.1 на Mac OS X 10.6 Snow Leopard из источника, используя следующее:
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
Это устанавливает файлы сайтов-пакетов для Mercurial в /usr/local/lib/python2.6/site-packages/
. Я знаю, что установка Mercurial с Mac Disk Image будет устанавливать файлы в /Library/Python/2.6/site-packages/
, который является каталогом пакетов сайтов для установки Mac OS X по умолчанию Python.
У меня есть Python 2.6.2+, установленный в качестве Framework с его каталогом сайтов-пакетов в:
/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages
Когда Mercurial установлен таким образом, я должен указать:
PYTHONPATH =/USR/локальные/Library/python2.6/сайт-пакеты: "$ {PYTHONPATH}"
чтобы заставить Mercurial работать.
Вопросы
- Как я могу установить Mercurial из источника с сайтом-пакетами в другом каталоге?
- Есть ли преимущество или недостаток наличия сайтов-пакетов в текущем местоположении? Было бы лучше в одном из каталогов пакетов сайта Python, которые уже существуют?
- Нужно ли беспокоиться о том, что virtualenv работает правильно, так как я изменил PYTHONPATH (или любые другие конфликты, если на то пошло)?
Причины для установки из исходного кода
Дэн Бенджамин Hivelogic обеспечивает преимущества и инструкции по установке Mercurial из источника в его статье Установка Mercurial на Snow Leopard.
Ответы
Ответ 1
Тем более, что у вас есть Python 2.6, вы можете сделать что-то вроде python setup.py install --user
, которое установит Mercurial с ~/.local в качестве префикса. Вам не нужно менять PYTHONPATH для этого, но добавляйте ~/.local/bin к вашему PATH.
Что касается преимуществ и недостатков: все зависит от того, как выглядит ваш PYTHONPATH в целом, поскольку модификация его, естественно, изменит порядок загрузки пакетов (что становится актуальным, если у вас установлена одна версия Mercurial с одним префиксом, а другая с другим префикс). В общем, я пытаюсь поместить все пользовательские пакеты в определенную папку сайтов-пакетов (скажем/usr/local/lib/python2.6/site-packages). Опять же: если вы единственный человек, который будет использовать эти библиотеки, флаг -ser, предоставленный Python 2.6 distutils, делает что-то вроде этого довольно просто (с добавлением ~/.local к пути поиска по умолчанию для модулей).
virtualenv должен работать отлично, если вы постоянно используете PYTHONPATH.
Ответ 2
Зачем нужно использовать macports? python easy_install
- самый простой способ и без ошибок:
easy_install -U mercurial
Это просто простая золотая пуля, все время.
Ответ 3
Установите mercurial - или любой пакет Python в целом - в домашний каталог пользователя. Таким образом, вы можете получить к ним доступ из любого Python (той же версии) или любого virtualenv. Подробнее см. PEP 370.
$ cd mercurial-x.y.z/
$ python2.6 setup.py install --user
$ ~/.local/bin/hg
...
Но почему вы хотите создать меркурий вручную? Я использую macports.
$ sudo port install mercurial
$ which hg
/opt/local/bin/hg
Обновление. В настоящее время я просто использую PyPM для установки mercurial в ~/.local/bin/hg
.
Ответ 4
как было предложено Sridhar, macports отлично работает на нескольких архитектурах, а версии MacOsX + позволяют обновления и многое другое:
$ port variants mercurial
mercurial has the variants:
bash_completion: Completion support for bash
zsh_completion: Install mercurial zsh completion file
$
чтобы вы могли использовать:
$ 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
$
Ответ 5
Все эти ответы выглядят сложными для средних пользователей Mac OS X, потому что они специфичны для других платформ установки. На данный момент веб-сайт Mercurial предлагает пакет установщика (сжатый как zip файл).