Linux 中安裝的軟體儲存在哪裡?

Linux 中安裝的軟體儲存在哪裡?

可能的重複:
典型的Linux程式安裝在哪裡

我是 Linux 新手,我想詢問更多有關軟體包的問題。

在 Windows 中,我下載一個.exe檔案並安裝它。安裝時,我定義了要儲存該應用程式的路徑。在該資料夾中,我擁有該應用程式所需的所有檔案。

yum但是,當我使用或在 Linux 中安裝軟體包時apt-get,我不知道該軟體包安裝到哪裡以及該應用程式所需的檔案儲存在哪裡。我看到大部分配置都在該/etc目錄中。但是為什麼 Linux 將應用程式所需的檔案儲存在不同的目錄中呢?

有人可以告訴我軟體包是如何安裝的,以及它們儲存在哪裡以及如何儲存嗎?如果我對包管理的理解是錯誤的,請糾正我。

答案1

正如您已經指出的,許多程式(二進位檔案/腳本)最終位於各種設定目錄中/bin或與其他部分一起出現(通常位於 / 下)。/usr/binetc

對於任何特定命令,您可以查看哪裡

whereis prog_name

它會給你一些關於在哪裡可以找到這個命令的資訊。你也可以嘗試哪個

which prog_name

還有,這個圖形和解釋/示例可能會有幫助。

答案2

您可以透過執行以下操作來取得給定套件安裝的檔案清單yum

yum install yum-utils

然後你可以像這樣運行它:

repoquery --list yum-utils

(顯然,將第二個中的“yum-utils”替換為您想要查看其檔案清單的套件的名稱。)

對於apt-get,您可以使用:

dpkg -L package-name

答案3

在 Windows 下,尤其是舊版本中,程式通常會將設定檔和非常量資料儲存在其C:\Program Files目錄中。這是源自於程式通常在單一使用者、非網路、無檔案權限的 DOS 下安裝和運作的方式。

從安全角度來看,這是一個壞主意。可執行程式碼所在的位置應與可修改資料分開。這樣,就可以更輕鬆地套用適當的檔案權限,以防止未經授權的使用者修改已安裝的二進位檔案。同樣,可以與主可執行檔分開更新的庫目錄也應該位於單獨的目錄中。

隨著 Vista 和 UAC 的出現,這項傳統終於開始嚴重失去吸引力。

UNIX 和 Linux 很早就是一個多用戶系統,很早就傾向於將可執行目錄與其他目錄分開,因為需要防止 root 以外的使用者修改已安裝的二進位檔案。這也是為什麼有時/usr甚至/sbin是單獨的分區 - 特別具有安全意識的管理員可以只讀地掛載這些分區,並在需要安裝/卸載時重新掛載它們以讀/寫。

軟體包通常是從軟體包管理器安裝的。有各種套件管理器,例如aptitude(Debian 和派生發行版)、yum(Redhat 和派生發行版)、pacman(忘記這是哪個發行版...)等等。

套件管理器可讓您瀏覽儲存庫、下載、安裝、查詢和刪除軟體,就像一個複雜的(免費的)「應用程式商店」。它負責確保依賴項得到處理並追蹤當前安裝的內容。

通常,套件管理器還允許對您在任何儲存庫之外手動下載的套件進行相同的操作。如果您想使用自己製作或編譯的軟體來創建自己的工具,也可以使用工具。

由於套件本身不是可執行文件,因此您不必運行您並不真正知道它的用途的不受信任的可執行文件。 (Windows 終於透過分發.msu' 而不是.exe'來進行更新- 但.msi' 已經存在了一段時間了...)

答案4

在 Linux/Unix 中,大多數程式通常不會出現在單一目錄中,但它的不同部分(執行檔、設定檔、日誌檔案、文件、其他資源)通常會透過符號連結分散在檔案系統中。這維基百科文章更詳細地描述了正常檔案系統層次結構下的標準目錄結構,顯示了不同的目錄以及您可以在每個目錄中找到的內容。

相關內容