默认的 nginx 软件包会default
在sites-enabled
目录中创建一个名为的符号链接,该符号链接指向 中的默认配置文件sites-available
。我目前正在为位于 Nginx 之上的应用程序创建一个软件包,我想删除或移走符号default
链接,并将其替换为软件包中的配置文件。理想情况下,如果我的软件包被删除,则原始default
符号链接将被恢复。
我一直在阅读 的手册页和示例dpkg-divert
,但我不太明白它可以做到这一点。这可以用 实现吗dpkg-divert
,还是我必须想出另一种方法?
答案1
如果你想转移另一个包拥有的文件:
在您的预演中,将文件转移走。
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
这不适用于符号链接/etc/nginx/sites-enabled/default
,因为它是由nginx
软件包的 postinst 创建的,而不是软件包的一部分。由于符号链接是软件包的一部分,因此您只需将其重命名为 即可mv
。我不知道这是否符合 Debian 打包政策;如果这对您很重要,因为这是一个相当专业的问题,我建议您搜索或询问debian-devel。