宮崎智広 この記事の監修:宮崎智広(Linux実務・教育歴20年以上・受講者3,100名超)
「yumでインストールしたRPMパッケージをもう一度使いたいのに、キャッシュが消えてしまっている」
yumはデフォルトでインストール後にダウンロードしたRPMファイルを削除します。オフライン環境への持ち出しや、同じパッケージを複数サーバーに展開したい場面では、この設定が邪魔になります。

この記事では、yumでダウンロードしたRPMファイルをキャッシュとして残す方法を、設定ファイルの変更手順から保存先ディレクトリの確認まで解説します。

【この記事でわかること】
/etc/yum.confkeepcache=1 でRPMキャッシュを保持できる
・デフォルトは keepcache=0(インストール後に自動削除)
・保存先は /var/cache/yum/ 配下のアーキテクチャ・バージョン別ディレクトリ
・設定変更後に yum install を実行すればRPMが残るようになる

「このままじゃマズい」と感じていませんか?
参考書を開く気力もない、同年代に取り残される不安——
でも安心してください。プロのエンジニアはコマンドを暗記していません。
「現場で使える型」を効率よく使いこなしているだけです。
図解60P/登録10秒/解除も3秒 / 詳細はこちら

yumがRPMキャッシュを削除する理由

yumはパッケージのインストールが完了すると、ダウンロードしたRPMファイルを自動的に削除します。これは /etc/yum.confkeepcache パラメータがデフォルトで 0(削除する)に設定されているためです。

ディスク節約の観点からは合理的な設定ですが、以下のような場面では困ります。
・オフライン環境のサーバーにも同じパッケージを適用したい
・インターネット接続が不安定な環境でインストール済みパッケージをバックアップしたい
・複数台のサーバーに同一バージョンのパッケージを一括展開したい

keepcache=1 に設定してRPMを保持する

1. /etc/yum.conf を編集する

vi または nano/etc/yum.conf を開きます。

# yum.confを編集する(root権限が必要) [root@server ~]# vi /etc/yum.conf

2. keepcache を 1 に変更する

[main] セクション内の keepcache の値を 0 から 1 に変更します。

[main] cachedir=/var/cache/yum/$basearch/$releasever # 変更前 keepcache=0 # 変更後(1に変更する) keepcache=1 debuglevel=2 logfile=/var/log/yum.log exactarch=1 obsoletes=1 gpgcheck=1 plugins=1

3. yum install を実行する

設定変更後に yum install を実行すると、ダウンロードしたRPMファイルがキャッシュディレクトリに残ります。

# パッケージをインストールする(例: httpd) [root@server ~]# yum install httpd

RPMファイルの保存先ディレクトリ

ダウンロードされたRPMファイルは以下のディレクトリ構造で保存されます。ディレクトリ名はアーキテクチャ(i386, x86_64 等)・OSバージョン・リポジトリ名によって異なります。

# 保存先ディレクトリ構造(例: i386, CentOS 6, baseリポジトリ) /var/cache/yum/i386/6/base/packages/ # x86_64環境の例 /var/cache/yum/x86_64/7/base/packages/ /var/cache/yum/x86_64/7/updates/packages/ /var/cache/yum/x86_64/7/extras/packages/

インストール後に上記ディレクトリを確認すると、RPMファイルが残っていることを確認できます。

キャッシュを手動で削除する方法

keepcache=1 の状態で使い続けると、キャッシュが積み上がってディスクを圧迫します。定期的に以下のコマンドでキャッシュをクリアしましょう。

# yumキャッシュをすべて削除する [root@server ~]# yum clean all # パッケージキャッシュのみ削除する [root@server ~]# yum clean packages

本記事のまとめ

やりたいこと 方法
RPMキャッシュを保持する /etc/yum.confkeepcache=1 に設定
RPMの保存先を確認する /var/cache/yum/ 配下のディレクトリを確認
キャッシュをすべて削除する yum clean all
パッケージキャッシュのみ削除する yum clean packages

yumの設定だけでなく、Linuxサーバーをきちんと管理するための「型」を身につけたいですか?

パッケージ管理の設定を正しく理解することは、サーバー運用の基本です。
ネットの切れ端の情報をコピペするだけでなく、現場で通用する安全なLinuxサーバー構築の「型」を体系的に身につけたい方へ、『Linuxサーバー構築入門マニュアル(図解60P)』を完全無料でプレゼントしています。

「独学の時間がもったいない」「プロから直接、現場の技術を最短で学びたい」という本気の方には、2日で実務レベルのスキルが身につく【初心者向けハンズオンセミナー】も開催しています。

無料メルマガで学習を続ける

Linuxの実践スキルをメールで毎週お届け。
登録は1分、解除もいつでも可。

登録無料・いつでも解除できます

暗記不要・1時間後にはサーバーが動く

3,100名以上が実践した「型」を無料で公開中

プロのエンジニアはコマンドを暗記していません。
「現場で使える型」を効率よく使いこなしているだけです。
その「型」を図解60Pにまとめた入門マニュアルを、完全無料でプレゼントしています。

登録10秒/合わなければ解除3秒 / 詳細はこちら

Linux無料マニュアル(図解60P) 名前とメールで30秒登録
宮崎 智広

この記事を書いた人

宮崎 智広(みやざき ともひろ)

株式会社イーネットマーキュリー代表。現役のLinuxサーバー管理者として15年以上の実務経験を持ち、これまでに累計3,100名以上のエンジニアを指導してきたLinux教育のプロフェッショナル。「現場で本当に使える技術」を体系的に伝えることをモットーに、実践型のLinuxセミナーの開催や無料マニュアルの配布を通じてLinux人材の育成に取り組んでいる。

趣味は、キャンプにカメラ、トラウト釣り。好きな食べ物は、ラーメンにお酒。休肝日が作れない、酒量を減らせないのが悩み。最近、ドラマ「フライトエンジェル」を観て涙腺が崩壊しました。