基本的に100台程度のワークステーションを定期的にアップグレードしたいと思います。自動的にアップグレードするには特定のパッケージだけが必要ですが(残りは必要に応じて手動で実行できます)、マシンは標準の更新サイクルに従わず、すべてのバージョンと依存関係が異なるため、ただ行うことはできませんapt-get upgrade package-x package-y package-z
。
最初はapt-get -y dist-upgrade
cronジョブが機能すると思いましたが、他の特定のパッケージ(systemdなど)の破損したバージョンにアップグレードすることが心配です。を使用してアップグレードするのを防ぐことができますが、保持フラグが上書きされるとapt-mark hold package-a
聞きました。dist-upgrade
他の特定のパッケージをアップグレードせずに依存関係の異なる複数のシステムで特定のパッケージをアップグレードする最良の方法は何ですか?
答え1
dist-upgrade
カバー力が合わないと思いますが…
とにかく、興味のあるパッケージのみをアップグレードするには、そのパッケージをインストールしてください。
apt-get install package-a package-b ...
これにより、指定されたパッケージが必要な依存関係とともに、設定(通常はビルドの最新バージョン)に従ってリリース候補にアップグレードされます。コマンド名にもかかわらず、インストールとアップグレードの両方に適用されます。
安定したリリースを追跡する場合は、アップデートを無視する心配がないため、すべてをアップグレードする必要があります。unattended-upgrades
これを処理するように設計されています(デフォルトでは安全なアップグレードのためのものですが、安定したアップデートを自動的に受け取るように設定できます)。
答え2
これapt-mark hold
により、必須パッケージはアップグレードされません。
特定のパッケージがアップグレードされるのを防ぐ方法はいくつかあります(例2)。
1)パッケージをパッケージに追加し、ピンの/etc/apt/preferences
優先順位を設定します<0
。
Package: package_name_here
Pin: release o=Debian
Pin-Priority: -1
2) Synaptic Package Manager を使用して必要なパッケージを選択し、メニューオプションから選択します。 ロックされたバージョンそして保存