Fedora Core5 から Core6 へ

2006.11.01

前書き

Fedora Core 5 を、Core6へアップグレードしました。

スラッシュドットジャパンにアッ プグレード方法についての書き込みがあったので、
自己責任で試してみた。パッケージ2つをインストールして、yum でアップグレードすればよいらしい

以下、自己責任で実行。

パッケージのダウンロードとインストール


$ wget ftp://ftp.riken.jp/Linux/fedora/core/6/i386/os/Fedora/RPMS/fedora-release-6-4.noarch.rpm

$ wget ftp://ftp.riken.jp/Linux/fedora/core/6/i386/os/Fedora/RPMS/fedora-release-notes-6-3.noarch.rpm

$ su

# rpm -Uvh fedora-release-6-4.noarch.rpm fedora-release-notes-6-3.noarch.rpm
準備中...                    ########################################### [100%]
   1:fedora-release-notes   ########################################### [ 50%]
   2:fedora-release         警告: /etc/yum.repos.d/fedora-core.repo は /etc/yum.repos.d/fedora-core.repo.rpmnew として作成されました。
警告: /etc/yum.repos.d/fedora-extras.repo は /etc/yum.repos.d/fedora-extras.repo.rpmnew として作成されました。
警告: /etc/yum.repos.d/fedora-updates-testing.repo は /etc/yum.repos.d/fedora-updates-testing.repo.rpmnew として作成されました。
警告: /etc/yum.repos.d/fedora-updates.repo は /etc/yum.repos.d/fedora-updates.repo.rpmnew として作成されました。
########################################### [100%]



警告が出たけど無事完了した模様。

yumでのアップグレードを試みる


# yum clean all
Loading "installonlyn" plugin
Cleaning up Everything
0 headers removed
0 packages removed
12 metadata files removed
0 cache files removed
4 cache files removed

# yum upgrade
Loading "installonlyn" plugin
Setting up Upgrade Process
Setting up repositories
core                                                                 [1/4]
http://ftp.riken.jp/Linux/fedora/core/6/i386/os/repodata/repomd.xml: [Errno 14] HTTP Error 404: Date: Thu, 26 Oct 2006 01:16:48 GMT
Server: Apache
Content-Length: 245
Content-Type: text/html; charset=iso-8859-1
Trying other mirror.
Cannot open/read repomd.xml file for repository: core
failure: repodata/repomd.xml from core: [Errno 256] No more mirrors to try.
Error: failure: repodata/repomd.xml from core: [Errno 256] No more mirrors to try.
repomd.xmlというファイルがリポジトリにないため、エラーとなったらしい。
yum自体をアップデートしないといけないのかもしれない。

yum のアップデートを試みる(1回目)

yumと名がつくファイルがリポジトリに3つあったので、これらをダウンロードしてアップデートしてみる。

yum-3.0-6.noarch.rpm
yum-metadata-parser-1.0-8.fc6.i386.rpm
yum-updatesd-3.0-6.noarch.rpm
$ wget http://ftp.kddlabs.co.jp/pub/Linux/packages/fedora/core/6/i386/os/Fedora/RPMS/yum-3.0-6.noarch.rpm
$ wget http://ftp.kddlabs.co.jp/pub/Linux/packages/fedora/core/6/i386/os/Fedora/RPMS/yum-metadata-parser-1.0-8.fc6.i386.rpm
$ wget http://ftp.kddlabs.co.jp/pub/Linux/packages/fedora/core/6/i386/os/Fedora/RPMS/yum-updatesd-3.0-6.noarch.rpm

# rpm -Uvh yum-3.0-6.noarch.rpm yum-updatesd-3.0-6.noarch.rpm yum-metadata-parser-1.0-8.fc6.i386.rpm
エラー: 依存性の欠如:
        pirut < 1.1.4 は yum-3.0-6.noarch と競合します。
        pygobject2 は yum-updatesd-3.0-6.noarch に必要とされています
        rtld(GNU_HASH) は yum-metadata-parser-1.0-8.fc6.i386 に必要とされています
