Software-Installation

我怎麼知道把東西放在linux的什麼地方?

  • April 27, 2020

在 Windows 中安裝一些東西需要點擊一個按鈕。但是每次我嘗試在 linux 中安裝一些在 APT 中找不到的東西時,我都會感到非常困惑。

你下載一個壓縮文件夾,然後呢?如果幸運的話,有一個自述文件,參考一些文件,如果幸運的話,這可能會對您有所幫助。

“安裝” APT 中沒有的擴展和應用程序時有什麼神奇的技巧?

我喜歡 linux,但這個問題每天都困擾著我。

如果它是一個遵守文件系統層次標準的軟體,那麼您應該將它放在/usr/local適當的子目錄(如binlibshare、 …)中。

其他軟體應該放在自己的目錄下/opt。然後將PATH變數設置為包含bin目錄或包含執行檔的任何目錄,或者創建指向/usr/local/bin.

這個問題沒有簡單的答案,但我可以給你一個大致的工作原理:

大多數 Linux 軟體由作者(“上游”)以原始碼形式提供。這允許每個擁有針對其特定平台和系統配置的編譯器的人下載原始碼並自行編譯。不幸的是,許多程序依賴於其他程序和軟體庫(依賴項)提供的功能。

Windows 軟體通常以預編譯的形式出現。這意味著所有 Windows 電腦都有一個通用的執行檔,並且依賴項通常在安裝包中附帶。

Linux 發行版獲取原始碼,為您預編譯它,並將其作為一個包提供給您。該軟體包不包含依賴項,但它引用它們並強制軟體包系統也安裝它們(這有時會導致您可能已經經歷過的混亂)。

如果沒有預編譯包,可以隨時下載原始碼自行編譯。大多數情況下,以下方法將起作用:

./configure
make
(sudo) make install (or sudo checkinstall)

./configure 行為編譯過程設置了階段(如果不滿足依賴關係,則會吐出錯誤)。make 行將執行 Makefile,這是一個編譯程序所有部分的腳本。

傳統上,您將使用 make install 來安裝軟體。這通常將執行檔放在 /usr/local/bin 中。

由於您使用的是 apt,因此我非常建議您使用 checkinstall。您可以使用它代替 make install,它會為您生成一個 .deb 包。這使得以後乾淨地刪除軟體變得更加容易。

請注意,還有一些其他編譯系統,例如 cmake;一些軟體是預編譯但未打包的(在這種情況下,您可以直接從解壓縮的文件夾中啟動它);有些軟體是你必須自己執行的腳本集合。來自 SVN 的新程式碼有時沒有配置腳本,因此您必須首先執行 autoconf 工具鏈……等等……您會看到規則有很多例外,但只要有一點經驗,您就可以告訴如何處理大多數神秘下載。Configure-Make-Checkinstall 是一個好的開始。

PS。花一兩個週末來學習如何自己程式,事情就會變得非常明顯:-)

聚苯乙烯。您可能想知道為什麼 Linux 軟體作者不只提供預編譯包而不提供原始碼。嗯,他們有時會這樣做。但是不同的平台和 Linux 發行版都有自己的包格式和文件系統規則,因此作為開發人員,您必須為每種可能的配置提供包——這很痛苦。不過,Ubuntu 軟體包通常是最容易找到的——您應該了解 PPA 是什麼以及它是如何工作的!

引用自:https://unix.stackexchange.com/questions/7899