気の向くままに辿るIT/ICT/IoT
システム開発

Fedoraメジャーバージョンのアップグレード

ホーム前へ次へ
*BSD/PC-UNIX/Linuxって?

Fedoraメジャーバージョンのアップグレード

Fedoraメジャーバージョンのアップグレード

 バージョン9まで続いたRed Hat Linuxの無償版の後継であるFedora Core 6に次いで改名、Fedora 7となり、執筆時点では、2014年12月9日Fedora 21がリリースされたばかりというところです。

 これまで仮想マシンにRed Hat Linux 7.1、Fedora Core 2、Fedora 18、Fedora 20、物理マシンにFedora 20をインストールしたことはありますが、今回、自身初となるFeodraのアップグレードをしてみようと思います。

 後述のような慣例からすると次回のFedora 22がリリースされてからでも遅くはありませんが、今回は、早々とやってみることに。(それまで半年ペースだったリリースが20から21のリリースまで約1年あったので時間軸で見るとほぼ従来通りであり、早々ではありませんが。)

 Fedora 21というバージョンは、ある種、節目のバージョンであり、21から『Fedora.next』という戦略の下、メインとしては、[cloud]、[server]、[workstation](デスクトップ)といったディストリビューションが、これに加え、一部なくなっていますが、引き続き、Spinプロジェクトとして[KDE]、[Security]、[Electronic-Lab]、[Scientific-KDE]、[Design-suite]、[Games]、[Robotics]、[Jam-KDE]が提供されています。(2. Fedora Products参照)

 更に仮想環境用としてx86マシン上でも動作する完全なAArch64システムエミュレーション[qemu-system-aarch64]が提供されると共に、これまでリミックス版だったスマートフォンやタブレットに用いられることの多いSoC/System on a Chip(1つの半導体チップにすべての機能を集約したもの)であるARMアーキテクチャもバージョン21からFedora公式サポートとなっています。

Fedora 21へのアップグレードに際しfedupに[--product]オプション追加

 また、直近のアップグレード方法の節目となったFedora 18へのアップグレードからは、fedup(Fedra Upgrader)というスクリプトが推奨されています。

 前述のようなFedora 21の変更に伴い、Fedora 21にグレードアップするにあたっては、fedupにも[--product]オプションが追加され、先の3つの選択肢のほか、これまでSpinプロジェクトのディストロを使っていたなど、どれにも合致しない場合、[nonproduct]も選択できるようになっています。

 fedupにおいては、Fedoraのコア部分のみならず、公式リポジトリ及び少なくとも一部の非公式リポジトリも更新され、最終的に更新後のリポジトリにあるアプリケーションソフトウェアがインストールされるので結果としてインストール済みソフトウェアも同時にアップデートしてくれます。

 尚、非公式と言いつつ、直接yumを使ってメジャーバージョンのアップグレードに成功したという報告も多数上がっているとのことで19から20、20から21ほかyumによるアップグレードのドキュメントも用意されています。

 ちなみにRed Hat社支援の下、安定以上に先進性を優先するFedoraにおいては、互換性のない仕様変更も珍しくなく、Fedora Coreと呼ばれた当初からメジャーアップグレードにおいても幾通りもの変遷を経ているようです。

fedupによるアップグレード

 そんな中、Fedora 18から採用されたfedupは、まだ4回めのメジャーアップグレードですし、今回リリースされたFedora 21でメインのディストリビューションが変更になり、fedupのオプションが増えたという点では、初回、自身としてもFedoraのアップグレードは初ということもあり、念の為、仮想マシンで試してみることにしました。

 実機に入れる前に検証に使った既存のVirualBoxの仮想マシンのクローンを作成したものの、仮想ハードディスクサイズが不足気味で拡張、また、rootパーティションのファイルシステムLVMだったのでこれを拡張と予想外の作業が増えてしまいましたが、対処できたのでfedupを使ってFedora 20から21へのメジャーバージョンアップグレードをやってみました。

 fedupは、基本的にサードパーティ含むメイン以外のリポジトリもアップグレードすることができるものの、最新バージョンの場合、タイミングによっては、まだ、リポジトリが対応していない可能性もあるとのこと。

$ yum repolist all
...
$ sudo yum install yum-config-manager
$ sudo yum-config-manager --disable AnyRepository
$ sudo yum-config-manager --enable AnyRepository
$ sudo yum-config-manager --add-repo repository_url
$

 よって全て存在することを確認した後に実行したり、必要なリポジトリを控えておき、fedupで自動でアップグレードしてみて上手くいかなかったものだけを手作業で再登録するという方法もありでしょうし、[yum repolist all]などとして各種リポジトリの有効/無効を確認後、[yum-config-manager]コマンド(なければインストール)を使ってリポジトリの一覧からFedoraのメイン以外のリポジトリを一度[無効]にすることを考慮してもよいかもしれません。

 ちなみに確認してみると[rpmfusion-free-*]と[rpmfusion-nonfree-*]については、既にFedora 21用があったので、これらについては、外す必要はなさそうですが、[無効]にした場合には、[yum-config-manager --enable ...]として[有効]にするか、必要なら改めてrpm.pbone.netで、21用がない場合には、[Fedora Other]をチェックするなどして検索後、適宜リポジトリを好きな場所から[yum install]するとよいでしょう。(従前のyum localinstallとも互換性あり)

 尚、MATE端末/LXTerminal/Konsoleなどでは、[yum repolist all]とした際、[有効]/[無効]及び[有効]なら収録数が表示され、そうでない場合も収録数が表示されていれば有効、表示されていなければ無効と判断してよいでしょう。

 さて、fedupの実行にあたっては、[--network]、[--product]、[--debuglog]オプションと[--nogpgcheck]フラグを指定しておくことにします。

