【问题标题】:Error accessing mercurial with non-root user使用非 root 用户访问 mercurial 时出错
【发布时间】:2010-11-11 06:35:51
【问题描述】:

我试图让非 root 用户能够从 shell 运行 mercurial 命令。当我以用户身份登录并输入“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 访问服务器。

谢谢! :)

【问题讨论】:

标签: linux bash mercurial


【解决方案1】:

PYTHONPATH 只是一个environment variable,它前置到python的内部搜索路径。要查看其中的内容,请在 python shell 中执行以下操作:

>>> 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']

实际上,我猜你的 shell 是 bash 所以可以设置环境变量的地方是: /etc/profile/etc/bashrc~/.profile~/.bashrc - 前 2 个是系统范围的,后一个是每个用户的。

更多解释见this blog article abour bashrc and profile

编辑 要解决这个问题,最简单的方法可能是通过 pip 安装 Mercurial(我假设您的 Linux 发行版的官方存储库中没有 Mercurial,但通常是 python-setuptools 或类似的,提供 easy_install 是)。有关说明,请参阅this question

【讨论】:

  • 感谢您的帮助。在回复 Mike 的评论并查看您所写的内容时,我意识到我只需要在我的 ~/.bash_profile 文件中创建与以 root 身份登录时在安装期间所做的相同的条目。我实际上不知道 ~ 目录是特定于用户的...doh!
  • 在 CentOS 上 - 我总是安装 EPEL 存储库并从那里通过“yum”安装 mercurial。见cyberciti.biz/faq/rhel-fedora-centos-linux-enable-epel-repo
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-04-03
  • 1970-01-01
  • 2016-08-17
  • 2016-09-14
  • 2016-06-12
  • 2012-11-05
  • 2017-06-29
相关资源
最近更新 更多