Debian Squeezy — Установка пакета конкретной версии

Столкнулся на одном из серверов со странной ситуацией. Для установки более новой версии zabbix-agent добавил официальную репу Zabbix-а, скормил apt-у ключ этой репы, сделал apt-get update, но устанавливать zabbix-agent apt всеравно хотел из официальной репы. Итак …. пробуем разобраться!
Смотрим что есть в репах:

black@srv1:~$ sudo apt-cache showpkg zabbix-agent
Package: zabbix-agent
Versions:
1:2.2.8-1+squeeze (/var/lib/apt/lists/repo.zabbix.com_zabbix_2.2_debian_dists_squeeze_main_binary-amd64_Packages)
 Description Language:
                 File: /var/lib/apt/lists/repo.zabbix.com_zabbix_2.2_debian_dists_squeeze_main_binary-amd64_Packages
                  MD5: eac02cc4af79b30caae8c4f8fb05e53b

1:2.0.4-1~dotdeb.0 (/var/lib/apt/lists/download.softagency.net_debian_dotdeb_dists_squeeze_all_binary-amd64_Packages) (/var/lib/dpkg/status)
 Description Language:
                 File: /var/lib/apt/lists/download.softagency.net_debian_dotdeb_dists_squeeze_all_binary-amd64_Packages
                  MD5: eac02cc4af79b30caae8c4f8fb05e53b

1:1.8.2-1squeeze4 (/var/lib/apt/lists/security.debian.org_dists_squeeze_updates_main_binary-amd64_Packages)
 Description Language:
                 File: /var/lib/apt/lists/security.debian.org_dists_squeeze_updates_main_binary-amd64_Packages
                  MD5: 94cbfad20f3ff85a4bd88cb90c7e629a


Reverse Depends:
Dependencies:
1:2.2.8-1+squeeze - libc6 (2 2.7) libcurl3-gnutls (2 7.16.2-1) libldap-2.4-2 (2 2.4.7) debconf (18 0.5) debconf-2.0 (0 (null)) adduser (0 (null)) ucf (0 (null)) lsb-base (0 (null)) logrotate (0 (null))
1:2.0.4-1~dotdeb.0 - libc6 (2 2.7) libcurl3-gnutls (2 7.16.2-1) libldap-2.4-2 (2 2.4.7) ucf (0 (null)) adduser (0 (null)) lsb-base (0 (null)) logrotate (0 (null))
1:1.8.2-1squeeze4 - libc6 (2 2.7) libldap-2.4-2 (2 2.4.7) libopenipmi0 (0 (null)) debconf (18 0.5) debconf-2.0 (0 (null)) adduser (0 (null)) ucf (0 (null)) lsb-base (0 (null)) logrotate (0 (null))
Provides:
1:2.2.8-1+squeeze -
1:2.0.4-1~dotdeb.0 -
1:1.8.2-1squeeze4 -
Reverse Provides:
black@srv1:~$

Тоесть с разных репозитариев доступно 3 разных версии zabbix-agent (1:2.2.8-1+squeeze, 1:2.0.4-1~dotdeb.0, 1:1.8.2-1squeeze4)

Но при попытке инстала какого то беса ставится более старая версия 2.0.4 вместо более новой 2.2.8

black@srv1:~$ sudo apt-get -d install zabbix-agent
Reading package lists... Done
Building dependency tree      
Reading state information... Done
The following NEW packages will be installed:
  zabbix-agent
0 upgraded, 1 newly installed, 0 to remove and 123 not upgraded.
Need to get 257 kB of archives.
After this operation, 733 kB of additional disk space will be used.
Get:1 http://download.softagency.net/debian/dotdeb/ squeeze/all zabbix-agent amd64 1:2.0.4-1~dotdeb.0 [257 kB]
Fetched 257 kB in 3s (82.2 kB/s)      
Download complete and in download only mode
black@srv1:~$

Последнюю версию zabbix-agent установил только явно указав название пакета при установке:

black@srv1:~$ sudo apt-get install zabbix-agent=1:2.2.8-1+squeeze
Reading package lists... Done
Building dependency tree      
Reading state information... Done
The following NEW packages will be installed:
  zabbix-agent
0 upgraded, 1 newly installed, 0 to remove and 123 not upgraded.
Need to get 402 kB of archives.
After this operation, 823 kB of additional disk space will be used.
Get:1 http://repo.zabbix.com/zabbix/2.2/debian/ squeeze/main zabbix-agent amd64 1:2.2.8-1+squeeze [402 kB]
Fetched 402 kB in 0s (1,275 kB/s)    
Preconfiguring packages ...
Selecting previously deselected package zabbix-agent.
(Reading database ... 67305 files and directories currently installed.)
Unpacking zabbix-agent (from .../zabbix-agent_1%3a2.2.8-1+squeeze_amd64.deb) ...
dpkg: warning: unable to delete old directory '/var/log/zabbix-agent': Directory not empty
dpkg: warning: unable to delete old directory '/etc/zabbix/zabbix_agentd.conf.d': Directory not empty
Processing triggers for man-db ...
Setting up zabbix-agent (1:2.2.8-1+squeeze) ...
Installing new version of config file /etc/logrotate.d/zabbix-agent ...
Installing new version of config file /etc/init.d/zabbix-agent ...
Starting Zabbix agent: zabbix_agentd.
black@srv1:~$

Сработало на ура!

Но можно решить и по-другому, посути нам мешает политика APT Priority:

black@srv1:~$ sudo apt-cache policy zabbix-agent
zabbix-agent:
  Installed: (none)
  Candidate: 1:2.0.4-1~dotdeb.0
  Version table:
     1:2.2.8-1+squeeze 0
        500 http://repo.zabbix.com/zabbix/2.2/debian/ squeeze/main amd64 Packages
     1:2.0.4-1~dotdeb.0 0
        700 http://download.softagency.net/debian/dotdeb/ squeeze/all amd64 Packages
     1:1.8.2-1squeeze4 0
        500 http://security.debian.org/ squeeze/updates/main amd64 Packages
black@srv1:~$

Но APT позволяет гибко выставлять политики приоритетов на пакеты/репозитарии/релизы и тп. В данном случае нам надо репозиторию Zabbix-а дать более высокий приоритет чем основному — «softagency.net»
Для этого добавим опцию в /etc/apt/preferences

Package: *
Pin: origin "repo.zabbix.com"
Pin-Priority: 800

И еще раз посмотрим policy:

black@srv1:~$ sudo apt-cache policy zabbix-agent
zabbix-agent:
  Installed: (none)
  Candidate: 1:2.2.8-1+squeeze
  Version table:
     1:2.2.8-1+squeeze 0
        800 http://repo.zabbix.com/zabbix/2.2/debian/ squeeze/main amd64 Packages
     1:2.0.4-1~dotdeb.0 0
        700 http://download.softagency.net/debian/dotdeb/ squeeze/all amd64 Packages
     1:1.8.2-1squeeze4 0
        500 http://security.debian.org/ squeeze/updates/main amd64 Packages
black@srv1:~$

Ну вот и все, можно ставить zabbix-agent!

Хай щастить!

  1. Комментов пока нет

  1. Трэкбэков пока нет.

Why ask?