Fedora Linux のバージョンアップ (アップグレード)
2008.11.26 作成。(2006.11.12, 2007.6.2 の日記に加筆)
半年に一度やってくる Fedora Linux のバージョンアップ手順と、関連するコマンドなど。
データのバックアップ
DBMSのデータベースなどは、事前に適宜バックアップしておきます。PostgreSQL は PostgreSQL の管理 を参照。
Fedora Linux のアップグレード
まず、次のパッケージをrpmコマンドでインストールします。(rpm -Uvh)
- fedora-release
- fedora-release-notes
Fedoraのリポジトリに含まれないパッケージを使っているときは、加えて、追加リポジトリのリリースパッケージもインストールします。
例えば、freshrpms だと、
- freshrpms-release
Note.
|
*-release パッケージは、/etc/yum.repos.d ディレクトリにyumリポジトリの情報ファイルを作ります。freshrpmsの設定はfreshrpms.repoファイルです。
repoファイル内で enabled=1 となっていると、yumコマンドで自動的に使用されます。そうでないときは、yumコマンドの--enablerepoオプションで、都度、指定します。
あとは、yum コマンドでアップグレード開始です。
# yum clean all # yum upgrade
新しいFedoraではパッケージが提供されなくなっている場合や、依存関係が変わっていて、アップグレードに失敗することがあります。
rpmコマンドでエラーになるパッケージをアンインストールして、もう一度試します。
rpmデータベースの復元
まれに、yum upgrade の最中に rpmデータベースが壊れることがあります。
rpm データベースを復元するには、rootになって、次のようにします。
# /usr/lib/rpm/rpmdb_verify /var/lib/rpm/Packages # rpm --rebuilddb
--rebuilddb オプションは、インストールされているパッケージのヘッダからデータベースのインデックスを再作成します。
yumコマンドの途中でエラーになったりした場合は、yum-complete-transaction コマンドで継続できます。
パッケージの補正
パッケージによっては、古いほうのアンインストールスクリプトにエラーがあり、rpmパッケージが重複してしまうことがあります。
そのときは次のようにします。
# rpm -e --noscripts 古いほうのパッケージ名
アップグレード後は、package-cleanup コマンドで問題がないか調べておいたほうがいいでしょう。
package-cleanup は yum-utils パッケージに含まれます。主なオプションは、
- --problems
- 何か問題がないか表示する
- --orphans
- インストールされていて、サーバリポジトリにないものを表示。リポジトリ以外から別にrpmファイルをインストールしたようなもの以外は、すべて削除していい。
- --leaves
- ほかのどのRPMからも依存されていないRPM。余計なものである可能性が高い。rpmでないソースをコンパイルするとき必要なもの以外は、すべて削除していい。
- --dupes
- バージョン違いなどが重複してインストールされている
- --cleandupes
- 重複を探し、古いほうをアンインストールするところまでやってくれる
Note.