Linux

在 CentOS 上安裝軟體:二進製文件還是 rpm?

  • December 3, 2020

我對linux系統很陌生。我可以選擇使用它的 .rpm安裝軟體( ImageMagick )或從 .tar.gz 編譯原始碼(我已經這樣做了)

  1. 我應該(你會)選擇哪一個?
  2. 如果我選擇rpm,我應該使用rpm -Uvh <filename>還是使用yumrpm來安裝?
  3. 如果我選擇安裝二進製文件,通常的安裝方式是什麼(供 Apache/httpd 使用)?我想我應該將.tar.gz文件下載到,然後用, ,/usr/local/src解壓縮。一般來說,如果我這樣做,二進製文件會自動喜歡(它適用於 ImageMagick)並為所有使用者設置環境路徑嗎?tar zxvf <filename>``./configure``make``make install``/usr/bin

我應該(你會)選擇哪一個?

使用 RPM 並堅持使用 RPM。RPM 比原始碼更易於使用,更易於更新和安裝安全更新,並且從長遠來看將節省您的時間。我可以在大約 5 分鐘內更新我的 CentOS 機器上的所有軟體。從原始碼編譯時,做同樣的事情需要幾個小時,甚至幾天。

此外,由於您是 Linux 系統的新手,您會希望您的系統與社區其他人使用的系統保持一致,以便文件和論壇文章中的範例與您在本地系統上可用的內容相匹配。該文件通常假定您通過 RPM 安裝了軟體。如果您有一個基於 RPM 建構的混合系統,但隨後從原始碼安裝了十幾個程序,則調試將更加困難,並且需要更多的知識和技能。

從原始碼編譯更複雜,需要您在編譯期間解決依賴問題。在編譯軟體之前,您需要在系統上安裝標頭檔、編譯器等依賴項,而這些通常都是通過 RPM 安裝的。

但是,請注意 RHEL 和 CentOS 通常堅持使用產品的一個主要版本(例如,CentOS5 為 PHP 5.3 提供 RPM,但絕不會為 5.4 提供 RPM)。RedHat 將安全修復和一些功能更改“向後移植”到目前版本。

如果您想要 CentOS 不提供的特定版本的軟體,或者您想自己自定義原始碼,請從原始碼安裝。對於初學者,盡量避免這種情況。

對於 ImageMagick,安裝 CentOS 提供的 RPM。如果它不能滿足您的需求,請研究您需要的版本,然後從原始碼安裝。

rpm -Uvh 或使用 yum

使用 yum,它是 RPM(RPM 庫)的包裝器,可以為您完成大部分工作。同樣,這將節省您的時間。

RPM 用於從本地文件安裝 RPM,這意味著您需要找到 RPM 並下載它及其所有依賴項。Yum 將執行依賴性檢查,並為您下載和安裝 RPM。

二進製文件會自動轉到 /usr/bin

當原始碼將二進製文件放入/usr/local/bin而不是/usr/bin. /usr/bin用於供應商提供的軟體,/usr/local/bin應保留用於本地編譯的軟體包。如果原始碼將二進製文件安裝到/usr/bin,則意味著這些二進製文件可能會在您下次執行時被意外替換yum update --yes

另請參閱https://unix.stackexchange.com/questions/8656/usr-bin-vs-usr-local-bin-on-linux

還有其他 Unix 變體可以從原始碼編譯所有軟體,但這些系統往往具有良好的方法和良好的工具來保持所有這些源文件的組織。FreeBSD 是一種流行的作業系統,管理員傾向於從名為“Ports”的原始碼包編譯軟體,它是了解作業系統和原始碼的好方法。

引用自:https://serverfault.com/questions/417957