Ubuntu でパッケージのバージョンを指定してインストールする

Pocket

例えば Ubuntu Server 16.04 LTS に Zabbix Agent 3.0 系をインストールするケース。

以前 showpkg した結果からフルでバージョンを指定する。 1:3.0.9-1+xenial


cd /tmp
wget http://repo.zabbix.com/zabbix/3.0/ubuntu/pool/main/z/zabbix-release/zabbix-release_3.0-1+xenial_all.deb
sudo dpkg -i zabbix-release_3.0-1+xenial_all.deb
sudo apt-get update
wataru@localhost:/tmp$ sudo apt-get install zabbix-agent=1:3.0.9-1+xenial
Reading package lists... Done
Building dependency tree       
Reading state information... Done
E: Version '1:3.0.9-1+xenial' for 'zabbix-agent' was not found

アカンって言われました。
これはマイナーバージョンレベルでバージョンが一致するバージョンがもう無いからです。
実際に showpkg サブコマンドを走らせてみると 1:3.0.10-1+xenial になってました。


wataru@localhost:/tmp$ sudo apt-cache showpkg zabbix-agent
Package: zabbix-agent
Versions: 
1:3.0.10-1+xenial (/var/lib/apt/lists/repo.zabbix.com_zabbix_3.0_ubuntu_dists_xenial_main_binary-amd64_Packages)
 Description Language: 
                 File: /var/lib/apt/lists/repo.zabbix.com_zabbix_3.0_ubuntu_dists_xenial_main_binary-amd64_Packages
                  MD5: 484af76ad2e4059dcadcdaed926aa32d
 Description Language: 
                 File: /var/lib/apt/lists/repo.zabbix.com_zabbix_3.0_ubuntu_dists_xenial_main_binary-i386_Packages
                  MD5: 484af76ad2e4059dcadcdaed926aa32d

1:2.4.7+dfsg-2ubuntu2.1 (/var/lib/apt/lists/jp.archive.ubuntu.com_ubuntu_dists_xenial-updates_universe_binary-amd64_Packages)
 Description Language: 
                 File: /var/lib/apt/lists/jp.archive.ubuntu.com_ubuntu_dists_xenial_universe_binary-amd64_Packages
                  MD5: eac02cc4af79b30caae8c4f8fb05e53b
 Description Language: 
                 File: /var/lib/apt/lists/jp.archive.ubuntu.com_ubuntu_dists_xenial_universe_binary-i386_Packages
                  MD5: eac02cc4af79b30caae8c4f8fb05e53b
 Description Language: en
                 File: /var/lib/apt/lists/jp.archive.ubuntu.com_ubuntu_dists_xenial_universe_i18n_Translation-en
                  MD5: eac02cc4af79b30caae8c4f8fb05e53b
 Description Language: 
                 File: /var/lib/apt/lists/jp.archive.ubuntu.com_ubuntu_dists_xenial-updates_universe_binary-amd64_Packages
                  MD5: eac02cc4af79b30caae8c4f8fb05e53b
 Description Language: 
                 File: /var/lib/apt/lists/jp.archive.ubuntu.com_ubuntu_dists_xenial-updates_universe_binary-i386_Packages
                  MD5: eac02cc4af79b30caae8c4f8fb05e53b

1:2.4.7+dfsg-2ubuntu2 (/var/lib/apt/lists/jp.archive.ubuntu.com_ubuntu_dists_xenial_universe_binary-amd64_Packages)
 Description Language: 
                 File: /var/lib/apt/lists/jp.archive.ubuntu.com_ubuntu_dists_xenial_universe_binary-amd64_Packages
                  MD5: eac02cc4af79b30caae8c4f8fb05e53b
 Description Language: 
                 File: /var/lib/apt/lists/jp.archive.ubuntu.com_ubuntu_dists_xenial_universe_binary-i386_Packages
                  MD5: eac02cc4af79b30caae8c4f8fb05e53b
 Description Language: en
                 File: /var/lib/apt/lists/jp.archive.ubuntu.com_ubuntu_dists_xenial_universe_i18n_Translation-en
                  MD5: eac02cc4af79b30caae8c4f8fb05e53b
 Description Language: 
                 File: /var/lib/apt/lists/jp.archive.ubuntu.com_ubuntu_dists_xenial-updates_universe_binary-amd64_Packages
                  MD5: eac02cc4af79b30caae8c4f8fb05e53b
 Description Language: 
                 File: /var/lib/apt/lists/jp.archive.ubuntu.com_ubuntu_dists_xenial-updates_universe_binary-i386_Packages
                  MD5: eac02cc4af79b30caae8c4f8fb05e53b


Reverse Depends: 
  zabbix-agent:i386,zabbix-agent
  zabbix-agent:i386,zabbix-agent
  zabbix-agent:i386,zabbix-agent
Dependencies: 
1:3.0.10-1+xenial - libc6 (2 2.17) libcurl3 (2 7.16.2) libldap-2.4-2 (2 2.4.7) libssl1.0.0 (2 1.0.1) adduser (0 (null)) lsb-base (0 (null)) logrotate (0 
(null)) zabbix-agent:i386 (32 (null)) 
1:2.4.7+dfsg-2ubuntu2.1 - libc6 (2 2.17) libcurl3-gnutls (2 7.16.2) libldap-2.4-2 (2 2.4.7) init-system-helpers (2 1.18~) ucf (0 (null)) adduser (0 (null
)) lsb-base (0 (null)) pciutils (0 (null)) usbutils (0 (null)) logrotate (0 (null)) zabbix-agent:i386 (32 (null)) 
1:2.4.7+dfsg-2ubuntu2 - libc6 (2 2.17) libcurl3-gnutls (2 7.16.2) libldap-2.4-2 (2 2.4.7) init-system-helpers (2 1.18~) ucf (0 (null)) adduser (0 (null))
 lsb-base (0 (null)) pciutils (0 (null)) usbutils (0 (null)) logrotate (0 (null)) zabbix-agent:i386 (32 (null)) 
Provides: 
1:3.0.10-1+xenial - 
1:2.4.7+dfsg-2ubuntu2.1 - 
1:2.4.7+dfsg-2ubuntu2 - 
Reverse Provides: 

毎回 showpkg してマイナーバージョンレベルで指定するのつらいです。ワイルドカード指定したいです。
man apt-get したけどなんかそれらしい記述見つからないなって思って以下のようにアスタリスク * つけたらうまくいきました。ポイントはダブルクォートで囲ってシェルのワイルドカード展開が働かないようにするところですね。


sudo apt-get install "zabbix-agent=1:3.0.*+xenial"

これでOK。

そういえば Ubuntu Server 16.04.2 LTS では apt-get の代わりに apt コマンドが使えるようになってきています。こっちのほうが今後主流になってくるのかな?

投稿者紹介

Wataru Noguchi
* Bio: Software Engineer, Network and Server Engineer
* Certification:
IPA: FE, AP, Network Specialist
Cisco: CCNA R&S, CCNP R&S
LPI: LPIC Level1, Level2, LPIC-3 Specialty LPI-304 Virtualization &High Availability

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください