mrfr Asked: 2018-11-25 04:00:43 +0800 CST2018-11-25 04:00:43 +0800 CST 2018-11-25 04:00:43 +0800 CST 处理将包添加到路径的“正确”方法 772 我下载并安装了 Haskell 平台。它被安装(默认)到/usr/local/haskell/ 我想将里面的二进制文件添加/usr/local/haskell/bin/到我的路径中。但我不想(如果可能的话)改变我的道路.. 这里最好的行动方案是什么?我应该移动haskell/bin/*到local/bin还是将 haskell 文件夹添加到路径是最佳做法? path haskell 1 个回答 Voted Best Answer filbranden 2018-11-25T07:37:19+08:002018-11-25T07:37:19+08:00 另一种相当常见的更新方法$PATH是在已经列在 下的某处创建指向二进制文件的符号链接$PATH,例如,在/usr/local/bin. 您可以通过以下方式实现: $ cd /usr/local/bin $ sudo ln -s ../haskell/bin/* . (但是,在你这样做之前,确保你检查了二进制文件列表/usr/local/haskell/bin/并检查创建符号链接是否有意义。你可能决定也只对文件的一个子集进行符号链接。) 您不想移动二进制文件本身的一个原因是,很多时候以二进制形式在 tarball 中分发的二进制文件的编写方式使得它们在系统中的任何地方解压缩后都可以工作。为此,他们经常尝试检测它们的安装位置(通常是通过查看/proc/self/exe.)。通过这样做,他们可以找到/usr/local/haskell他们希望找到所需的其他库和文件的父目录。创建符号链接通常不会干扰此类机制,因为它们仍然能够在 下找到实际的二进制文件/usr/local/haskell/bin,成功定位安装路径。 不移动二进制文件的另一个原因是,以后如果你想卸载 Haskell,你可以简单地删除整个/usr/local/haskell目录,你不需要记住一些二进制文件被移动到/usr/local/bin,即使你记得,你不需要回忆哪些属于 Haskell(假设你已经使用这种方法安装了多个软件包。)如果你通过删除目录来卸载 Haskell,你最终会得到一些损坏的符号链接/usr/local/bin,但是它们它们是无害的,而且很容易指出哪些属于 Haskell,因为它们../haskell/bin的名字中都有,所以它们也很容易清理。
另一种相当常见的更新方法
$PATH
是在已经列在 下的某处创建指向二进制文件的符号链接$PATH
,例如,在/usr/local/bin
.您可以通过以下方式实现:
(但是,在你这样做之前,确保你检查了二进制文件列表
/usr/local/haskell/bin/
并检查创建符号链接是否有意义。你可能决定也只对文件的一个子集进行符号链接。)您不想移动二进制文件本身的一个原因是,很多时候以二进制形式在 tarball 中分发的二进制文件的编写方式使得它们在系统中的任何地方解压缩后都可以工作。为此,他们经常尝试检测它们的安装位置(通常是通过查看
/proc/self/exe
.)。通过这样做,他们可以找到/usr/local/haskell
他们希望找到所需的其他库和文件的父目录。创建符号链接通常不会干扰此类机制,因为它们仍然能够在 下找到实际的二进制文件/usr/local/haskell/bin
,成功定位安装路径。不移动二进制文件的另一个原因是,以后如果你想卸载 Haskell,你可以简单地删除整个
/usr/local/haskell
目录,你不需要记住一些二进制文件被移动到/usr/local/bin
,即使你记得,你不需要回忆哪些属于 Haskell(假设你已经使用这种方法安装了多个软件包。)如果你通过删除目录来卸载 Haskell,你最终会得到一些损坏的符号链接/usr/local/bin
,但是它们它们是无害的,而且很容易指出哪些属于 Haskell,因为它们../haskell/bin
的名字中都有,所以它们也很容易清理。