4
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

apt-getでパッケージをダウングレードする方法

Posted at

すでにインストール済みのパッケージについて、何かの都合でバージョンをダウングレードするときは
/etc/apt/preferencesにパッケージの優先度を変更する記述を記載すること。

例えば、openjdk-8-*というパッケージは現状ubuntu16.04では最新8u171だが
これを8u77-b03-3ububtu3にダウングレードするには

Package: openjdk-8-*
Pin: version 8u77-b03-3ubuntu3
Pin-Priority: 1000

と書いておいて、通常通りapt-get updateとapt-get upgradeを実行する。
すると、aptがその名のadvancedにふさわしい高度な振る舞いで、依存関係を考慮して
ダウングレードしてくれる。 1000は古くてもインストールする優先度の指定。
apt-get install <パッケージ名>=<バージョン>でバージョン指定でインストールする方法があるが、
この方法では依存関係のパッケージが複数あって、バージョンがunmetでインストールできない。
それら関係するパッケージを複数同時にコマンドラインに並べても、その方法ではうまくいかない。

snapshot.debian.orgが過去のスナップショットのホスティングサービスしているが、
パッケージをダウングレードをする場合は、パッケージの優先度を変更する必要がある。
残念ながら、snapshot.debian.orgのサイトの説明は、sources.listの記載例が載っているが、
優先度をいじることまでは書かれていない。実際やってみると、古いパッケージは無視される。
このことは、Debian管理者ハンドブックをじっくり読むと、aptの優先度の説明の項に丁寧に説明されている。

ちなみにDebian 管理者ハンドブックは、PDF,ePub,mobi何ちゃらの3つの電子フォーマットで入手できる。
しかも日本語もあり無料でダウンロードできる。iPadはePubの方が読みやすい。とってもセンスのいい人達。
すかさず、際少額ですがdonateさせていただきました。
Debianって、カップルの二人の名前をミックスしたものだったのですね。女の人がDeb*で男がIan.

以上

4
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?