自编译.deb包及apt-get升级

自编译.deb包及apt-get升级

我目前正在使用以下命令自行编译 nginx 包:

sudo apt-get build-dep nginx-extras
sudo apt-get install build-essential
apt-get source nginx-extras
cd nginx
<add some custom module here>
dpkg-buildpackage -us -uc
sudo dpkg -i nginx-extras_1.10.0-0ubuntu0.16.04.4_amd64.deb
sudo apt-mark hold nginx-extras

我这样做是因为我需要安装一些自定义模块 - 但是运行此命令后,apt-get upgrade指示 nginx 有一个升级,如果apt-mark hold没有生效,它将应用该升级。我以为我刚刚编译了最新版本,那么它为什么要升级呢?

我在这里遇到的问题是我使用 apticron,它每天都会向我发送一封电子邮件,指出我有未升级的软件包,而事实上我已经拥有最新的软件包。

编辑:一些额外的输出:

$ sudo apt-get upgrade --simulate
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Calculating upgrade... Done
The following packages will be upgraded:
  nginx-extras
1 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
Inst nginx-extras [1.10.0-0ubuntu0.16.04.4] (1.10.0-0ubuntu0.16.04.4 Ubuntu:16.04/xenial-updates, Ubuntu:16.04/xenial-security [amd64])
Conf nginx-extras (1.10.0-0ubuntu0.16.04.4 Ubuntu:16.04/xenial-updates, Ubuntu:16.04/xenial-security [amd64])

$ sudo apt-cache policy nginx-extras
nginx-extras:
  Installed: 1.10.0-0ubuntu0.16.04.4
  Candidate: 1.10.0-0ubuntu0.16.04.4
  Version table:
     1.10.0-0ubuntu0.16.04.4 500
        500 http://mirrors.digitalocean.com/ubuntu xenial-updates/universe amd64 Packages
        500 http://security.ubuntu.com/ubuntu xenial-security/universe amd64 Packages
 *** 1.10.0-0ubuntu0.16.04.4 100
        100 /var/lib/dpkg/status
     1.9.15-0ubuntu1 500
        500 http://mirrors.digitalocean.com/ubuntu xenial/universe amd64 Packages

答案1

您可以使用 apt 首选项覆盖检查。例如(根据需要更改版本):在/etc/apt/preferences.d/nginx-custom

Package: nginx
Pin: release n=yakkety
Pin-Priority: -1

# This will cause nginx to be ignored and use the locally compiled version only

我使用此技术进行ffmpeg与您的需要类似的自定义编译nginx

相关内容