Centos6
在 Centos 7 上安裝一些 el6 包會有什麼後果?
在我的契約工作中,我負責管理 Centos 7 盒子。我真的更像是一名開發人員,而不是 Linux 管理員,所以請耐心等待,也許試著像我 5 歲一樣向我解釋這一點。
我們正在開發的一個應用程序需要一個叫做pdftk的東西。不幸的是,它的依賴項叫做 libgcj。我讀到 libgcj 被認為已被棄用,不再隨新的 Centos 7“發布”。
所以,我這樣做了:
wget http://mirror.centos.org/centos/6/os/x86_64/Packages/libgcj-4.4.7-11.el6.x86_64.rpm wget https://www.pdflabs.com/tools/pdftk-the-pdf-toolkit/pdftk-2.02-1.el6.x86_64.rpm rpm -ivh --nodeps libgcj-4.4.7-11.el6.x86_64.rpm yum install pdftk-2.02-1.el6.x86_64.rpm
是的 pdftk 現在可以工作了。但是,我一直在閱讀並確定這是一個壞主意。沒有說明為什麼這是一件愚蠢的事情。那麼任何人都可以解釋為什麼我不應該這樣做嗎?或者給我一些建議或我現在應該採取的預防措施?我害怕重新啟動伺服器或安裝更新,直到我知道這不會破壞我們的盒子。
先感謝您。
這並不意味著是一個完整的答案,但到目前為止,沒有人提供為什麼這不是程序的原因可能是一個壞主意:
某些版本的包依賴於外部庫提供的功能。這些庫會隨著時間而改變,在這個過程中可能會改變它們的行為,甚至完全刪除函式。從 EL6 遷移到 EL7 是相當大的一步,因此可能會有一個新版本的包/庫 XYZ,它通常可以與您安裝的包版本一起使用,但不是全部。
在您的情況下,pdftk 通常可以按預期工作,但在某些特殊情況下,可能會有一個函式呼叫,它不適用於其他已安裝的包,因此可能會崩潰或出現意外行為。評估這種不當行為的來源將變得非常棘手。
不這樣做可能還有很多其他原因,但這是我首先想到的,對於生產系統而言,穩定性是關鍵。因此,我不會混淆不是為特定作業系統版本設計的版本。至少在沒有徹底測試的情況下不會。