
apt dist-upgrade
Ubuntu/Debian ディストリビューションのコマンドで PostgreSQL のバージョンを更新できますか?
PostgreSQL 9.6 を使用する Ubuntu 18.04 LTS サーバーがいくつかあり、unattended-upgrades
実行によって PostgreSQL が更新されないようにしたいです。
私が間違っていなければ、これを行うには別の postgresql バージョンを明示的にインストールする必要があります。そうでない場合は、そのパッケージ更新をブラックリストに登録する必要がありますか?
ありがとう!
答え1
無人アップグレードは特定のリポジトリからのみ機能します。
どのリポジトリか見てみましょう。/etc/apt/apt.conf.d/50unattended-upgradesの設定は次のとおりです。
Unattended-Upgrade::Allowed-Origins {
"${distro_id}:${distro_codename}";
"${distro_id}:${distro_codename}-security";
// Extended Security Maintenance; doesn't necessarily exist for
// every release and this system may not have it installed, but if
// available, the policy for updates is such that unattended-upgrades
// should also install from here by default.
"${distro_id}ESM:${distro_codename}";
// "${distro_id}:${distro_codename}-updates";
// "${distro_id}:${distro_codename}-proposed";
// "${distro_id}:${distro_codename}-backports";
};
これを解釈してみましょう。これは、無人アップグレードが Ubuntu リポジトリの -security ポケット内のセキュリティ更新のみを検索することを意味します。設定を変更できますが、質問から、そのことを知らなかったことがわかります (そのため、まだこのように見えます)。
これは、Ubuntu リポジトリを使用する大きな利点の 1 つです。Ubuntu セキュリティ チームからのセキュリティ更新です。
Allowed-Origins リストにない別の場所から Postgresql をインストールしたため (パッケージ名とバージョンが異なるため)、無人アップグレードではセキュリティ更新も新しいバージョンも適用されません。Ubuntu セキュリティ チームもパッケージにパッチを適用しません。自分で対処する必要があります。
複数のソースが同じパッケージを提供する場合名前(コンテンツの内容に関係なく)、無人アップグレードでは、Allowed-Origins にあるソースからのアップグレードが実際にインストールされる可能性があります。これは実際に問題を引き起こす可能性があるため、サードパーティのソースは最小限に抑えてください。
一般的に、ほとんどの -security ポケット アップグレードでは、より高いバージョンにアップグレードするのではなく (ワークフローが中断される可能性があります)、現在利用可能なバージョンにパッチを適用します。いくつかの例外と特殊なケースがあります。