22 November 2006

yumの高機能化?

Fedora Core 5 で yum の最初の状態は、Fedora Core 公式リポジトリにしか接続されていない。mp3を再生しようと思って、

# yum install mplayer*

「そんなパッケージ無いよ」という無言の返事が返ってくるだけだ。

それに、最近では公式サーバからのダウンロード速度も(混雑しているのだろうが)遅い。途中でエラーが出て「ミラーサーバを探してるから、待て!」とかなり待たされることもある。

国内ミラーサーバの参照
/etc/yum.repos.d/ ディレクトリのリポジトリファイルに手を加える
(ミラーサーバのリストは、公式ホームページの http://fedora.redhat.com/Download/mirrors.html に掲載されている)

/etc/yum.repos.d/japan-mirror-list ファイルを作成
http://ftp.nara.wide.ad.jp/pub/Linux/fedora/core/5/$ARCH/os http://ftp.riken.jp/Linux/fedora/core/5/$ARCH/os http://ftp.kddilabs.jp/Linux/packages/fedora/core/5/$ARCH/os http://ftp.sfc.wide.ad.jp/pub/Linux/Fedora/5/$ARCH/os http://ftp.jaist.ac.jp/pub/Linux/Fedora/core/5/$ARCH/os http://ftp.dti.ad.jp/pub/Linux/Fedora/core/5/$ARCH/os
/etc/yum.repos.d/japan-mirror-update-list ファイルを作成
http://ftp.nara.wide.ad.jp/pub/Linux/fedora/core/updates/5/$ARCH/ http://ftp.riken.jp/Linux/fedora/core/updates/5/$ARCH/ http://ftp.kddilabs.jp/Linux/packages/fedora/core/updates/5/$ARCH/ http://ftp.sfc.wide.ad.jp/pub/Linux/Fedora/updates/5/$ARCH/ http://ftp.jaist.ac.jp/pub/Linux/Fedora/core/updates/5/$ARCH/ http://ftp.dti.ad.jp/pub/Linux/Fedora/core/updates/5/$ARCH/
/etc/yum.repos.d/japan-mirror-extra-list ファイルを作成
http://ftp.nara.wide.ad.jp/pub/Linux/fedora/extras/5/$ARCH/ http://ftp.riken.jp/Linux/fedora/extras/5/$ARCH/ http://ftp.kddilabs.jp/Linux/packages/fedora/extras/5/$ARCH/ http://ftp.jaist.ac.jp/pub/Linux/Fedora/extras/5/$ARCH/

そして、リポジトリ定義ファイルの方に、このミラーリストを読み込むように手を加える

/etc/yum.repos.d/fedora-core.repo ファイルを修正
name=Fedora Core $releasever - $basearch #baseurl=http://download.fedora.redhat.com/pub/fedora/linux/core/$releasever/$basearch/os/ #mirrorlist=http://fedora.redhat.com/download/mirrors/fedora-core-$releasever mirrorlist=file:///etc/yum.repos.d/japan-mirror-list enabled=1 gpgcheck=1
/etc/yum.repos.d/fedora-updates.repo ファイルを修正
name=Fedora Core $releasever - $basearch - Updates #baseurl=http://download.fedora.redhat.com/pub/fedora/linux/core/updates/$releasever/$basearch/ #mirrorlist=http://fedora.redhat.com/download/mirrors/updates-released-fc$releasever mirrorlist=file:///etc/yum.repos.d/japan-mirror-update-list enabled=1 gpgcheck=1
/etc/yum.repos.d/fedora-extras.repo ファイルを修正
name=Fedora Extras $releasever - $basearch #baseurl=http://download.fedora.redhat.com/pub/fedora/linux/extras/$releasever/$basearch/ #mirrorlist=http://fedora.redhat.com/download/mirrors/fedora-extras-$releasever enabled=1 mirrorlist=file:///etc/yum.repos.d/japan-mirror-extra-list gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-extras gpgcheck=1

ミラーリストを有効化するプラグインを導入する

[root@localhost ~]# yum install yum-fastestmirror* Loading "installonlyn" plugin Setting up Install Process Setting up repositories core [1/3] updates [2/3] extras [3/3] Reading repository metadata in from local files Parsing package install arguments Resolving Dependencies --> Populating transaction set with selected packages. Please wait. ---> Downloading header for yum-fastestmirror to pack into transaction set. yum-fastestmirror-0.6-3.f 100% |=========================| 3.7 kB 00:00 ---> Package yum-fastestmirror.noarch 0:0.6-3.fc5 set to be updated --> Running transaction check Dependencies Resolved ============================================================================= Package Arch Version Repository Size ============================================================================= Installing: yum-fastestmirror noarch 0.6-3.fc5 extras 9.1 k Transaction Summary ============================================================================= Install 1 Package(s) Update 0 Package(s) Remove 0 Package(s) Total download size: 9.1 k Is this ok [y/N]: y Downloading Packages: (1/1): yum-fastestmirror- 100% |=========================| 9.1 kB 00:00 Running Transaction Test Finished Transaction Test Transaction Test Succeeded Running Transaction Installing: yum-fastestmirror ######################### [1/1] Installed: yum-fastestmirror.noarch 0:0.6-3.fc5 Complete! [root@localhost ~]#


非公式リポジトリへの接続

/etc/yum.repos.d/ に、非公式サーバへの接続方法を書き込んだリポジトリファイルを置くだけで読み込んでくれるようだ。

以前に freshrpms.repo をインストールしたことが有る場合は、過去のファイルを検出してインストールできない場合があるので、 rpm -i --force .... と、強制インストールオプションを付ければ無理矢理インストールできる。

[root@localhost yum.repos.d]# rpm -i http://www.fedorafaq.org/yum [root@localhost yum.repos.d]# rpm -ivh http://rpm.livna.org/livna-release-5.rpm http://rpm.livna.org/livna-release-5.rpm を取得中 警告: /var/tmp/rpm-xfer.aqs1bx: ヘッダ V3 DSA signature: NOKEY, key ID a109b1ec 準備中... ########################################### [100%] 1:livna-release ########################################### [100%] [root@localhost yum.repos.d]# ls atrpms.repo flash.repo dag.repo freshrpms.repo dries.repo japan-mirror-extra-list fedora-core.repo japan-mirror-list fedora-development.repo japan-mirror-update-list fedora-extras-development.repo jpackage.repo fedora-extras.repo kde-redhat.repo fedora-legacy.repo livna-devel.repo fedora-updates-testing.repo livna-testing.repo fedora-updates.repo livna.repo [root@localhost yum.repos.d]#

最後に、標準で読み込むべきリポジトリのセットを設定してやる。ここまでのインストールで自動的に読み込まれるパッケージは7個も有る。(Fedora Core 5 のデフォルトは3個)

/etc/yum.repos.d/○○○○.repo ファイルを修正して無効化
enabled=0

最終的には、(fedora*.repoを除いて)全てのリポジトリ・ファイルを無効化。そして、freshrpms のみを有効化しておいた。

なお、無効化したリポジトリも、yum 実行時に強制的に読み込ませることもできる(リポジトリファイル名ではなく、リポジトリの項目名を指定)

# yum --enablerepo jpackage* check-update

キャッシュのクリーンアップ

キャッシュ・ディレクトリを消去します。(前後で容量も測っています)

[root@localhost ~]# du -h /var/cache/yum 97M /var/cache/yum [root@localhost ~]# yum clean all Loading "installonlyn" plugin Loading "fastestmirror" plugin Cleaning up Everything 0 headers removed 0 packages removed 14 metadata files removed 0 cache files removed 6 cache files removed [root@localhost ~]# du -h /var/cache/yum 12M /var/cache/yum

この方法の裏を取りたい場合は、
http://www.atmarkit.co.jp/flinux/rensai/linuxtips/794uofrepo.html
http://www.a.phys.nagoya-u.ac.jp/~taka/linux/fc5note.html#yum
あたりに詳しく書かれている。

QtParted
/sbin/fdisk 派だが、GUIで直感的にパーティションの大きさを見たかったので qtparted をインストールしてみた。

Fedora Core のデフォルトのyumリポジトリでインストール可能

[root@localhost ~]# yum check-update Loading "installonlyn" plugin Setting up repositories core [1/3] updates [2/3] extras [3/3] Reading repository metadata in from local files [root@localhost ~]# yum install qtparted Loading "installonlyn" plugin Setting up Install Process Setting up repositories core [1/3] updates [2/3] extras [3/3] Reading repository metadata in from local files Parsing package install arguments Resolving Dependencies --> Populating transaction set with selected packages. Please wait. ---> Downloading header for qtparted to pack into transaction set. qtparted-0.4.5-9.fc5.i386 100% |=========================| 8.3 kB 00:00 ---> Package qtparted.i386 0:0.4.5-9.fc5 set to be updated --> Running transaction check --> Processing Dependency: xfsprogs for package: qtparted --> Processing Dependency: jfsutils for package: qtparted --> Restarting Dependency Resolution with new changes. --> Populating transaction set with selected packages. Please wait. ---> Downloading header for xfsprogs to pack into transaction set. xfsprogs-2.7.3-1.2.1.i386 100% |=========================| 10 kB 00:00 ---> Package xfsprogs.i386 0:2.7.3-1.2.1 set to be updated ---> Downloading header for jfsutils to pack into transaction set. jfsutils-1.1.10-4.i386.rp 100% |=========================| 7.1 kB 00:00 ---> Package jfsutils.i386 0:1.1.10-4 set to be updated --> Running transaction check Dependencies Resolved ============================================================================= Package Arch Version Repository Size ============================================================================= Installing: qtparted i386 0.4.5-9.fc5 extras 222 k Installing for dependencies: jfsutils i386 1.1.10-4 core 295 k xfsprogs i386 2.7.3-1.2.1 core 1.1 M Transaction Summary ============================================================================= Install 3 Package(s) Update 0 Package(s) Remove 0 Package(s) Total download size: 1.6 M Is this ok [y/N]: y Downloading Packages: (1/3): xfsprogs-2.7.3-1.2 100% |=========================| 1.1 MB 00:09 (2/3): qtparted-0.4.5-9.f 100% |=========================| 222 kB 00:03 (3/3): jfsutils-1.1.10-4. 100% |=========================| 295 kB 00:05 Running Transaction Test Finished Transaction Test Transaction Test Succeeded Running Transaction Installing: jfsutils ######################### [1/3] Installing: xfsprogs ######################### [2/3] Installing: qtparted ######################### [3/3] Installed: qtparted.i386 0:0.4.5-9.fc5 Dependency Installed: jfsutils.i386 0:1.1.10-4 xfsprogs.i386 0:2.7.3-1.2.1 Complete! [root@localhost ~]#