エラーになってしまった。
ちなみに、rtld(GNU_HASH)は、glibc-2.5-3に含まれているらしいので、それもアップデートする必要があるようだ。

[ご参考]
http://rpmfind.net/linux/rpm2html/search.php?query=rtld

yum の依存関係を解決する

結局、依存関係なくyumをアップデートするためには、これらのパッケージのアップデートが必要だった。
ファイルをすべてダウンロードして、rpmで一気にアップグレードした。
glibc-2.5-3.i386.rpm
glibc-common-2.5-3.i386.rpm
glibc-devel-2.5-3.i386.rpm
glibc-headers-2.5-3.i386.rpm

glib2-2.12.3-2.fc6.i386.rpm 
glib2-devel-2.12.3-2.fc6.i386.rpm

pygobject2-2.12.1-1.fc6.i386.rpm
pygobject2-devel-2.12.1-1.fc6.i386.rpm
pygtk2-2.10.1-4.fc6.i386.rpm
pygtk2-devel-2.10.1-4.fc6.i386.rpm
pygtk2-libglade-2.10.1-4.fc6.i386.rpm

libpng-1.2.10-7.i386.rpm
libpng-devel-1.2.10-7.i386.rpm

cairo-1.2.4-1.fc6.i386.rpm
cairo-devel-1.2.4-1.fc6.i386.rpm
gtk2-2.10.4-4.fc6.i386.rpm
gtk2-devel-2.10.4-4.fc6.i386.rpm
gtk2-engines-2.8.0-1.fc6.i386.rpm

pango-1.14.4-3.fc6.i386.rpm
pango-devel-1.14.4-3.fc6.i386.rpm

pycairo-1.2.0-1.1.i386.rpm
pycairo-devel-1.2.0-1.1.i386.rpm

fedora-logos-6.0.6-1.fc6.noarch.rpm
redhat-artwork-5.0.8-1.fc6.i386.rpm


yum のアップデートを試みる(2回目)

再度yum のアップデートを試みる。
# rpm -Uvh yum-3.0-6.noarch.rpm yum-metadata-parser-1.0-8.fc6.i386.rpm yum-updatesd-3.0-6.noarch.rpm
エラー: 依存性の欠如:
        pirut < 1.1.4 は yum-3.0-6.noarch と競合します。

残念。また失敗。

yum と競合するパッケージを削除する


# rpm -e pirut
エラー: 依存性の欠如:
        pirut は (インストール済み)anaconda-11.0.5-1.i386 に必要とされています
# rpm -e pirut anaconda
エラー: 依存性の欠如:
        anaconda = 11.0.5-1 は (インストール済み)anaconda-runtime-11.0.5-1.i386 に必要とされています
# rpm -e pirut anaconda anaconda-runtime

結局、3つのアプリケーションをアンインストールした。
pirut
anaconda
anaconda-runtime

yum のアップデートを試みる(3回目)


# rpm -Uvh yum-3.0-6.noarch.rpm yum-metadata-parser-1.0-8.fc6.i386.rpm yum-updatesd-3.0-6.noarch.rpm
準備中...                    ########################################### [100%]
   1:yum-metadata-parser    ########################################### [ 33%]
   2:yum                    ########################################### [ 67%]
   3:yum-updatesd           ########################################### [100%]

やっと成功。

削除してしまったパッケージをyumを使って、インストール


# yum install anaconda

Dependencies Resolved
=============================================================================
 Package                 Arch       Version          Repository        Size
=============================================================================
Installing:
 anaconda                i386       11.1.1.3-1       core              4.6 M
