Como evitar que o apt-get install remova as retenções de pacotes?

6

Atualizamos recentemente de 10.04 para 14.04.

Temos alguns pacotes mantidos, os quais os atualizamos de tempos em tempos. Parece que em 14.04, quando você instala ou atualiza um pacote, ele remove a retenção do pacote.

$ dpkg --get-selections libmysqlclient18
libmysqlclient18:amd64              install

# Hold the package
$ echo 'libmysqlclient18:amd64 hold' | sudo dpkg --set-selections

# Check that worked
$ dpkg --get-selections libmysqlclient18
libmysqlclient18:amd64              hold

# Install a new version of the package
$ sudo apt-get install libmysqlclient18
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following extra packages will be installed:
  mysql-common
The following held packages will be changed:
  libmysqlclient18
The following packages will be upgraded:
  libmysqlclient18 mysql-common
2 upgraded, 0 newly installed, 0 to remove and 14 not upgraded.
Need to get 610 kB of archives.
After this operation, 0 B of additional disk space will be used.
Do you want to continue? [Y/n] y
Get:1 http://archive.ubuntu.com/ubuntu/ trusty-updates/main mysql-common all 5.5.44-0ubuntu0.14.04.1 [13.9 kB]
Get:2 http://archive.ubuntu.com/ubuntu/ trusty-updates/main libmysqlclient18 amd64 5.5.44-0ubuntu0.14.04.1 [596 kB]
Fetched 610 kB in 1s (339 kB/s)
Reading changelogs... Done
apt-listchanges: Mailing root: apt-listchanges: changelogs for <host>
(Reading database ... 490677 files and directories currently installed.)
Preparing to unpack .../mysql-common_5.5.44-0ubuntu0.14.04.1_all.deb ...
Unpacking mysql-common (5.5.44-0ubuntu0.14.04.1) over (5.5.43-0ubuntu0.14.04.1) ...
Preparing to unpack .../libmysqlclient18_5.5.44-0ubuntu0.14.04.1_amd64.deb ...
Unpacking libmysqlclient18:amd64 (5.5.44-0ubuntu0.14.04.1) over (5.5.43-0ubuntu0.14.04.1) ...
Setting up mysql-common (5.5.44-0ubuntu0.14.04.1) ...
Setting up libmysqlclient18:amd64 (5.5.44-0ubuntu0.14.04.1) ...
Processing triggers for libc-bin (2.19-0ubuntu6.6) ...

A instalação removeu a espera!

$ dpkg --get-selections libmysqlclient18
libmysqlclient18:amd64              install

Isso acontece para pacotes sem scripts postinst / prerm, então parece que o problema está no apt e não nos próprios pacotes. Isso não aconteceu em 10.04.

Alguém pode sugerir uma solução alternativa que impeça o apt de fazer isso?

    
por craigds 23.07.2015 / 02:18

1 resposta

2

Esta é uma alteração do dpkg, não uma alteração do apt:

# dpkg --get-selections  | grep hold
google-chrome-stable                            hold
# dpkg -i google-chrome-stable_44.0.2403.125-1_amd64.deb
(Reading database ... 318187 files and directories currently installed.)
...
# dpkg --get-selections  | grep hold
#

Depois de fazer alguns git bisect, essa alteração foi introduzida no link como parte do link

    
por kormat 05.08.2015 / 11:09