Linux

從開發人員而不是發行版儲存庫安裝軟體包可能會出現什麼問題

  • January 8, 2013

對某些人來說,這聽起來像是一個微不足道的問題,但即使我已經使用 Linux 好幾年了,我還沒有真正弄清楚這個問題。

很少的背景資訊;我最近將我的系統從 Mint12 升級到了 Mint14,當我開始安裝 eclipse 時,我意識到我需要再次安裝 SVN。事實證明,最新版本是 1.7.8(截至目前),而我從 repos 獲得的版本是 1.7.5。現在有人可能會爭論這是否是一件大事,但我個人喜歡與目前版本保持同步以避免下游問題。

我想知道跳過儲存庫並從開發人員首頁(在本例中為 subversion.apache)安裝可能會出現什麼樣的問題。

與使用“開發人員提供,人們使用”部署策略的其他系統不同(Windows,我在看你),對於類似 UNIX 的發行版,通常有一個包管理器和一些團隊管理它的包。

重點是讓一切都能很好地協同工作。至少當我使用 Windows 時,通常的情況是,如果程序要安裝更新的版本,它會更新 DLL,但沒有任何東西可以控制一切是否能與新版本的庫一起正常工作,你只是添加更多文件到叢林,如果有任何東西破裂,它可能會嚴重破裂。

使用包管理,新版本在可用之前(或應該)進行測試,這樣您就不會遇到下游問題。非發行版軟體包可能遇到的問題是,它們可能尚未真正針對您的發行版進行測試,或者元數據中可能缺少依賴關係或限制。這是關於的。如果您打算從開發人員那里安裝而不是等待您的發行版發布他們的軟體包,請選擇軟體包。只要您使用包管理器,您就不會冒險弄亂您的系統。

如果您決定從原始碼編譯或只是解壓縮 tarball,請在執行以下操作之前三思而後make install/:您可能會覆蓋文件或添加包管理器未跟踪的文件,這可能會破壞您的系統,安裝不兼容的文件,更改通過使用包管理器等刪除包無法撤消的設置。這也是您永遠不想使用開發人員提供的安裝腳本(nVidia 驅動程序…)的原因。

把它想像成熵:包管理器確實會跟踪它,所以如果需要的話,它可能會違反熱力學第二定律。當您使用第三方安裝腳本或只是make install,您正在增加系統的熵而不跟踪它。完成此操作後,確保刪除添加的任何內容的唯一機會是恢復備份或重新安裝系統。

TL; 博士

  • 您正在繞過分發級別的測試,該測試試圖擷取特定於在同一分發中分發的軟體的問題。
  • 您正在繞過包管理器,如果出現任何問題,可能會導致您的系統進入不可恢復的狀態。

最後,就像@jordanm 所說,權衡利弊。如果可能的話,為你的包管理器尋找第三方包,至少可以幫助你解決上面的第二個問題。

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