私が直面している問題を解決する方法を見つけようとしています。職場にオフラインのスタンドアロンサーバーがあります。インターネットに接続していないため、毎月手動でサーバーにパッチを適用する必要がありました。別のLinuxサーバー(同じオペレーティングシステム)からダウンロードしたいコンテンツパッケージをフォルダに移動します。このフォルダには、スタンドアロンサーバーのデフォルトフォルダに転送される50〜100rpmパッケージがあります。
次のコマンドを実行して、スタンドアロンサーバーを更新して毎月アップグレードします。
#cd November-os-updates
#yum clean all
#yum update *.rpm --disablerepo=*
Novell-os-updatesのすべてのrpmパッケージが正常にインストール/アップグレードされたことを確認できるスクリプトは何ですか?すべてが成功すると、すべてのパッケージが正常にインストールされたというメッセージが表示されます。何らかの理由でパッケージがアップグレードされない場合は、「(パッケージ名)がインストールされていません!」などの内容が表示されます.これは正しくパッチを適用するのに大きな助けになります。過去にはパッケージが更新されず、大きな問題が発生した場合がありました。
ベストアンサー1
~から8.2.2。パッケージのリスト~のRed Hat 導入ガイド:
yum list available
アクティブなすべてのリポジトリで利用可能なすべてのパッケージを一覧表示
また、8.2.3。パッケージ情報の表示~の同じガイドまた便利です:
たとえば、abrt パッケージに関する情報を表示するには、次のように入力します。
yum info abrt ... Name : abrt Arch : x86_64 Version : 1.0.7 Release : 5.el6 Size : 578 k Repo : installed From repo : rhel ...
November-os-updates
次の解決策が有効かどうかを教えてくださいyum list available
。
#!/bin/bash
# - [ change working directory ]
cd 'path-to'/November-os-updates
# - [ define variables ]
ALL_PKG=($(yum list available))
INSTLLD=($(ls ./*))
# - [ remove cache of enabled repos ]
yum clean all
# - [ update every currently installed package ]
yum update *.rpm --disablerepo=*
# - [ verify installed packages ]
for ((i=0; i <= "${#ALL_PKG[@]}"; i++)); do
for ((j=0; j <= "${#INSTLLD[@]}"; j++ )); do
## [1] - if installed, print [success]
if [[ "${INSTLLD[j]}" == "${ALL_PKG[i]}"'.rpm' ]]; then
echo "${INSTLLD[j]} - success"
## [2] - if not installed print [failure]
else
echo "${INSTLLD[j]} - failure"
## [3] - END
fi
done
done