2013年3月1日金曜日

最新バージョン以外のGemを削除する(Fluentd)

スズキです。

よく、下記でFluentdで利用しているGemのアップデートをしているのですが、
/usr/lib64/fluent/ruby/bin/gem update
よく見たら、下記のように古いバージョンが、ずっと残っていました。
# ls -1 /usr/lib64/fluent/ruby/lib/ruby/gems/1.9.1/gems/
aws-sdk-1.7.1
aws-sdk-1.8.1.1
aws-sdk-1.8.2
aws-sdk-1.8.3.1
...
当然、古いバージョンは必要無い(はず?)なので、最新のバージョンのみ残して、
他は削除したいところです。

というのを下記で実現できます。
# yes | /usr/lib64/fluent/ruby/bin/gem cleanup
...
Attempting to uninstall aws-sdk-1.7.1
Successfully uninstalled aws-sdk-1.7.1
Attempting to uninstall aws-sdk-1.8.1.1
Successfully uninstalled aws-sdk-1.8.1.1
Attempting to uninstall aws-sdk-1.8.2
Successfully uninstalled aws-sdk-1.8.2
...

実行すると、次のように最新のバージョンのみ残ります。
# ls -1 /usr/lib64/fluent/ruby/lib/ruby/gems/1.9.1/gems/
aws-sdk-1.8.3.1
...

ということで、アップデートスクリプトも下記のように修正しました。

suz-lab-centos-ami / bin / update-fluent
#!/bin/sh
set -e
trap 'echo "NG: $?"' ERR
service td-agent stop
/usr/lib64/fluent/ruby/bin/gem update 2>&1 | logger -s -t ${0##*/}
yes | /usr/lib64/fluent/ruby/bin/gem cleanup 2>&1 | logger -s -t ${0##*/}
service td-agent start
exit 0

ちょっとスッキリした...
--------
http://www.suz-lab.com

0 コメント: