2010-07-02 58 views
4

通常每`make install”命令运行时,文件不会被放在如/ usr/PROG1特定的目录。相反,这些文件放在其他程序的文件已经在/ usr/lib和/ usr/bin中的目录中。我相信这是很久以前的惯例。这种做法肯定会增加文件名冲突的可能性。Unix的目录结构:管理文件名冲突

自从我回到谷歌搜索在这个问题上没有商量好了,我想知道是什么人做管理文件名冲突?他们是否简单地尝试这个或那个名称,如果出现问题,用户提交了一个错误并且开发人员选择了另一个名称?或者,他们是否只是为他们的文件名称加上前缀?任何人都知道关于这件事的很好的讨论?

回答

4

通常人们选择他们想要的名称,如果再碰撞的东西的问题得到由分布解决。这是与ackack在Debian中,汉字转换器)和ackack-grep在Debian中,文本搜索工具)发生了什么事。

碰撞似乎并不是共同但。快速网络搜索应该告诉你该名称是否在某处使用。如果它不可搜索,它可能不包含在许多发行版中,这意味着你不可能实际发生冲突。

+0

如果您想要安装* same *程序的多个版本,就会发生冲突。 – 2010-07-02 11:36:42

+0

那么你最有可能出于某些特定原因这么做。大多数“大版本”变化可以共存(如'php4'和'php5')在流行的发行版中。对于主要版本和次要版本,库都有已知的版本解决方案。如果您需要重新编译自己并同时维护多个版本,请查看可以执行此操作的'nixos',或者直接安装到'/ opt/software-version'中 – viraptor 2010-07-02 14:34:10

3

通常在编译程序的时候,你通常会指定一个前缀路径是这样的:./configure --prefix=/usr/local/prog1./configure --prefix=/opt/prog1(是否使用/usr/local/opt其实并不重要)。然后在运行make install时,它会将文件放在指定的前缀路径中。然后,您可以:1)添加/opt/prog1/bin/PATH或者你可以在/usr/local/bin一个符号链接到可执行文件应该已经在你的PATH

最好的事情是使用你的发行包管理器。