Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/go/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ssh/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Macos Mac上的Go安装程序行为:路径修改与符号链接_Macos_Go_Path_Installation - Fatal编程技术网

Macos Mac上的Go安装程序行为:路径修改与符号链接

Macos Mac上的Go安装程序行为:路径修改与符号链接,macos,go,path,installation,Macos,Go,Path,Installation,根据我的经验,大多数安装cli组件的OS X软件安装到/usr/local/,然后在/usr/local/bin/中创建指向可执行文件的符号链接,而不是修改我的$PATH。但是,Go安装程序的方法不同,它在/etc/paths.d/中创建一个新条目,用于读取并修改我的$PATH。有人能解释一下这个设计决策背后的想法吗?在Linux上,对现有目录中的可执行文件添加大量路径而不是符号链接是否更常见 我很想更好地理解为什么会这样选择。我从未见过其他软件采用这种方法。很抱歉使用了答案;我没有足够的声望点

根据我的经验,大多数安装cli组件的OS X软件安装到
/usr/local/
,然后在
/usr/local/bin/
中创建指向可执行文件的符号链接,而不是修改我的
$PATH
。但是,Go安装程序的方法不同,它在
/etc/paths.d/
中创建一个新条目,用于读取并修改我的
$PATH
。有人能解释一下这个设计决策背后的想法吗?在Linux上,对现有目录中的可执行文件添加大量路径而不是符号链接是否更常见


我很想更好地理解为什么会这样选择。我从未见过其他软件采用这种方法。

很抱歉使用了答案;我没有足够的声望点来评论。((在我看来,这是倒退的))

@jsejksn说:“我从未见过其他软件采用这种方法。”

My/etc/path.d包含Xquartz、CrossPack AVR、aria2c和go的条目。通过阅读google关于/etc/path.d的文章,我看到ImageMagik还向/etc/path.d添加了一个条目

我想这是一种让用户运行二进制文件的简单方法,而不必在他们自己的配置文件脚本中修改路径,或者丢失符号链接,或者其他任何东西

也许sym-links更像是Gnu,而/etc/path.d更像是BSD

就我个人而言,我喜欢它。

从中,路径助手是:

因为自动软件安装(以及更重要的卸载)通过这种方式更容易。许多Linux发行版切换到许多配置文件的
.d
目录(Apache2.0可能是第一个支持此类内容的程序),因为它使管理变得更加简单

报告确实提到:

如果安装了Go with the,则应删除
/etc/path.d/Go
文件

这些(因此您可以管理
路径
顺序,而不是
/usr/local/bin
中的符号链接)


请注意,
path\u helper
仅由登录shell调用,而不是由非交互式shell调用。

我投票将此问题作为主题外的问题结束,因为它是关于为软件开发工具链创建安装程序时所做的设计决策,与软件开发本身的任何行为无关。@Adrian您建议在哪里发布合适的站点?Go没有SE站点,这是最大的Go社区。不要投票关闭,但要投票迁移。这不是一个可行的问题。你可以重新措辞,用“某个程序”替换“Go”,这样做不会产生任何影响。如果我认为这个问题有合适的SE站点,我会投票迁移,但我不确定是否有。问这个问题的正确位置可能是@TehSphinX,我已经做了。