Installing for dependencies:
 gnome-python2-gconf     i386       2.16.0-1.fc6     core               32 k
 kpartx                  i386       0.4.7-5          core              380 k
 libbdevid-python        i386       5.1.19-1         core               52 k
 libdhcp                 i386       1.12-1           core              385 k
 libdhcp4client          i386       12:3.0.4-21.fc6  core              231 k
 libdhcp6client          i386       0.10-32.fc6      core               78 k
 libnl                   i386       1.0-0.10.pre5.4  core               95 k
 libnotify               i386       0.4.2-4.fc6      core               37 k
 libvolume_id            i386       095-14           core               36 k
 libwnck                 i386       2.16.0-4.fc6     core              185 k
 nash                    i386       5.1.19-1         core              1.1 M
 notification-daemon     i386       0.3.5-6          core               46 k
 notify-python           i386       0.1.0-3.fc6      core               12 k
 pirut                   noarch     1.2.5-1          core              235 k
 rhpxl                   i386       0.39-2           core              101 k
Updating for dependencies:
 avahi                   i386       0.6.11-6.fc6     core              228 k
 avahi-glib              i386       0.6.11-6.fc6     core               13 k
 bind                    i386       30:9.3.3-4.fc6   updates-released  950 k
 bind-devel              i386       30:9.3.3-4.fc6   updates-released  2.5 M
 bind-libs               i386       30:9.3.3-4.fc6   updates-released  834 k
 bind-utils              i386       30:9.3.3-4.fc6   updates-released  161 k
 caching-nameserver      i386       30:9.3.3-4.fc6   updates-released   54 k
 dbus                    i386       0.93-3.fc6       core              650 k
 dbus-glib               i386       0.70-4           core              153 k
 dbus-python             i386       0.70-6           core              161 k
 dmraid                  i386       1.0.0.rc13-1.fc6  core              554 k
 gnome-mount             i386       0.5-2.fc6        core               69 k
 gnome-python2           i386       2.16.0-1.fc6     core              126 k
 gnome-python2-bonobo    i386       2.16.0-1.fc6     core               64 k
 gnome-python2-canvas    i386       2.16.0-1.fc6     core               24 k
 gnome-python2-gnomevfs  i386       2.16.0-1.fc6     core               65 k
 gnome-vfs2              i386       2.16.0-4.fc6     core              1.2 M
 gphoto2                 i386       2.2.0-2.1        core              1.4 M
 gphoto2-devel           i386       2.2.0-2.1        core              216 k
 hal                     i386       0.5.8.1-4.fc6    core              366 k
 initscripts             i386       8.45.3-1         core              1.3 M
 kudzu                   i386       1.2.57.1-2       core              217 k
 mkinitrd                i386       5.1.19-1         core              434 k
 pm-utils                i386       0.19-3           core               42 k
 python-pyblock          i386       0.24-2           core               54 k
 pyxf86config            i386       0.3.31-2.fc6     core               65 k
 udev                    i386       095-14           core              873 k

Transaction Summary
=============================================================================
Install     16 Package(s)
Update      27 Package(s)
Remove       0 Package(s)

Total download size: 20 M
Is this ok [y/N]: y

まよわずインストール。

システム全体のアップグレード(1回目)


# yum upgrade -y
::
:
Error: Missing Dependency: libsepol = 1.12.27-1 is needed by package libsepol-devel
Error: Missing Dependency: perl(:MODULE_COMPAT_5.8.3) is needed by package jcode.pl
Error: Missing Dependency: libttf.so.2 is needed by package bg5ps

エラー発生。原因を調査しなくては。

エラーの原因を追究(bg5psとは?)


# rpm -qi bg5ps
Name        : bg5ps                        Relocations: (not relocatable)
Version     : 1.3.0                             Vendor: Red Hat, Inc.
Release     : 22.2.1                        Build Date: 2006年02月11日 15時13分21秒
Install Date: 2006年04月08日 09時23分22秒      Build Host: hs20-bc1-6.build.redhat.com
Group       : Applications/Publishing       Source RPM: bg5ps-1.3.0-22.2.1.src.rpm
Size        : 132783                           License: GPL
Signature   : DSA/SHA1, 2006年03月07日 06時25分33秒, Key ID b44269d04f2a6fd2
Packager    : Red Hat, Inc. <http://bugzilla.redhat.com/bugzilla>
Summary     : Big5 エンコード中国語を印字可能なポストスクリプトに変換
Description :
Bg5ps uses the ttf2ps program to convert the Big5 Coding chinese text
into a printable postscript file. Since it uses true type font, the
quality is much better than using bitmap fonts.

