すでにインストール済みのパッケージについて、何かの都合でバージョンをダウングレードするときは
/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.
以上