2011年11月 7日

[vine-users:081565]apt-get update で変更のあったパッケージを知りたい場合

あらいです。

 非常に今更感に満ちた質問で申し訳ありません。

 apt-get update を実行して、パッケージに関連する情報に変更があった場合、
何がどう変わったかを知ることはできるのでしょうか。
 例えば、hogeというパッケージのバージョンが上がったとか、新規にgesoと
いうパッケージが追加されたとか。


 ぐぐったりして調べてもよくわからなかったので、結局私は、添付したよう
なシェルスクリプトを使用しています。
 性能とかあまり考慮していませんが、一応やりたいことは詰め込んでありま
す。

 しかし、何か車輪の再発明っぽい気がするので、既存のツールでできるのな
らば教えて頂けたらと思います。
 よろしくお願いします。


----Next_Part(Mon_Nov__7_22_18_41_2011_146)--
Content-Type: Text/Plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
Content-Disposition: inline; filename="AptGetUpdate.sh"

#!/bin/bash

cmd="${0##*/}"
function usage() {
echo "usage: ${cmd} [-n][-h]"
}

function listpkgs () {
pkg=
apt-cache dump | while read tag info; do
if [ "${tag}" = 'Package:' ]; then
pkg="${info}"
elif [ "${tag}" = 'Version:' ]; then
echo "${pkg} ${info}"
fi
done | sort
return "${PIPESTATUS[0]}"
}

noupdate=
while getopts 'nh' c
do
case "$c" in
n) noupdate='yes' ;;
h) usage
exit ;;
*) usage 1>&2
exit 1 ;;
esac
done
shift $(($OPTIND - 1))

listdir='/var/run/apt'
listname="${listdir}/cachelist"
last="${listname}.last"
prev="${listname}.prev"
new="${listname}._new"

mkdir -p "${listdir}"
if [ $? -ne 0 ]; then exit 1; fi
nolast=
if [ ! -e "${last}" ]; then
echo 'No last cache info; now creating...'
listpkgs > "${last}"
if [ $? -ne 0 ]; then
echo 'Failed.'
nolast='yes'
else
echo 'Done.'
fi
fi

if [ "${noupdate}" ]; then
if [ ! -e "${prev}" ]; then echo 'No previous info.' 1>&2; exit 1; fi
if [ "${nolast}" ]; then
listpkgs | diff "${prev}" -
else
diff "${prev}" "${last}"
fi
exit
fi

apt-get update
if [ $? -ne 0 ]; then exit 1; fi

listpkgs > "${new}"
diff "${last}" "${new}"
r=$?
if [ "${r}" -ne 0 ]; then
if [ $? -ne 1 ]; then echo 'Diff error.' 1>&2; exit 1; fi
save="${listname}.$(date -r "${last}" '+%Y%m%d_%H%M')"
mv "${last}" "${save}"
mv "${new}" "${last}"
rm -f "${prev}"
ln -s "${save}" "${prev}"
fi
exit "${r}"

----Next_Part(Mon_Nov__7_22_18_41_2011_146)--
MIME-Version: 1.0
Content-Type: text/plain; charset="iso-2022-jp"
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________
vine-users mailing list
vine-users@xxxxx
http://listserv.linux.or.jp/mailman/listinfo/vine-users

----Next_Part(Mon_Nov__7_22_18_41_2011_146)----


投稿者 xml-rpc : 2011年11月 7日 22:18
役に立ちました?:
過去のフィードバック 平均:(0) 総合:(0) 投票回数:(0)
本記事へのTrackback: http://hoop.euqset.org/blog/mt-tb2006.cgi/107935
トラックバック
コメント
コメントする




画像の中に見える文字を入力してください。