Нужно было установить Mercurial на серверной машине с icc без админских прав.
Повезло, что в наличии были Python 2.6 и easy_install.
И из коробки (через easy_install), и установку руками по умолчанию Mercurial завершался с ошибкой, жалуясь на неопределенный символ __intel_security_cookie
в модуле osutil.so.
Решение было найдено в гугл-группе cython-users: нужно явно указывать, чтобы модули компилировались в виде динамических библиотек и передавать линкеру соответствующую опцию.
Итак, чтобы установить Mercurial, в директории с исходниками нужно выполнить 2 команды:
CC=icc LDSHARED="icc -shared" python setup.py build
python setyp.py install --home=$HOME
После этого в домашнем каталоге появятся bin/
и lib/
(или lib64/
).
Для нормального использования команды hg
нужно добавить ${HOME}/bin
в PATH
и ${HOME}/lib/python
(или ${HOME}/lib64/python
) в PYTHONPATH
.