share facebook facebook2 twitter menu hatena pocket slack

2013.03.06 WED

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

鈴木 宏康

WRITTEN BY鈴木 宏康

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)監修のもと掲載しています。
元記事は、こちら

鈴木 宏康

鈴木 宏康

愛知県生まれ。東京工業大学大学院修士課程修了。在学時より、ベンチャー企業でインターネットに関する業務に携わり、現在はクラウド(主にAmazon Web Services)上での開発・運用を軸とした事業の、業務の中心として活躍。