yum という Fedora Core などのいわゆる RedHat 系のディストリビューションに付属するパッケージのアップデートツールに付属している yum-utils のコマンドについてしっかりと理解していなかったので、まとめておく。 もし、インストールされていない場合は、次のコマンドでインストールすることができる。
# yum install yum-utils
reposync
- リポジトリの同期をとるためのコマンド
- ローカルマシンの設定されている yum の情報をもとにリポジトリにあって、ローカルにないパッケージをダウンロードする
- yum リポジトリ管理専用ユーザで実行すると便利
使い方: reposync -r updates -n -t /var/cache/yum
オプション:
-r, –repoid: リポジトリの ID(※1)
-t, –tempcache: yum-cache にアクセスするときテンポラリディレクトリを使う
-p, –download_path: ダウンロードしたパッケージの保存先
-u, –urls: ダウンロード対象のパッケージの URL リストを表示する
-n, –newest-only: リポジトリごとに新しいパッケージだけダウンロードする
-q, –quiet: 出力メッセージを最小限にする
repomanage
- リポジトリにある特定のパッケージ情報を表示する
- パッケージの MD5 ダイジェストが違っている情報も表示する
- 応用例として、rm と組み合わせることで古いパッケージだけを削除することができる(例: repomanage -o [リポジトリへのパス] | xargs rm -fr)
使い方: repomanage -o [リポジトリへのパス]
オプション:
-o, –old: 古いパッケージ一覧を表示する
-n, –new: 新しいパッケージ一覧を表示する
-s, –space: 改行をしないで、スペース区切りで表示する
-k, –keep: 新しいパッケージを既存しておく数(デフォルトは、1)
-c, –nocheck: 署名やダイジェストでパッケージの確認を行わない
-h, –help: ヘルプの表示
createrepo
- yum リポジトリを生成するコマンド。yum-utils には含まれていない別パッケージでインストールする
- 指定されたパスにあるパッケージを、全部チェックして yum リポジトリに仕上げてくれる
- 単独のパッケージとして存在している、次のコマンドでインストールすることができる
# yum install createrepo
使い方:
オプション:
-u, –baseurl: yum リポジトリに関するファイルがある URL
-q, –quiet: 出力メッセージを表示しない
-o, –outputdir: 出力先の付属的なディレクトリ-x: ファイルから除外する情報、複数設定可能
-v, –verbose: デバッグモードを有効にする
-g, –groupfile: パッケージのグループ情報ファイルを指定する、グループ情報ファイルを指定するとグループ名でパッケージをインストールすることができる(例えば、ftp://ftp.kddilabs.jp/Linux/packages/fedora/core/5/i386/os/repodata/comps.xml のようなファイル)
-U, –update-info-location: メタ情報を更新する先の URL
-c, –cachedir: チェックサムキャッシュに使うディレクトリを指定する
-h, –help: ヘルプ
-V, –version: バージョン情報を表示する
-p, –pretty: Pretty フォーマットで XML ファイルを出力する
※1: repoid は、ディストリビューションごとに異なる、おそらく /etc/yum.repos.d で有効になっているものに対応しているはずなので、普段使っているディストリビューションで調べてみた
Fedora Core 5 の場合 … core, extras, updates CentOS 5.1 の場合 … base, epel, rpmforge
ちなみに、Fedora Core 5 を reposync したときのパッケージの総ファイル容量は、約 18 GBとかなり大きいのでハードディスクの空き容量には注意する。