僕の人生の中で、多分Big5は使用しないだろうと思い削除

# rpm -e bg5ps

エラーの原因を追究(libsepolとは?)


# rpm -qi libsepol
Name        : libsepol                     Relocations: /usr
Version     : 1.12.28                           Vendor: Red Hat, Inc.
Release     : 1.fc5                         Build Date: 2006年10月18日 01時01分39秒
Install Date: 2006年10月22日 13時19分23秒      Build Host: hs20-bc1-7.build.redhat.com
Group       : System Environment/Libraries   Source RPM: libsepol-1.12.28-1.fc5.src.rpm
Size        : 313875                           License: GPL
Signature   : DSA/SHA1, 2006年10月20日 06時01分17秒, Key ID b44269d04f2a6fd2
Packager    : Red Hat, Inc. <http://bugzilla.redhat.com/bugzilla>
Summary     : SELinux バイナリーポリシー操作ライブラリー
Description :
Security-enhanced Linux is a feature of the Linux 鉉ernel and a number
of utilities with enhanced security functionality designed to add
mandatory access controls to Linux.  The Security-enhanced Linux
kernel contains new architectural components originally developed to
improve the security of the Flask operating system. These
architectural components provide general support for the enforcement
of many kinds of mandatory access control policies, including those
based on the concepts of Type Enforcement遯 Role-based Access
Control, and Multi-level Security.

libsepol provides an API for the manipulation of SELinux binary policies.
It is used by checkpolicy (the policy compiler) and similar tools, as well
as by programs like load_policy that need to perform specific transformations
on binary policies such as customizing policy boolean settings.

SELinuxはOFFにしているけど、このパッケージをアンインストールする訳にはいかないような気がするので、
手動でパッケージをダウンロードし、アップデートすることにした。

# wget http://ftp.kddlabs.co.jp/pub/Linux/packages/fedora/core/6/i386/os/Fedora/RPMS/libsepol-1.12.27-1.i386.rpm
# wget http://ftp.kddlabs.co.jp/pub/Linux/packages/fedora/core/6/i386/os/Fedora/RPMS/libsepol-devel-1.12.27-1.i386.rpm
# rpm -Uvh libsepol-1.12.27-1.i386.rpm libsepol-devel-1.12.27-1.i386.rpm
準備中...                    ########################################### [100%]
        パッケージ libsepol-1.12.28-1.fc5 (libsepol-1.12.27-1 より新しいもの) は既にインストールされています。

なぜか、fedora core5用のlibsepolは
fedora core6用のものよりもバージョンが高いらしい。
rpm に --oldpackagesオプションをつけて実行

# rpm -Uvh --oldpackage libsepol-1.12.27-1.i386.rpm libsepol-devel-1.12.27-1.i386.rpm
準備中...                    ########################################### [100%]
   1:libsepol               ########################################### [ 50%]
   2:libsepol-devel         ########################################### [100%]

無事完了

エラーの原因を追究(jcode.plについて)


# rpm -qa | grep -i jcode
perl-Jcode-2.03-3.fc5
jcode.pl-2.13-11

なぜかPerlのjcodeに関するパッケージが2つ入っているインストールされている模様。どっちを削除するべきか・・・。

[perl-Jcode]
# rpm -qi perl-Jcode
Name        : perl-Jcode                   Relocations: (not relocatable)
Version     : 2.03                              Vendor: (none)
Release     : 3.fc5                         Build Date: 2006年02月22日 04時16分38秒
Install Date: 2006年04月08日 08時56分40秒      Build Host: hammer2.fedora.redhat.com
Group       : Development/Libraries         Source RPM: perl-Jcode-2.03-3.fc5.src.rpm
Size        : 49082                            License: GPL or Artistic
Signature   : DSA/SHA1, 2006年02月22日 14時19分15秒, Key ID 82ed95041ac70ce6
URL         : http://search.cpan.org/dist/Jcode/
Summary     : Perl extension interface for converting Japanese text
Description :
Perl extension interface for converting Japanese text.

