Linux
我應該在 /var 還是 /opt 中安裝 Linux 應用程序?
我執行了很多開源應用程序,包括 java 和 tomcat。似乎大多數指令都讓我的應用程序從
/var
目錄執行。但每隔一段時間,我也會看到/opt
目錄。當我在做的時候,我也看到了/usr/local/
,甚至也看到/etc
了。我什麼時候應該在一個文件夾或另一個文件夾中安裝應用程序?各有優劣嗎?它與風味歷史(Solaris vs Linux 或 Red Hat vs Ubuntu)有關嗎?
這些問題的標準是Filesystem Hierarchy Standard。這是一個相當大的文件。基本上(並且非常粗略),Linux 上的標準路徑是:
/bin
&/sbin
用於作業系統的重要程序,sbin 僅用於管理員;/usr/bin
&/usr/sbin
用於非重要程序,sbin 僅用於管理員;/var
用於程序的生活數據。它可以是記憶體數據、假離線數據、臨時數據(除非它在 中/tmp
,每次重啟時都會擦除)等;/usr/local
用於本地安裝的程序。通常,它託管遵循標準但未為作業系統打包的程序,而是由管理員手動安裝(例如使用./configure && make && make install
)以及管理員腳本;/opt
適用於未打包且不遵循標準的程序。您只需將所有庫與程序放在一起。它通常是一個快速而骯髒的解決方案,但它也可以用於您自己製作的程序以及您希望為其設置特定路徑的程序。您可以在其中創建自己的路徑(例如/opt/yourcompany
),在這種情況下,鼓勵您將其註冊為標準路徑的一部分;/etc
不應包含程序,而應包含配置。如果您的程序是特定於所提供的服務的服務,
/srv
也可以是它們的好位置。例如,我更喜歡/srv/www
用於網站,而不是/var/www
確保目錄只包含我自己添加的數據,而不是來自軟體包的數據。分佈之間存在一些差異。例如,
libexec
當 Debian/Ubuntu 系統不使用時,RedHat 系統使用目錄。FHS 主要由 Linux 發行版使用(我實際上不知道任何其他真正符合它的作業系統)。其他 Unix 系統不遵循它。例如,BSD 系統傾向於
/usr/local
用於打包的程序,而 Linux 並非如此。Solaris 有非常不同的標準路徑。如果您想了解更多資訊,我強烈建議您閱讀我上面連結的 FHS 文件。