10/06/09 15:20:18 nA3E6ZI9
>>258
1~3 に書いてあることをシェルスクリプトにしてみるとこんな感じかな。
# ./hoge.sh aaa.rpm bbb.rpm ccc.rpm ...
依存関係の解決をやってないから、失敗したものは
to-install.txt と error.txt を見てインストールするってことになる。
# ローカルリポジトリ作って apt とか yum とかに任せたほうが楽だと思う。
#!/bin/bash
for PKGFILE in $*
do
PKGNAME=`rpm -qp --qf "%{NAME}\n" "${PKGFILE}"`
NEW_VER=`rpm -qp --qf "%{VERSION}-%{RELEASE}\n" "${PKGFILE}"`
if (rpm -q "${PKGNAME}") ; then
CURRENT_VER=`rpm -q --qf "%{VERSION}-%{RELEASE}\n" "${PKGNAME}"`
if [ `rpmver -v "${CURRENT_VER}" "${NEW_VER}" | grep -c " lesser than "` -gt 0 ] ; then
rpm -Fvh "${PKGFILE}" 2>>error.txt
fi
else
echo "${PKGFILE}" >>to-install.txt.tmp
echo "${PKGFILE}" >>error.txt
rpm -ivh "${PKGFILE}" 2>>error.txt
fi
done
sort -r to-install.txt.tmp > to-install.txt