Debian

安裝軟體包時如何使用 dpkg-divert 臨時刪除/替換符號連結?

  • June 10, 2011

預設的 nginx 包創建一個defaultsites-enableddir 中命名的符號連結,它指向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上搜尋或詢問。

引用自:https://serverfault.com/questions/279331