GNU/Linux >> Linux の 問題 >  >> Ubuntu

Debian、Ubuntuでパッケージのアップグレードを保留または防止する

ご存知のとおり、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つのサブコマンドを提供します。

  1. 保留
  2. 保留
  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スタジオによる注目の画像。


Ubuntu
  1. Ubuntu13.10からUbuntu14.04にアップグレードする

  2. Ubuntu13.04からUbuntu13.10にアップグレードします

  3. Ubuntu15.04からUbuntu15.10にアップグレードする方法

  1. Ubuntuからソフトウェアパッケージをアンインストールまたは削除する方法

  2. Ubuntu16.04からUbuntu18.04にアップグレードする方法

  3. Ubuntu、Debian、または Linux Mint でパッケージが更新されないようにする方法 [APT]

  1. DebianLinuxにUbuntuPPAからパッケージをインストールする

  2. Ubuntu18.04LTSからUbuntu18.10にアップグレードする方法

  3. 19.04からUbuntu19.10にアップグレードする方法(ガイド)