前段时间,我在我的debian / squeeze服务器上apt-get install ' nginx软件包 。 我的要求已经改变,我需要安装nginx --with-http_xslt_module 。
要用这个选项安装nginx,我做了下面的事情:
apt-get build-dep nginx apt-get source nginx dpkg-buildpackage -rfakeroot -uc -b dpkg -i nginx_0.7.62-4_amd64.deb 这一切似乎都很好,但现在当我做一个apt-get dist-upgrade它会尝试再次安装nginx二进制文件。
请你能build议…
remove ? 我想你正在寻找的是一个包装的能力。 当一个软件包被拿着的时候不会试图升级或者改变它。
像这样的命令将设置nginx被保留。
dpkg --get-selections | grep 'nginx' | sed -e 's/install/hold/' | sudo dpkg --set-elections
你可能会想要记下你做到了这一点。 当需要升级到下一个主要版本时,您可能需要删除该保留。
我不明白你想要什么 – 你不想安装nginx,但你也不想删除它? 这是没有意义的。 如果要确保包的构build保持安装状态,并且未升级到标准版本,则需要使用包装固定,如apt_preferences手册页中所述。
在运行dpkg-buildpackage之前,在源目录中运行dch -lxslt以增加版本号并添加更改日志条目。 这将停止升级它,虽然如果一个新的版本出来(例如安全),它会再次升级。 为了避免这种情况,通过将debian/control的版本号预先设置为1来增加软件包的时间,除非您从Debian存储库中降级到版本,否则将停止升级软件包(包括安全修复程序)。 所以如果你这样做,你需要注意安全版本并手动重build。
你正在寻找的方式可能会追加到包版本的后缀。 在Ubuntu的包装指南和Recipes / PackageUpdate中有一些信息。
我记得大约7年前成功掌握了Debian内核包,但现在已经忘记了细节。