CentOS

GPG公開鍵のインポート

 GPG公開鍵は、初回起動時に自動でインポートされるらしいのだが、OS構築時にはネットワークにつないでいないケースも多くあり、そういう理由なのか、後になってyumでパッケージをインストールしようとすると、GPG公開鍵がないと言われ、エラーで終了してしまうことがあった。

 なので、取り込み方。

rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5

 これだけ。簡単ですね。

yumでproxyを使う

/etc/yum.confに下記を追加

proxy=http://proxy.example.com:8080/

認証情報が必要な場合は、さらに次の行を追加する。

proxy_username=username
proxy_password=password

コマンド一覧

コマンド概要
check-updateアップデート可能なパッケージの一覧を表示
cleanダウンロードしたパッケージと古いヘッダを削除する。clean allと同じ
clean oldheaders古いヘッダを削除
clean packagesダウンロードしたパッケージを削除
info利用可能なパッケージの情報を表示
info パッケージ名指定したパッケージの情報を表示
install パッケージ名指定したパッケージをインストール
list利用可能なパッケージの一覧を表示
list installedインストール済みのパッケージ一覧を表示
list updatesアップデート可能なパッケージの一覧を表示
provides パッケージ名パッケージに含まれるファイルの一覧を表示
remove パッケージ名指定したパッケージをアンインストールする。
指定したパッケージと依存関係があるパッケージは、削除するかどうか
確認を求める
search キーワードキーワードでパッケージを検索する。検索の対象は、
RPMファイルのName、Packager、Dummary、Descriptionの各フィールド
updateアップデート可能な全パッケージをアップデート
update パッケージ名指定したパッケージをアップデート

他のリポジトリを使う

 公式リポジトリのパッケージはたいてい古い。

 下の URL に、非公式リポジトリを使う方法がある。

  yumで、より新しいパッケージをインストールする方法

 が、それでも古い。

yum で update 他をするとエラー

 こんなエラーがでて、処理が進まない。

Metadata file does not match checksum Trying other mirror.

 fastestmirror を使っていると出るそうな(ここは確認してないので裏付けなし)

yum makecache --disableplugin=fastestmirror

 としてキャッシュを再構築すると治る。

# yum makecache --disableplugin=fastestmirror
base                 | 2.1 kB     00:00
other.sqlite.bz2     | 7.9 MB     01:05
comps.xml            | 920 kB     00:04
updates              | 1.9 kB     00:00
filelists.sqlite.bz2 | 1.5 MB     00:02
other.sqlite.bz2     | 4.7 MB     00:18
addons               |  951 B     00:00
other.xml.gz         |  189 B     00:00
extras               | 1.1 kB     00:00
filelists.xml.gz     | 151 kB     00:00
other.xml.gz         | 593 kB     00:00
yumgroups.xml        | 9.7 kB     00:00
extras                              325/325
extras                              325/325
Metadata Cache Created
#

OS は CentOS 5.4/64bit版。 実行は仮想マシンで、エラーが起こったマシンは3つ作ったクローンのうちのひとつ。他の2つのクローンとの違いは IPアドレスのみ。

クローン前にやっておこうと思っていた yum update を忘れてて、クローン直後に IP だけ変えて yum を実行したところ、この1台だけエラーが起こった。

fastestmirror プラグインを使っていると発生することがあるらしい。 状況からすると、必ず発生するものでもないようだ。

yum で HTTP 404 エラー

仮想マシンを整理してて、久しぶりにある CentOS 5.3 マシンを起動。 テスト用途で使いたかったので、yum を動かすとエラーが

http://centosk.centos.org/centos/5/contrib/i386/repodata/repomd.xml: HTTP
Error 404: Not Found Trying other mirror.

ホスト環境が変わったから、名前解決に失敗してるのかもと思って、/etc/resolve.conf を調べて、host コマンドで解決できることも調べて、原因はそこではないと切り分ける。

yum はキャッシュ関係で正常に動かないことあるのを思い出し、makecache を試してみたが、似たようなエラー

[root@spare init.d]# yum makecache --disableplugin=fastestmirror
http://ftp.nara.wide.ad.jp/pub/Linux/centos/5.3/os/i386/repodata/repomd.xml: 
[Errno 14] HTTP Error 404: Not Found
Trying other mirror.
http://ftp.yz.yamagata-u.ac.jp/pub/linux/centos/5.3/os/i386/repodata/repomd.xml:
[Errno 14] HTTP Error 404: Not Found
Trying other mirror.
http://www.ftp.ne.jp/Linux/packages/CentOS/5.3/os/i386/repodata/repomd.xml: 
[Errno 14] HTTP Error 404: Not Found
Trying other mirror.

 原因は、/etc/yum.repos.d/CentOS-Base.repo の mirrorlist。 baseurl の行が全部コメントアウトされているので、これを解除(行頭#を削除)すれば、正常に動いた。

baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/

yum 自体不慣れ(何年か使ってると思うけどね)とはいえ、こいつの切り分けって、いつも分かりにくい。

download.fedora.redhat.com が引けない

epel を使おうとして、

rpm -Uvh http://download.fedora.redhat.com/pub/epel/5/i386/epel-release-5-4.noarch.rpm

とすると、名前解決ができなくてエラーになる。

解決は、download.fedora.redhat.com を dl.fedoraproject.org にする、ということらしい。

パッケージファイルのダウンロードだけする

オフラインサーバにパッケージを入れたいときなどに便利な方法。

yum にプラグインを追加する。

yum install yum-plugin-downloadonly

んでもって、

yum install --downloadonly <pkg名>

とすれば良い。install コマンドにダウンロードのみオプションってのはちょっと違和感あるけどな。

ただしこのコマンド、操作しているサーバ上にすでにインストールされているパッケージは落としてこないので要注意。 なんで yum fetch とかないんだろう。不便。 ports にはあるのに。

と思ってたら、yum-utils と入れたらいいことが分かった。

yum install yum-utils

んで、

yumdownloader <pkg名>

いいのあるやん。


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS