apt-getを使用してパッケージをダウングレードする方法は?


309

を使用してパッケージを古いバージョンにダウングレードするにはどうすればよいapt-getですか?

他のツールも使用できますがapt-get、推奨されます。

回答:


307

バージョン番号 apt-getまたはターゲットリリースがある場合、特定のバージョンまたはターゲットリリースの選択をサポートします。詳細については、apt-getのマニュアルページを参照してください。次のように入力して、ターミナルからアクセスすることもできます。man apt-get

sudo apt-get install <package-name>=<package-version-number> または

sudo apt-get -t=<target release> install <package-name>

実行するコマンドです。これを使用して、パッケージを特定のバージョンにダウングレードできます。

以下のコメントで有益に指摘されています。

  • apt-cache showpkg <package-name>使用可能なすべてのバージョンをリストします。(h / t Sparhawk
  • apt-mark hold <package-name> パッケージを現在のバージョンで「保持」し、自動アップグレードを防ぎます。(h / tLuísde Sousa

58
また、使用apt-cache showpkg <package-name>可能なバージョンをリストするために使用します。
スパルホーク

16
その後、次のコマンドも実行できます:apt-mark hold <package-name>自動アップグレードを回避するため。
ルイスデスーサ

4
aptitudeは依存関係をダウングレードするよりも良いことがわかりましたapt-get
クリスピー

5
apt-cache policy <package-name>インストール済みバージョンと利用可能なバージョンのみを表示
マイケルロートン

18
showpkg興味のあるバージョンが表示されない場合はどうしますか?
デモンゴレム

104

つかいます

apt-get install «pkg»=«version»

または

sudo aptitude install «pkg»=«version»

どこ«PKGの»は、パッケージの名前で、«バージョン»は、バージョン番号です。


3
私が入力したときにapt-get install pkg=version、私が何をしたいのか、もちろんのではないすべてのインストール済みパッケージのほぼ半分を削除apt-getを申し出
DFR

より多くの票を持つ(他の点では同一の)回答で指摘されているように、これはの場合aptitudeよりもはるかに優れた仕事をする重要なケースの1つであるようですapt-get。私の場合apt-get、ダウングレード要求をきっぱりと拒否aptitudeしましたが、新しいバージョンに依存する他のpkgがあることを指摘しました(したがって、同時にダウングレードする必要がありました)。
sxc731

28

ppaを使用してソフトウェアをアップグレードした場合は、を使用してソフトウェアをダウングレードできますppa-purge。まずppa-purge、このコードを使用してインストールする必要があります。

sudo apt-get install ppa-purge

次に、コマンドを使用してPPAを削除できます

sudo ppa-purge ppa:user / ppa-name

これにより、ソフトウェアはUbuntuに同梱されていた元のバージョンに自動的にダウングレードされます。


1
このソリューションは、パッケージに依存関係があり、それらもダウングレードする必要がある場合にのみ匹敵します。ありがとう!
および

1
はい、これはkubuntu-ppa / backportsからKDE / Plasmaデスクトップをダウングレードするのに最適なソリューションです。気づいたことの1つは、PPAの.listファイルにdebがコメントアウトされてはならないため、ppa-purgeがすべてのファイルを参照できることですパージのために削除する必要があります。最初はうまくいかなかった理由を理解するために少し時間がかかりました。それが他の人に役立つことを願っています!
AveryFreeman

10

ダウングレードするには、次のようなコマンドを実行する必要があります

 sudo apt-get install pkg_name=version

ターミナルで。

versionダウングレードする前のバージョンを置く場所。


少なくともダウングレードする必要のあるパッケージに依存するlinux-genericでは動作しません。paste.ubuntu.com/p/NWSmf2ZwTy
mymedia

9

私の意見では、まず次のようにパッケージをアンインストールまたはパージする必要があります。

sudo apt-get remove <package>

または

sudo apt-get purge <package>

次に、インストールするバージョンをダウンロードし、「ダウンロード」などのフォルダーに保存しますabc.deb。ターミナルを開き、cdコマンドを使用してフォルダーに移動し、次のコマンドを使用して以前のバージョンをインストールしますdpkg

sudo dpkg -i abc.deb

または、ppa-purgePPA経由で更新されたパッケージをダウングレードする場合に呼び出される小さなユーティリティがあります。

このスレッドを参照してください:http : //www.webupd8.org/2009/12/remove-ppa-repositories-via-command.html


3
パッケージを削除すると、多くの依存パッケージが削除され、システムが使用できなくなることがあります。しかし、ppapurgeは興味深いですね。
タイプ

12
古いバージョンのパッケージをインストールする前に、(別のステップとして)最初にパッケージをアンインストールする必要があると考える理由を説明できますか?
エリアケイガン


1
@temotoそのリンクはリリースをダウングレードするためのものですunstable-> testing-> stable個々のパッケージをダウングレードするためではありません。
ブライアム

0

この質問は古いですが、グーグルが私をここに導いてくれたので、多くのパッケージを古いリリースにダウングレードするときに手動でバージョンを渡す必要のない簡単な解決策は見つかりませんでした。

だから多分それを必要とする人も私の解決策を見つけるでしょう。

apt-show-versionsインストールされているバージョンを表示するというツールがあります。

正規表現を微調整することで、必要なすべてのパッケージを簡単にダウングレードできますが、次のとおりです。

$ sudo apt-get install $(apt-show-versions | grep -P 'newer than version in archive' | awk -F: '{print $1"/jessie"}')

代わりに、必要に応じて/ / etc jessieを使用できます。busterxenial


または、インストールされている最新のリリースに自動的にダウングレードしますsudo apt-get install -V $(apt-show-versions | grep -F 'newer than version in archive' | awk -F: '{print $1"/'$(lsb_release -cs)'"}')。ここで使用-Fすることを好みgrepます。
ジャルノ

sudo apt-show-versions -iパッケージキャッシュが古い場合は、最初に実行する必要があります。
ジャルノ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.