冷たい太陽、明るい闇、熱い氷。矛盾に葛藤、そんな人生。
roadtoalinuxmintuser

theming

roundup
Linux Mint Tips : パッケージのバージョンをダウングレード・固定する方法 02:03
アイキャッチ
時折、アプリ(パッケージ)のバージョンをダウングレードしたい時があります。例えば、更新がリリースされたけれど、まだ十分にテストされていないものであったり、正常に動作しなくなったり、ウェブブラウザを更新したらインストール済みの一部の拡張機能が機能しなくなったなどの場合です。このために、古いバージョンに戻したり、更新を保留することができます。今回は例として Firefox をダウングレードする方法を Linux Mint で行う方法とついでに Arch Linux で行う方法を見ていきます。

Linux Mint


Apt は Linux 界隈で最も愛されているパッケージ管理システムの一つですが、パッケージをロールバックする機能を持っていません。こういう状況において頼りにできるキャッシュシステムもありません。とは言うものの、古いバージョンのパッケージをインストールする方法はたいていあるものです:
apt-cache policy firefox
上のコマンドは、インストールされているバージョン、候補のバージョン、更にはインストール可能な Firefox のバージョンを表示してくれます:
firefox:
インストールされているバージョン: 62.0.3+linuxmint1+tara
候補: 62.0.3+linuxmint1+tara
バージョンテーブル:
62.0.3+linuxmint1+tara 700
700 http://ftp.jaist.ac.jp/pub/Linux/linuxmint/packages tara/upstream amd64 Packages
62.0.3+build1-0ubuntu0.18.04.1 500
500 http://ftp.jaist.ac.jp/pub/Linux/ubuntu bionic-updates/main amd64 Packages
500 http://security.ubuntu.com/ubuntu bionic-security/main amd64 Packages
*** 59.0.2+build1-0ubuntu1 500
500 http://ftp.jaist.ac.jp/pub/Linux/ubuntu bionic/main amd64 Packages
100 /var/lib/dpkg/status

インストールされているのが 62.0.3 で、古くて 59.0.2 が見つかりました。古いパッケージが見つかったらバージョンを指定してインストールします:
sudo apt install firefox=59.0.2+build1-0ubuntu1
出力例:
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています
状態情報を読み取っています... 完了
提案パッケージ:
fonts-lyx
推奨パッケージ:
xul-ext-ubufox
以下のパッケージは「ダウングレード」されます:
firefox
アップグレード: 0 個、新規インストール: 0 個、ダウングレード: 1 個、削除: 0 個、保留: 478 個。
45.3 MB のアーカイブを取得する必要があります。
この操作後に追加で 3,831 kB のディスク容量が消費されます。
続行しますか? [Y/n]

/var/cache/apt/archives


apt を使ってパッケージをインストールすると deb パッケージが /var/cache/apt/archives にダウンロードされます。なのでここを探してみるとお望みのパッケージが見つかるかもしれません:
範囲を選択_122

ただし apt clean もしくは apt autoclean を使っているとこのキャッシュが消されてしまいます。

そもそも更新から除外したい場合


sudo apt upgrade から特定のパッケージを除外したい場合、つまり更新を保留したい場合は以下のようにします。

方法1: CUI


端末から行いたい場合は apt-mark コマンドに hold サブコマンドを指定します:
sudo apt-mark hold firefox
保留から除外したい場合は unhold サブコマンドを使います:
sudo apt-mark unhold firefox

方法2: GUI


  1. ミントメニューから [ Synaptic パッケージマネージャー ] を起動し、Firefox(バージョンをロックしたいパッケージ名)で検索をかけ、そのパッケージを選択した後、[ パッケージ ] -> [ バージョンを固定 ]:
    範囲を選択_135

  2. 固定されたパッケージは [ 状態 ] -> [ PIN指定] から確認できます:
    範囲を選択_136


これで、次回以降 apt upgrade をすると firefox が保留になります:
以下のパッケージは保留されます:
firefox

Arch Linux


Arch Linux 系で古いバージョンにロールバックするのは、Pacman のキャッシュを頻繁に削除していない限り、とても簡単です。Pacman は所定のキャッシュフォルダーにインストールしたパッケージをすべて保存しているからです。

Arch はシンプルであることを念頭に設計されています。Arch の開発者はバグは起きるものだと理解しているので、ロールバックする過程ができるだけ複雑にならないようにしています。

/var/cache/pacman/pkg/ の中身をリストしてどのバージョンが利用可能かチェックしてみます。grep も使えば探すのに便利です:
ls /var/cache/pacman/pkg/ | grep firefox
例えば、見つかったパッケージが firefox-62.0.3 だとしたら:
sudo pacman -U /var/cache/pacman/pkg/firefox-62.0.3-1-x86_64.pkg.tar.xzz
Pacman は現在のパッケージをアンインストールし、古いバージョンをインストールしてくれます。

締め


必要なプロセスはディストロによって変わりますが、これで以前の状態にパッケージをダウングレードすることができます。この手法は一般的な流れに反した行動であることは念頭に入れておきましょう。うまくいかないこともありえます。パッケージのキャッシュは容量を圧迫するにせよ、余裕があるなら削除しないほうが良いでしょう。

参考元: Make Tech Easier
| Linux |
<< NEW | TOP | OLD>>
スポンサーサイト 02:03
| - |

Show some apps list:


miku

Follow on your feed reader:


About this blog:

Linux Mint-centric chronicle with anime girls since 2009.Best View with Google Chrome 1980x1080 dimension.
Info 更新は不定期です。

script

LinuxMint ISO 日本ミラーサーバー:




Amazon: