2016-07-12 60 views
2

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

我很想更好地理解为什么选择这个选项。我从来没有见过其他软件采用这种方法。

+0

我投票结束这个题目,因为它是关于创建软件开发工具链的安装程序时做出的设计决定,与软件开发本身的任何行为无关。 – Adrian

+0

@Adrian你认为哪个地方适合发布? Go没有SE网站,并且这个网站拥有最大的Go社区。不要投票结束,但投票迁移。 – jsejcksn

+0

这不是一个Go问题。你可以用“某些程序”来替换“Go”,它不会产生任何影响。如果我认为这个问题有适当的SE网站,我会投票迁移,但我不确定。 – Adrian

回答

1

this threadpath_helpersource)是:

因为自动安装软件(和什么是更重要的卸载)是很容易这样。许多Linux发行版切换到.d目录的许多配置文件(Apache 2.0是AFAIK第一个支持这类内容的程序),因为它使管理变得更加简单。

Uninstall Go section确实提到:

如果用Mac OS X package安装围棋,那么你应该删除/etc/paths.d/go文件。

那些files in /etc/paths.d are processed in order(这样你就可以管理PATH顺序为/usr/local/bin不是符号链接)。

请注意,path_helper仅由登录shell调用,而不是由非交互式shell调用。

0

对不起,使用一个答案;我没有足够的声誉点评论。 ((这看起来倒退了))

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

我的/etc/paths.d包含Xquartz,CrossPack-AVR,aria2c和go的条目。从阅读有关/etc/paths.d的google'd文章,我看到ImageMagik还为/etc/paths.d添加了一个条目。

我猜想这是让用户运行二进制文件而不必在自己的配置文件脚本中修改PATH或丢失跟踪符号链接等等的简单方法。

也许sym-links更像是一个Gnu的东西,而/etc/paths.d更像是一个BSD的东西?

个人而言,我喜欢它。

相关问题