Ошибка доступа к Mercurial с пользователем без полномочий root - PullRequest
0 голосов
/ 11 ноября 2010

Я пытаюсь дать пользователю без полномочий root возможность запускать ртутные команды из оболочки. Когда я вхожу в систему как пользователь и набираю «hg», я получаю это сообщение:

abort: couldn't find mercurial libraries in [/usr/local/bin /usr/lib/python24.zip /usr/lib/python2.4 /usr/lib/python2.4/plat-linux2 /usr/lib/python2.4/lib-tk /usr/lib/python2.4/lib-dynload /usr/lib/python2.4/site-packages /usr/lib/python2.4/site-packages/Numeric /usr/lib/python2.4/site-packages/gtk-2.0]
(check your install and PYTHONPATH)

У меня нет этой проблемы как рут. Я могу запускать команды Mercurial из любого каталога.

Моя проблема в том, что я совсем не очень знаком с Linux, и поэтому я не знаю точно, как я должен изменить свою переменную PYTHONPATH (если это действительно то, что я пытаюсь сделать). Я даже не знаю, где хранится переменная PYTHONPATH, чтобы посмотреть, что там сейчас написано.

Может кто-нибудь сказать мне, где переменная окружения PYTHONPATH (или даже обычная PATH) хранится в Linux, и какие шаги я могу предпринять, чтобы удалить метод ошибки, который я описал выше? Если это поможет, я использую Putty и SSH для доступа к серверу.

Спасибо! :)

1 Ответ

2 голосов
/ 11 ноября 2010

PYTHONPATH - это просто переменная окружения , которая добавляет к внутреннему поисковому пути питона. Чтобы увидеть, что там, сделайте следующее в оболочке python:

>>> import sys
>>> sys.path

Это должно напечатать что-то вроде:

['', '/usr/lib64/python27.zip', '/usr/lib64/python2.7', '/usr/lib64/python2.7/plat-linux2', '/usr/lib64/python2.7/lib-tk', '/usr/lib64/python2.7/lib-old', '/usr/lib64/python2.7/lib-dynload', '/usr/lib64/python2.7/site-packages', '/usr/lib64/python2.7/site-packages/PIL', '/usr/lib64/python2.7/site-packages/gst-0.10', '/usr/lib64/python2.7/site-packages/gtk-2.0', '/usr/lib64/python2.7/site-packages/webkit-1.0', '/usr/lib64/python2.7/site-packages/wx-2.8-gtk2-unicode', '/usr/lib/python2.7/site-packages', '/usr/lib/python2.7/site-packages/setuptools-0.6c11-py2.7.egg-info']

На практике я бы предположил, что ваша оболочка bash , поэтому места, где можно установить переменные среды: /etc/profile, /etc/bashrc, ~/.profile и ~/.bashrc - первые два - для всей системы, а последние - для каждого пользователя.

Дополнительное объяснение см. в этой статье блога abour bashrc и в профиле

EDIT Чтобы исправить это, вероятно, самый простой способ - установить Mercurial через pip (я предполагаю, что у вас нет Mercurial в официальном репозитории для вашего дистрибутива Linux, но обычно python-setuptools или аналогичный, который предоставляет easy_install is). См. этот вопрос для получения инструкций.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...