ご存知のとおり、apt upgrade
を使用して、インストールされているすべてのパッケージをアップグレードできます。 Debian、Ubuntuおよびその他のDebianベースのシステムでのコマンド。このアップグレードプロセス中に、インストールされているすべてのパッケージがアップグレードされ、いくつかの追加パッケージ(つまり、依存関係)がインストールされ、いくつかの不要なパッケージが削除されます。 Aptパッケージマネージャーは、ユーザーがクリーンなシステムを維持できるように、これらすべてのことを自動的に実行します。 Aptには、Debian、Ubuntu、およびそのバリアントでパッケージが自動的にインストール、アップグレード、または削除されないようにするオプションもあります。このガイドでは、Debian、Ubuntu、およびLinux MintやPop!_OSなどのその派生物でパッケージがアップグレードされないようにするためのさまざまな方法について説明します。
パッケージのアップグレードを阻止したいのはなぜですか?
なぜ誰かがaptアップグレードからパッケージを差し控えたいのか疑問に思うかもしれません。パッケージを最新バージョンに更新することは、システムを保護するのに役立ちませんか?もちろんはい!ただし、特定の状況ではこれを実行したくありません。パッケージのアップグレードを妨げるいくつかの理由は次のとおりです。
- パッケージの現在のバージョンは正常に機能しているため、アップグレードする必要はないと思われるかもしれません。
- 正しく機能するには、別のアプリケーションで特定のバージョンが必要です。
- 更新しようとしているパッケージに問題がある可能性があります。開発者はパッケージをリポジトリにプッシュする前に徹底的にテストしますが、システムを破壊する不安定なパッケージを無意識のうちにプッシュする場合があります。
- 帯域幅の節約。 500MBを超えるパッケージを更新したくない場合があります。
したがって、理由が何であれ、DebianまたはUbuntuシステムでパッケージが変更されないようにしたい場合は、このチュートリアルが役立ちます。
Debian、Ubuntuでパッケージがアップグレードされないようにする
コマンドラインから、または Synaptic と呼ばれるグラフィカルなパッケージ管理ユーティリティを使用して、aptアップグレードからパッケージを防止/保持/無視/除外できます。 パッケージマネージャー。
まず、コマンドラインメソッドを見てみましょう!
1。 Debian、Ubuntuでapt-markコマンドを使用して、パッケージが自動的にインストール、アップグレード、または削除されないようにします
Apt-mark パッケージを自動/手動でインストールされているものとしてマークしたり、dpkg
を変更したりするなど、パッケージのさまざまな設定を表示、設定、および設定解除するために使用されます 保持、インストール、削除、パージなど、尊重される選択。 apt-get dselect-upgrade
による またはaptitude
。
パッケージの変更(インストール、アンインストール、アップグレード)を防ぐために、apt-mark
コマンドは、次の3つのサブコマンドを提供します。
- 保留
- 保留
- ショーホールド
hold
コマンドを使用して、パッケージを保留としてマークします。これにより、パッケージが自動的にインストール、アップグレード、または削除されなくなります。
unhold
コマンドを使用して、パッケージに以前に設定された保留をキャンセルし、すべてのアクションを再度許可します。
そしてshowhold
コマンドは、保留中のパッケージのリストを表示するために使用されます。
例を見てみましょう。パッケージを防止します(例:htop
)コマンドを使用して自動的にインストール、アップグレード、または削除されないようにする:
$ sudo apt-mark hold htop
出力例:
htop set on hold.
ロックされたhtop
システムをアップグレードした後も、パッケージは同じバージョンのままになります。
保留中のパッケージを表示するには、次を実行します:
$ sudo apt-mark showhold
パッケージの保留を解除するには、次を実行します:
$ sudo apt-mark unhold htop
出力例:
Canceled hold on htop.
この方法では、パッケージを手動で削除できますことに注意してください。 。 apt-get remove <packagename>
を使用して、ロックされたパッケージを引き続き削除できます。 コマンド。
この方法では、システムのアップグレード中にアプリケーションが自動的にインストール、更新、アップグレード、または削除されるのを防ぐだけです。パッケージを保持するということは、実際には、パッケージマネージャーに新しいバージョンが利用可能であっても、現在のバージョンを保持するように指示していることを意味します 。このトリックは、グラフィックスドライバーを抑制しているときに非常に役立ちます。現在動作しているプログラムの最新バージョンが更新後に壊れた場合にも役立ちます。
コマンドsudo apt-get update
を使用してシステムを更新しようとするときはいつでも またはsudo apt-get upgrade
、マークされたパッケージは、パッケージを保持した時点で同じバージョンのままです。
DebianまたはUbuntuでパッケージの変更を防ぐためのCLIユーティリティはApt-markだけではありません。パッケージを保留にし、後でコマンドラインから保留を解除する方法は他に2つあります。
2。 Debian、Ubuntuでdpkgを使用してパッケージをアップグレードできないようにする
Dpkg Debianパッケージをインストール、ビルド、削除、管理するためのコマンドラインユーティリティです。
パッケージを配置するには、たとえば htop 、dpkgを使用して保留にし、次を実行します:
$ echo "htop hold" | sudo dpkg --set-selections
以前に保留にしたパッケージのステータスを表示するには、次を実行します:
$ dpkg --get-selections | grep "htop"
htop hold
ご覧のとおり、htopは保留になっています。
すべてのパッケージのステータスを表示するには、次を実行します:
$ dpkg --get-selections
パッケージの保留を解除するには、次の手順を実行します。
$ echo "htop install" | sudo dpkg --set-selections
3。 Debian、Ubuntuでaptitudeを使用してアップグレードからパッケージを保持する
適性 Debian GNU/Linuxパッケージシステムへのテキストベースのインターフェースです。これにより、ユーザーは、パッケージのインストール、更新、アップグレード、一覧表示、削除など、さまざまなパッケージ管理タスクを実行できます。
パッケージを保留にして自動的にアップグレードされないようにするには、次のコマンドを実行します。
$ sudo aptitude hold htop
パッケージのステータスを表示するには、次のコマンドを実行します。
$ aptitude show htop
出力例:
Package: htop
Version: 2.2.0-2build1
State: installed [held]
Automatically installed: no
Priority: optional
Section: utils
Maintainer: Ubuntu Developers <[email protected]>
Architecture: amd64
Uncompressed Size: 225 k
Depends: libc6 (>= 2.15), libncursesw6 (>= 6), libtinfo6 (>= 6)
Suggests: lsof, strace
Description: interactive processes viewer
Htop is an ncursed-based process viewer similar to top, but it allows
one to scroll the list vertically and horizontally to see all processes
and their full command lines.
Tasks related to processes (killing, renicing) can be done without
entering their PIDs.
Homepage: https://hisham.hm/htop/
上記の出力でわかるように、htopパッケージはアップグレードから保留されています。
パッケージの保留を解除するには、次の手順を実行します。
$ sudo aptitude unhold htop
4。 Debian、UbuntuのSynapticパッケージマネージャーを使用して、パッケージが自動的にインストール、アップグレード、または削除されないようにします
シナプスをお持ちの場合 システムにパッケージマネージャーがインストールされている場合、パッケージのインストール、更新、アップグレード、または削除を簡単にロックできます。
Synapticマネージャーを開き、保持したいパッケージを検索します。次に、パッケージをクリックします メニューバーから長押しをクリックします 。
それでおしまい。これで、パッケージを保持している限り、システムのアップグレード中にパッケージに影響が及ぶことはありません。
保留を解除するには、Synaptic->パッケージ->ロック解除に移動します バージョン。
Synapticパッケージマネージャーがシステムにインストールされていない場合は、次のコマンドを使用してインストールできます:
$ sudo apt install synaptic
結論
このチュートリアルでは、Ubuntu、Linux Mint、Pop!_OSなどのDebianベースのシステムでパッケージが自動的にインストール、アップグレード、削除されないようにする方法を学びました。 Ubuntuシステムにセキュリティの抜け穴を残します。パッケージをいつ保持または保留解除するかを知っている必要があります。この機能は慎重に使用してください。頑張ってください!
関連記事:
- ArchLinuxでのアップグレードからパッケージを無視する方法
Pixabayのerfourisスタジオによる注目の画像。