我确信你们已经厌倦了“XX:未找到命令”之类的问题,所以我很抱歉又增加了一个问题,但还是请大家原谅。
我正在尝试创建一个已编译的 mercurial 和 python 安装的 tarball,以便可以将其发送给公司中的各个团队,他们随后会在各自的隔离的 unix 服务器(所有服务器都运行相同操作系统的相同版本)上提取它们,并使用 hg 运行,尽管他们的本机 python 版本太旧。
到目前为止,这实际上进展顺利,但有些机器给我带来了麻烦。提取 tar 包后,用户将获得一个新的 bin 文件夹,其中包含 hg 和 python 可执行文件。将 PATH 设置为该 bin 文件夹后,python 可执行文件可以正常工作,但 hg 可执行文件会产生“hg:未找到命令”错误。
这可能是一条糟糕的道路吗?
如果你调用
> hg
尽管
> which hg
产生 hg 可执行文件的正确路径
另外,如果你导航到该文件夹并调用
> ./hg
您仍然会收到“hg:未找到命令”。
让它工作的唯一方法是打电话
> ./python hg
它可以正常工作并显示 hg 的帮助信息。
这可能是权限问题吗?
我已提取文件,所有文件均归我所有。我还验证了 hg 文件,并且如您所期望的那样,我拥有执行权限。
为什么我会收到这个错误?
除了路径和权限之外,我不知道还有什么需要检查。如有任何建议,我将不胜感激。
谢谢!
答案1
脚本中的魔法行可能存在问题hg
。请尝试:
$ less `which hg`
第一行应该是 Python 解释器的绝对路径。例如:
#!/usr/bin/python
(或者你的 Python 解释器所在的位置)。仔细检查此路径是否正确。