$ cd
$ su
Password:
# fedup --network 21 --product nonproduct --nogpgcheck --debuglog ./.fedup_log

 [--network]オプションは、インターネット経由でアップグレードしたいバージョンを指定する為のもので、他に[--iso]や[--device]もありますが、常に最新を維持できる可能性がより高いという意味で[--network]が推奨されています。

 [--product]オプションは、前述の通り、[cloud|server|workstation|nonproduct]の何れかを指定する為のものです。

 [--nogpgcheck]フラグは、サードパーティなどFedoraのメインリポジトリでないリポジトリを登録して何らかのソフトウェアをインストールしている場合、GPG(GnuPG/GNU Privacy Guard)鍵のチェックにより、はじかれる可能性がありますが、これを無効にする為のものです。

 [--debuglog]オプションは、デバッグ用のログを指定したパスにあるファイルに保存するものです。

 というわけでfedupを実行すると38MB程度のfedup用のinitramfsイメージ(initramfs-fedup.img)生成を含め、アップグレード用の設定、アップグレード対象(今回の場合、Fedora 21)用のリポジトリの存在確認及びインストール済みパッケージのアップデート版(今回の検証では2002個のパッケージ)のダウンロード、アップグレード処理のテストなどを行い、実際にアップグレードを行うには、再起動するように促されてプロンプトが返ってきます。

 促された通りに再起動するとGRUBメニューにデフォルトとして[System Upgrade (fedup)]メニューが表示されているはずなのでこれを選択します。

 するとinitramfs-fedup.imgをメモリ上に読み込まれ、保持されていた新しいバージョンのパッケージ群のインストールが開始され、クリーニング、各パッケージのインストール後処理用スクリプトの実行など一連のアップグレード処理が終わると自動的に再起動、今回の場合、[Fedora (3.17.7-300.fc21.i686) 21 (Twenty One)]というメニューがGRUBメニューのデフォルトとしてあり、これを選ぶ(かタイムアウトする)と起動します。

 このようにエラーがなく、無事にアップグレードが完了した場合には、そのまま利用できますが、そうでない場合は、[--debuglog]オプションで指定したログファイルやFedoraのバグを確認するなどして解決する必要があるでしょう。

 尚、起動するとログイン画面、起動画面共に雲がかかったような背景画像になっていました。

 当該仮想マシンはFedora 20の時からRAM768MBにしており、少し、もっさり感はあったものの、Fedora 21では、更にRAM使用量が増えたのか、以前に増して、もっさり感じます。

 うまくいくことが確認できたので実機でも早速、fedupしてみましたが、RAMが2GBあるからか、RAM768MBの仮想マシンで感じたようなアップグレード前後のもっさり感の差もなく、操作性も快適です。

 今回の検証環境においては、仮想マシンでも実機でもfedupの実行、再起動後のアップグレードでそれぞれ1時間30分前後、トータル約3時間程度で終わりました。

fedup後のパッケージソフトウェア

 今回、Fedora 20からFedora 21にfedup(アップグレード)した後の現象と思われる事象がいくつかありました。

 fedup自体は、何事もなく完了したように見え、快適ですが、いくつかソフトウェアの動作確認をしてみるとFileZillaの[3.9.0.6-1.fc21]においてリモート接続はしている模様も接続先のディレクトリが表示されないという不具合らしき現象があり、リポジトリに唯一ある前のバージョン[3.8.1-3.fc21]に戻したところ、正常に機能しています。

 更に後日、Apper(パッケージ管理ソフトウェア)でアップデートを行なうと認証のポップアップが頻出して先に進まないという状況になり、何度試しても同じ、そこでターミナルから[yum check-update]、[yum update]すると何事もなく終了しました。

 この時、すべてをアップデートした関係で先のFileZillaも[3.9.0.6-1.fc21]にアップデートされたわけですが、やはり、リモートサイトのディレクトリリストもファイルリストも表示されませんでした。

 MATEを常用していたので他のデスクトップ環境やウィンドウマネージャで試してみようと思うに至り、やってみるとFileZillaについては、GNOMEや(Fedora 21にアップグレードしたら追加された?)GNOMEクラシックなら[FileZilla 3.9.0.6]でも正常に機能することがわかりました。

 逆に言うとKDE/Cinnamon/MATE/Xfce/LXDE/Openboxで[FileZilla 3.9.0.6]を起動するとリモートサイトのディレクトリリストとファイルリストが表示されないという状況に。

 ちなみにNetBSD上の[FileZilla 3.9.0.3]は、何の問題もありません。

Fedoraメジャーバージョンのリリースサイクルとサポート期限

 Fedora CoreからFedoraとなって2003年11月にリリースされたバージョン1から17までは、6ヶ月〜7ヶ月ごとに次のバージョンが、18は、約8ヶ月後、19、20と約6ヶ月、21のリリースが1年後の2014年12月となっています。

 サポート期限については、2つ先のメジャーバージョンのリリース日プラス1ヶ月程度ということで、約半年ごとにリリースされたものの内、Fedora Core 5からFedora 19までは約13ヶ月で期限切れとなっているものの、19のサポート期限切れは、約18ヶ月後となりそうです。

  • Pavilion Slimline s3140jpにNetBSD/i386 6.1.5をインストール
  • Pavilion Slimline s3140jp BIOS用ボタン電池交換
  • Pavilion Slimline s3140jpにDebian wheezyのインストールとjessieへのアップグレード
  • ホーム前へ次へ