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:
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

こちらの記事はなかの人(suz-lab)監修のもと掲載しています。
元記事は、こちら