為什麼要從原始碼編譯 rpm?

為什麼要從原始碼編譯 rpm?

我所知道的: src.rpm 通常包含 app/library/package 的某種 tar 或壓縮原始碼 有時,如果套件不起作用,人們會建議您從原始程式碼編譯

我不知道的是:為什麼要從原始碼重新編譯?我需要從原始碼編譯什麼?海灣合作委員會? xlc?

我想知道的是:假設,如果您有一個 src rpm,您是否可以編譯該 rpm 以在 Fedora 上運行,然後將相同的 src rpm 帶到 AIX 並編譯它以在 AIX 上運行?

答案1

那麼,.src.rpm 包含原始碼有關各種檔案和可執行檔應複製到(安裝)的位置的資訊。

所以,是的,您應該能夠在 Fedora 和 AIX 上編譯原始程式碼。然而,這並不意味著您也可以「安裝 rpm」。安裝包括將檔案複製到各種系統資料夾,例如/usr/etc等。不同的作業系統期望某些檔案位於不同的位置,因此不能保證 Fedora 的 .rpm 能夠安裝在 AIX 上。事實上,這是極不可能的。

至於編譯,您可能希望從原始程式碼編譯以獲得針對您的特定硬體最佳化的二進位文件,或啟動某些編譯標誌,例如特定庫的位置。一般來說,如果您不知道為什麼應該從原始程式碼進行編譯,那麼您可能不應該這樣做。

如果選擇編譯,則需要合適的編譯器。這可以是(除其他外)gccxlc用 C 或 C++ 編寫的軟體、javacJava 等。有時,軟體是在考慮特定編譯器的情況下編寫的(在編譯時使用某些選項),如果您嘗試使用另一個編譯器來編譯它們,它們會抱怨。

最後,大多數 *nix 來源 tarball 都包含 Makefile 和設定腳本。您需要擁有必要的工具來使用它們。配置腳本通常是一個簡單的 BLASH 腳本,因此只要安裝了 BASH 就應該沒問題。使用Makefile需要指令make。您還需要一些其他基本工具(例如 autoconf 和 automake 等)。我已經很多年沒有開發過基於 RH 的發行版了,但是如果我沒記錯的話,這個命令應該會安裝你需要的一切:

yum groupinstall "Development Tools" 

相關內容