小ネタです。 AnsibleのPlaybookを作成していたのですが、何度もyumで同じパッケージのインストールを繰り返していると、処理に時間はかかるしネットワーク利用量(利用料)もバカになりません。
そこで一度でも利用したパッケージはローカルにキャッシュするよう設定します。
yumのパッケージをキャッシュする
設定
/etc/yum.conf
を開き、keepcache
に1
を設定します(デフォルトは0
)。以上で設定は終わりです。あとはいつも通りyum install
するだけ。
$ sudo vi /etc/yum.conf keepcache=1
キャッシュ先のディレクトリを変更したい場合はcachedir
も編集しておきます。
$ sudo vi /etc/yum.conf cachedir=/var/cache/yum/$basearch/$releasever
ちなみにどんどんファイル容量が肥大化していくため最終的にディスクフルの原因になりかねないので、用事が終わったら設定を元に戻すか、定常的に利用する場合には後述する方法でお掃除する必要があります。
キャッシュされたファイルの確認
キャッシュされたファイルは/var/cache/yum/
の下にいます。
$ ls -lh /var/cache/yum/x86_64/7/ 合計 8.0K drwxr-xr-x. 4 root root 278 8月 30 14:00 base drwxr-xr-x. 4 root root 183 8月 30 14:00 extras drwxr-xr-x. 4 root root 137 8月 30 14:00 mysql-connectors-community drwxr-xr-x. 4 root root 137 8月 30 14:00 mysql-tools-community drwxr-xr-x. 4 root root 137 8月 30 14:00 mysql57-community -rw-r--r--. 1 root root 128 8月 30 14:00 timedhosts -rw-r--r--. 1 root root 79 8月 30 13:14 timedhosts.txt drwxr-xr-x. 4 root root 183 8月 30 14:00 updates
特定のパッケージが存在するかどうか確認する場合はfindしてやります。以下はmysql
関連のパッケージ一覧を表示します。
$ find /var/cache/yum -name 'mysql*' | grep '.rpm'
キャッシュをクリアする
yum clean
コマンドでキレイにお掃除できます。
$ sudo yum clean packages