以下を呼び出して、インストールされているyum info
バージョンをキャプチャできます。ambari-metrics-monitor
yum info ambari-metrics-monitor| grep -i version |head -1
Version : 2.6.1.0
出力でバージョンを確認するには、2.6.1.0
次のようにします。
yum info ambari-metrics-monitor| grep -i version |head -1 | grep "2.6.1.0"
私の考えでは、これはバージョンが指定されたワゴンと一致する正しい方法ではないということです。
それでは、出力でバージョンの浮動小数点を一致させる正しい方法は何ですか(私の例に基づいています)?
答え1
package=ambari-metrics-monitor
required_version=2.6.1.0
current_version="$( yum info $package | awk -F: '/Version/ {print $2}' )"
if [[ "$current_version" == "$required_version" ]]; then
echo "Good to go"
else
echo "Version mismatch - version $current_version is installed for $package"
fi
答え2
シングルawk
注文する:
yum info ambari-metrics-monitor \
| awk -v ver="2.6.1.0" '$1 ~ /[vV]ersion$/ && $3 == ver{ f=1; exit }
END{ printf "Version %smatched\n", (f? "" : "not ") }'
出力はVersion matched
次のいずれかです。Version not matched
答え3
パッケージがすでにインストールされている場合は、パラメータを使用してバージョン番号のみを--queryformat
印刷し、パラメータを使用して便利に正確に一致させることができます。rpm
-F
-x
grep
rpm -q --queryformat %{VERSION} ambari-metrics-monitor \
| grep -qFx 2.6.10 && echo "version matched"
答え4
単にawk
次のようにすることができます:
yum info ambari-metrics-monitor \
| awk -F: '/Version/{ if ($2 == " 2.6.1.0") {print "yes"} else exit 1}'
バージョン番号の前にスペースがあるため、yum
一致を取得するには確認文字列に追加する必要があります。
一致する場合は印刷して0を終了しyes
、一致しない場合は1を終了します。