Fedora21 をFedora22 にアップグレードする

# Fedora 21 をFedora 22 にUpgrade する 
自宅サーバのFedora 21 をFedora 22 にUpgrade した時の手順を残しておきます。

# 事前準備 
Upgrade する前にシステムのバックアップを撮っておいてください。
仮想環境上にFedora 21 がある場合は、スナップショットでも良いと思います(自分の環境の場合はこちらで対応しました)。

また、wiki には特に書いてありませんが、念の為事前にFedora 21 を最新の状態にUpdate しておきます。

```text
# yum update
```


# fedup のUpdate 
fedup コマンドを最新の状態にします。
インストールされていない場合は、インストールをしてください。

```text
# yum update fedup fedora-release
or
# yum install fedup fedora-release
```


# fedup コマンドの実行 
root ユーザでfedup コマンドを実行します。
本コマンドを実行すると、`/var/cache/system-upgrade` にファイルがダウンロードされます。

```text
# fedup --network 22
```


なお、本コマンドを実行すると現在インストールされているパッケージの検証が行われます。
自分の環境の場合、検証の結果、次のような警告が出ました。

```text
.....
NOTE: Some repos could not be contacted: mattdm-finalterm
If you start the upgrade now, packages from these repos will not be installed.

WARNING: problems were encountered during transaction test:
  broken dependencies
    perl-PlRPC-0.2020-15.fc20.noarch requires perl-4:5.18.4-308.fc21.x86_64
These packages may have problems after the upgrade.
Finished. Reboot to start the upgrade, or 'fedup --resetbootloader' to abort.
```

mattdm-finalterm は、現在Fedora はサーバ用途で使用しているので、特に気にしないことにしました。
perl-PlRPC は PlRPC (Perl RPC) に関するパッケージのようですが、自分は特に使っていません。ただ、インストールされているパッケージが使用している可能性もあるので、経過観察することにしました。

# Upgrade 
fedup コマンドが完了すると、下記メッセージが表示されていると思います。

```text
Finished. Reboot to start the upgrade, or 'fedup --resetbootloader' to abort.
```

もしUpgrade をキャンセルしたい場合は、`fedup --resetbootloader` を実行することでキャンセルできます。

今回はUpgrade を続行するので、OS を再起動します。

```text
# shutdown -r now
```


再起動すると、起動途中のGRUB メニューで`System Upgrade` の項目が出されると思うので、それを選択してください。
通常通り再起動すると、一番上に項目が来ているので、放置しておけば勝手にそれが選択されるようになっています。

Upgrade が開始されると、Fedora のアイコンが出現してプログレスバーが進んでいきます。
おそらく数十分ほどかかるので、しばらく放置しておきます。(´・ω・｀)_且~~
![Fedora22_UpgradeToFedora22_0000.png](https://qiita-image-store.s3.amazonaws.com/0/70152/dbe853ce-413c-2d68-33bd-06b1259fc85f.png)

## プログレスバーが100% になっても再起動しない 
自分の環境だけかもしれませんが、Upgrade プログレスが100 % に達しても再起動されませんでした。
コンソール上でESC キーを押して、CUI モードに移動したところ、既にシャットダウン状態に移行していたようです。
![Fedora22_UpgradeToFedora22_0001.png](https://qiita-image-store.s3.amazonaws.com/0/70152/399031af-bedf-e961-1ad8-f8adec01bd96.png)


とりあえず、電源スイッチを押してOS を再起動させることにします。

# Upgrade 後の作業 
RPM DB をリビルドして、RPMDB チェックサムエラーを回避します。
`rpm --rebuilddb` コマンドを実行して、RPMDB を再構築します。


```text
# rpm --rebuilddb
```


ディストリビューション上のパッケージを、現在のFedora のバージョンのものと合わせるため、`yum distro-sync` コマンドを実行します。
結果、不要なファイルや一部パッケージのダウングレード等が行われたりします。

```text
# yum distro-sync --setopt#deltarpm0

......
Dependencies resolved.
#####################=============================================================================
 Package                             アーキテクチャ        バージョン                     リポジトリー            容量
#####################=============================================================================
削除:
 kernel                              x86_64                3.17.8-300.fc21                @System                  0
 kernel-core                         x86_64                3.17.8-300.fc21                @System                 40 M
 kernel-modules                      x86_64                3.17.8-300.fc21                @System                 17 M
 kernel-modules-extra                x86_64                3.17.8-300.fc21                @System                2.1 M
ダウングレード中:
 libmwaw                             x86_64                0.3.4-3.fc22                   fedora                 2.0 M
 libodfgen                           x86_64                0.1.3-2.fc22                   fedora                 226 k
 libssh                              x86_64                0.6.4-1.fc22                   fedora                 151 k
 libtiff                             x86_64                4.0.3-18.fc22                  fedora                 172 k
 unbound-libs                        x86_64                1.5.3-2.fc22                   fedora                 355 k

トランザクションの要約
#####################=============================================================================
Remove          4 Packages
ダウングレード  5 Packages

総ダウンロード容量: 2.9 M
これでいいですか? [y/N]
```


rpmconf ツールを実行し、.rpmnew, .rpmsave, .rpmorig ファイルを検索し、新しいバージョンのものに取り替えるか、現在の状態をキープするか、差分を表示するかといった作業を行ないます。
環境によって、判断は様々なので、操作内容については割愛します。

```text
# yum install rpmconf
# rpmconf -a
```


(自分の環境では実施していませんが)もし、google-chrome をGoogle リポジトリからインストールして使用している場合は、下記コマンドを実行して、再インストールしてください。

```text
# yum remove google-chrome-\* && sudo yum install google-chrome-[beta,stable,unstable]
```


# 参考 
FedUp
https://fedoraproject.org/wiki/FedUp