# rpm -ql perl-Jcode
/usr/lib/perl5/vendor_perl/5.8.8/Jcode
/usr/lib/perl5/vendor_perl/5.8.8/Jcode.pm
/usr/lib/perl5/vendor_perl/5.8.8/Jcode/Nihongo.pod
/usr/share/doc/perl-Jcode-2.03
/usr/share/doc/perl-Jcode-2.03/Changes
/usr/share/doc/perl-Jcode-2.03/README
/usr/share/man/man3/Jcode.3pm.gz
/usr/share/man/man3/Jcode::Nihongo.3pm.gz

[jcode.pl]
# rpm -qi jcode.pl
Name        : jcode.pl                     Relocations: (not relocatable)
Version     : 2.13                              Vendor: Red Hat, Inc.
Release     : 11                            Build Date: 2004年06月11日 14時12分03秒
Install Date: 2004年12月20日 19時25分24秒      Build Host: tweety.build.redhat.com
Group       : System Environment/Libraries   Source RPM: jcode.pl-2.13-11.src.rpm
Size        : 36400                            License: Distributable
Signature   : DSA/SHA1, 2004年10月21日 03時11分34秒, Key ID b44269d04f2a6fd2
Packager    : Red Hat, Inc. <http://bugzilla.redhat.com/bugzilla>
Summary     : A Perl library for Japanese character code conversion.
Description :
A Perl library for Japanese character code conversion.

# rpm -ql jcode.pl
/usr/lib/perl5/vendor_perl/5.8.3/jcode.pl
/usr/share/doc/jcode.pl-2.13
/usr/share/doc/jcode.pl-2.13/jcode.pl-history

jcode.plというパッケージの方がバージョンも作成日も古いようなので、それを削除。

# rpm -e jcode.pl

システム全体のアップデート(2回目)


# yum upgrade -y

無事完了。
その際のログはこちら

システムのリブート


# /sbin/shutdown -r now

システムのリブート後、問題発生

eth1に接続しているADSLモデムが反応しなくなった。

[/var/log/messages抜粋]
Oct 29 22:18:29 lark pppd[1511]: pppd 2.4.4 started by root, uid 0
Oct 29 22:18:29 lark pppd[1511]: Using interface ppp0
Oct 29 22:18:29 lark pppd[1511]: Connect: ppp0 <--> /dev/pts/0
Oct 29 22:18:30 lark pppd[1511]: Warning - secret file /etc/ppp/pap-secrets has world and/
or group access
Oct 29 22:19:00 lark pppd[1511]: LCP: timeout sending Config-Requests
Oct 29 22:19:00 lark pppd[1511]: Connection terminated.
Oct 29 22:19:00 lark pppd[1511]: Modem hangup

よくよく調べてみると、eth0につなげているWindowsのPCにもpingが失敗することもわかった。
(当サーバ、LANカード2枚差しにしています)

ifconfigでインタフェースの状態を見ても、正常なのに。なぜ・・・?

もしかすると・・・と思ってLANケーブルのつなぎ換えを実行。
eth0 eth1にさしてあるLANケーブルを両方とも抜いて、
逆にしてさしなおしてみたら、問題解決。

アップグレードした拍子に、何故かeth0 と eth1 が論理的に入れ替わってしまった模様。
とりあえず、両方とも100MbpsのLANカードで、そのままでも支障はないので
このまま使用することにした。

後で知ったのですが、eth0 と eth1を入れ替えるには、
/etc/modules.confを編集すればよいらしい。

[ご参考]
http://www.atmarkit.co.jp/flinux/rensai/linuxtips/459chgeth0neth1.html

後日談

少々トラブルがあリましたが、正常に動作しています。
こんな適当でいいのだろうか?

それにもっと簡単な方法があるような気もする・・・。

導入手順書へ戻る