Linux でのソフトウェアパッケージのバージョン管理 - Red Hat Enterprise Linux

Linux でのソフトウェアパッケージのバージョン管理 - Red Hat Enterprise Linux

私たちは、サンドボックス/開発、品質、プロダクションという一般的な3階層環境にRHEL - Red Hat Enterprise Linux Server(VM)を持っています。 2018年初めにサーバーを初めて構築する際に、最初からSandbox / Dev VMを作成し、すべてのパッケージ(yum-update)を更新してから、このVMからテンプレートを作成しました。同じテンプレートを使用して品質と本番VMを作成し、ホスト名、IPアドレスなどを変更しました。したがって、すべての仮想マシンは同じです。

最近、Sandbox / DevでOSをRhel 7.4から7.5にアップグレードし、(yum update)を実行してパッケージを更新しました。エンドユーザーはシステムで実行されているアプリケーションをテストしています。

数週間後、品質サーバーでOSアップグレードを実行し、来月に本番サーバーでOSアップグレードを実行します。今私の質問は、品質と本番サーバーで同じバージョンのパッケージを維持する方法です。

たとえば、libstdc++-4.8.5-28.el7_5.1.x86_64はい4.8.5-28yum-updateを実行した後。新しいバージョンがあっても、同じ品質と本番バージョンをどのように取得できますか(4.8.6があると仮定)。システムにインストールされているすべてのパッケージに関するこの情報をどのように取得できますか?つまり、3つのサーバーのすべてのパッケージが同じバージョンであることを願っています。

助けと提案をお願いします。

挨拶、

西ドイツ

答え1

これを回避するには、デフォルトのREPOを定義した後、yumアップデートのアップデートから関連パッケージを除外できます。

まず、REPOディレクトリを入力します。

vi /etc/yum.repos.d/

次に、新しいREPOを作成します。

vi local.repo in
[Local Repo Name]
name=Local Repo
baseurl=http:// or file://rpm.path
enabled=1
gpgcheck=0

キャッシュ操作

yum clean all #Delete the entire repo cache.
yum makecache #Make the new repo cache

これまで、我々は希望のバージョンに更新するために必要な定義を作成しました。 Redhatがそのパッケージを更新するとき、まずここで定義を見てみましょう。ただし、ここの更新パッケージは、公開REPOで利用可能な場合は引き続き更新されます。これが発生しないようにするには、次の手順を実行します。

vi /etc/yum.conf in
exclude=packagename* #libstdc* etc...

これから、パッケージは希望する最新バージョンにとどまります。カーネル更新後の安定性の問題を回避するために、カーネル更新中にこのアプリケーションを実行することもできます。

関連情報