2010-07-02 57 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

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