Debian

/etc/services 是否有系統範圍的“擴展”在包更新時不會被替換?

  • May 3, 2019

我知道如何使用/etc/services,但如果我更改它並且該inetd軟體包稍後更新apt-get為新的預設軟體包,我的更改就消失了(發生在我apt-get dist-upgrade從 Debian Wheezy 到 Jessie 的過程中)。它們保存在備份中,但我仍然必須重新集成我的更改,否則可能會錯過包管理器的新預設值(通過跳過新預設版本的安裝)。

有沒有辦法讓使用者生成的系統範圍的“擴展”/etc/services也被載入並只包含我的更改,以便配置不會因包更新而被破壞?

如果相關,我正在研究 Debian Jessie。

/etc/services是一個conffile,所以如果你在本地修改它並且一個新的包版本安裝了一個修改後的版本,dpkg 會詢問你是保留你的版本還是安裝新的版本。不幸的是,它不會為您提供一種簡單的方法來合併您的更改。

您可以轉移提供的包裹/etc/services並提供您自己的包裹。

dpkg-divert --add --local --rename --divert /etc/services.debian /etc/services

如果您想連接您自己的條目或以其他方式轉換 Debian 文件,您可以在 APT 完成工作時執行掛鉤腳本。在中聲明腳本/etc/apt/apt.conf.d/local-etc-merge

DPkg::Post-Invoke {"cat /etc/services.local /etc/services.debian >/etc/services"}

或者,您可以/etc/services 在讀取時呼叫命令(除非您/etc/services.local經常修改,否則這太過分了)。

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