Debian
安裝軟體包時如何使用 dpkg-divert 臨時刪除/替換符號連結?
預設的 nginx 包創建一個
default
在sites-enabled
dir 中命名的符號連結,它指向sites-available
. 我目前正在為位於 Nginx 之上的應用程序創建一個包,我想刪除或移走default
符號連結,並將其替換為我包中的配置文件。理想情況下,如果我的包被刪除,原始default
符號連結將被恢復。我一直在閱讀手冊頁和範例
dpkg-divert
,但我不太明白它可以做到這一點。這是可以實現的dpkg-divert
,還是我必須考慮另一種方式?
如果你想轉移另一個包擁有的文件:
- 在你的預先安排中,轉移文件。
dpkg-divert --add --package $your_package_name --rename \ --divert /etc/nginx/sites-available/default.disabled \ /etc/nginx/sites-available/default
- 在您的 postrm 中,將文件轉移回來。
dpkg-divert --remove --package $your_package_name --rename \ /etc/nginx/sites-available/default
這不適用於 symlink
/etc/nginx/sites-enabled/default
,因為它是由nginx
包的 postinst 創建的,而不是包的一部分。由於符號連結是包的一部分,因此您只需將其重命名為mv
. 我不知道這是否符合 Debian 打包政策;如果這對您很重要,因為這是一個相當專業的問題,我建議您在debian-devel上搜尋或詢問。