linux - 使用非 root 用户访问 mercurial 时出错

标签 linux bash mercurial

我正在尝试让非 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)

我作为 root 没有这个问题。我可以从任何目录运行 mercurial 命令。

我的问题是我对 Linux 一点也不熟悉,所以我不知道应该如何更改我的 PYTHONPATH 变量(如果这确实是我想要做的)。我什至不知道 PYTHONPATH 变量存储在哪里以查看现在写入的内容。

有人能告诉我 PYTHONPATH(甚至是常规 PATH)环境变量在 Linux 中的存储位置,以及我可能采取哪些步骤来消除上面提到的错误方法吗?如果有帮助,我正在使用 Putty 和 SSH 访问服务器。

谢谢! :)

最佳答案

PYTHONPATH 只是一个 environment variable得到 prepended 到 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获取说明。

关于linux - 使用非 root 用户访问 mercurial 时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4151933/

相关文章:

mercurial - 如何为 hudson/jenkins 设置私有(private) ssh key 来访问 bitbucket?

mercurial - hg diff 通过指定一个修订版并自动使用该特定修订版的父级

bash - 如何在编辑过程中将文件保存在内存中?

linux - Mac 上的 TideSDK 应用程序

linux - shell脚本或linux命令递归查找public文件夹下的所有js/css文件

c++ - 如何避免多重定义链接错误?

bash - 按行长(包括空格)对文本文件进行排序

正则表达式提取 bash shell 中引号中的所有内容?

version-control - 在 clearcase 上使用 mercurial 时保留历史记录

c - Linux 上的 read() 和页对齐缓冲区