Debian

apt-get 將如何處理我手動安裝的軟體?

  • November 26, 2014

假設 APT 倉庫中的 Emacs 版本是 24.3,我configure && make install自己的 emacs 是 24.4。過了好久,APT倉庫裡的軟體更新到了24.5。我跑步時 APT 會做什麼apt-get update && atp-get safeupgrade

讓 APT 處理我手動安裝的軟體的一般方法是什麼?

Apt-get 沒有“安全升級”命令。您是否正在考慮“aptitude 安全升級”?

除此之外,apt-get 只“知道”事情,因為包系統維護了一個包含包子系統程序所做的所有更改的數據庫。當您下載原始碼並自己建構然後安裝它時,這不是使用包子系統完成的,因此這些更改都不會記錄在任何地方,因此 apt-get 根本無法知道它們。

如果您從未在電腦上執行過“apt-get install emacs”,則軟體包子系統將永遠不會知道已安裝 emacs,因此“apt-get upgrade”將永遠不會觸及它,您是安全的。只有“dpkg –list”中列出的程序才會被“apt-get upgrade”處理。

如果您確實執行了“apt-get install emacs”,那就另當別論了。

如果您足夠聰明地使用“./configure –prefix=/usr/local/bin”(可能還有其他一些指定位置的參數),那麼您的自定義 emacs 文件將位於與“apt-get”不同的位置install emacs" 載入到您的系統上,您將擁有兩個有效的 emacs 安裝。因此,當您執行“apt-get upgrade”並且儲存庫中的 emacs 包比 apt-get 之前放置的更新包時,它將替換它並且您的自定義版本不會被觸及。

如果您在建構自定義 emacs 時沒有使用配置選項,它可能會在打包的 emacs 文件中將它們寫在頂部。但這實際上取決於包維護者在建構 .deb 以放置在儲存庫中時使用的選項,因此它有點不可預測。在任何情況下,當您執行 apt-get upgrade 時,自定義安裝覆蓋的任何內容都將再次被覆蓋。每次安裝後,您將只有一個工作版本的 emacs,其中包含一些無關緊要的東西。

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