Yum-実行中のパッケージのアップグレード

Yum-実行中のパッケージのアップグレード

Yum は、実行中にバイナリを安全にアップグレードできるように設計されていますか (または基盤となるシステムですか)? たとえば、MySQL 5.5 があり、yum -y install mysql56-serverMySQL 5.6 にアップグレードしようとしても、通常はエラーは発生しません。これは、アップグレードしても大丈夫だという意味ですか? 必要なライブラリやバイナリは、すでにプロセスのメモリ コンテキストにロードされているということですか?

答え1

パッケージをアップグレードすると、ディスク、しかし、現状を変えることはない記憶にすでにインストールされています。バイナリの新しいバージョンをロードするには、サービスを再起動する必要があります。

問題ないかどうかはアプリケーションによって異なります。まだロードしていないライブラリをある時点で動的にロードしようとしますか? そのライブラリはまだ存在しますか? ライブラリが何らかの形で変更され、動作しなくなるでしょうか?

もしそれが(mysql のような)重要なものであれば、パッケージを更新する前に安全のために停止しない理由は考えられません。更新は、再起動されるまで実行中のプロセスには影響しないので、サービスを停止する手間が省けるわけではありません。

答え2

一般的に、更新はファイルの新しいバージョンを削除して再インストールするという方法で行われます。標準的な UNIX/Linux では、削除されたファイルは、そのファイルの開いているインスタンスがすべて閉じられるまで必ずしも削除されません。更新中のバイナリを実行しているもの (共有ライブラリに注意してください) は影響を受けません。

そうは言っても...ただし、整合性について少しでも懸念がある場合は、アップグレード前に関連する重要な操作とプログラムを停止することをお勧めします。

本当に備えておきたいのであれば、どんな場合でもバックアップを用意しておいてください。

関連情報