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 ~]#