さまざまな依存関係にもかかわらず、特定のパッケージを自動的にアップグレード

さまざまな依存関係にもかかわらず、特定のパッケージを自動的にアップグレード

基本的に100台程度のワークステーションを定期的にアップグレードしたいと思います。自動的にアップグレードするには特定のパッケージだけが必要ですが(残りは必要に応じて手動で実行できます)、マシンは標準の更新サイクルに従わず、すべてのバージョンと依存関係が異なるため、ただ行うことはできませんapt-get upgrade package-x package-y package-z

最初はapt-get -y dist-upgradecronジョブが機能すると思いましたが、他の特定のパッケージ(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 を使用して必要なパッケージを選択し、メニューオプションから選択します。 ロックされたバージョンそして保存

関連情報