6
如何获得“ realpath”以找到我的符号链接?
我使用MacOSX bash作为外壳。我有这样创建的符号链接: ln -s /usr/bin/python python2 我有一个使用python2的软件包,我想在我当前的工作目录中创建一个/usr/bin/python实际上是python2 的符号链接。当我python2从命令行执行a时,出现此错误: python2: realpath couldn't resolve "/usr/bin/python2" 但是像这样调用它./python2可以正确解析路径。我PATH有.。实际上,为了进行测试,我将其修改为仅包含.在其中。 我该如何解决?谢谢! 语境 以下建议的解决方案对我不起作用。我试图提炼出尽可能集中和简短的问题,以使人们不会淹没在文字的海洋中,但是显然我需要提供更多的背景知识。 我正在尝试从git克隆的软件包上进行开发。原始软件包,git-multimail是/是在Linux的某些变体上开发的(我猜是Ubuntu)。我一直在尝试对其进行修改,以使其能够在MacOSX上使用它及其测试套件,而只需进行尽可能少的修改。这就是一些建议的解决方案不理想的原因: 以root python2身份在/ usr / bin /中创建一个符号链接。我正在寻找不需要此解决方案的解决方案。在一开始,这是一个显而易见的选择,但是我想要一个尽可能少地修改主机系统的解决方案。这就是为什么我想在当前工作目录中创建一个临时符号链接,将CWD(即.)添加到我的路径,然后在完成时销毁它(即符号链接)。 创建包装器脚本以使用现有python调用python脚本。问题在于,大多数测试套件都将实际的script_files用作可执行文件,具体取决于shebang来找到正确的执行环境。这将意味着大量编辑测试套件。在这种情况下(有关测试框架的摘要,请参见下文),我将不得不为每个.py文件添加一个包装器;进一步,用户/开发人员将必须了解使用软件包的不同规则,具体取决于它们所在的系统(即,在MacOSX上,请确保在不通过包装或显式调用python文件的情况下,不要使用python文件/usr/bin/python file.py)。 #! /bin/sh D=$(cd $(dirname "$0") && pwd) MULTIMAIL="$D/../git-multimail/git_multimail.py" POST_RECEIVE="$D/../git-multimail/post-receive" TESTREPO=$("$D/create-test-repo") HOME="$D" XDG_CONFIG_HOME="$D" GIT_CONFIG_NOSYSTEM=1 export HOME XDG_CONFIG_HOME GIT_CONFIG_NOSYSTEM cd $TESTREPO test_email() { REFNAME="$1" OLDREV="$2" NEWREV="$3" …