默认的nginx包在sites-enabled dir中创build一个名为default的符号链接,它指向sites-available的默认configuration文件。 我目前正在为一个位于Nginx之上的应用程序创build一个包,并且我想删除或移走default符号链接,并将其replace为我的包中的configuration文件。 理想情况下,如果我的软件包被删除,原来的default符号链接将被恢复。
我一直在阅读dpkg-divert的manpage和examples,但是我不太明白它可以做到这一点。 用dpkg-divert可以实现吗,还是需要另外想一想?
如果你想转移另一个软件包所拥有的文件:
在你的preinst,转移文件。
dpkg-divert --add --package $your_package_name --rename \ --divert /etc/nginx/sites-available/default.disabled \ /etc/nginx/sites-available/default
在你的后面,把文件转回来。
dpkg-divert --remove --package $your_package_name --rename \ /etc/nginx/sites-available/default
这对符号链接/etc/nginx/sites-enabled/default不起作用,因为它是由nginx包的postinst创build的,而不是作为包的一部分。 既然符号链接是包的一部分,你可以用mv重新命名它。 我不知道这是否符合Debian的包装政策。 如果这对你很重要,因为这是一个相当专业化的问题,所以我build议在debian-devel上查询或询问。