Fedora 29でローカルリポジトリーを追加

Fedora 29にアップグレードした。しかし、カスタムRPMを入れると、dnf updateするたびにカスタムRPMを再度インストールするように促される。このままではdnf updateもできないため、いろいろ調べた。以下のURLに参考情報があった。

Bug 1644241 – dnf enforces reinstalling custom changed packages

現在はdnfのバグだが、直るまでの間ローカルリポジトリーを自分で作成しないといけないみたい。

ローカルリポジトリーを作成するのに、いかの手順で実施する。

1.フォルダー作成

自分は /var/local/fedora29/x86_64 を作成したが、/var/local の部分は変更可能。

2.カスタムRPMファイルのコピー

自分でビルドしたカスタムRPMファイルを /var/local/fedora29/x86_64/ にコピーする。

自分は

sudo install -m 644 *.rpm /var/local/fedora29/x86_64/

コマンドを使っていた。

ちなみに、自分はカスタムRPMは以下です。

      (1) unzip。 Windowsで作成されたzipファイルを解凍するためのオプションを追加

      (2) ibus-mozc。デフォルト入力モードをひらがなに変更

      (3) fbreader。コマンドラインからepubファイルを指定して実行する場合のクラッシュを修正

      (4) ffmpeg。fdk_aacの対応を有効にする

3.リポジトリーのメタデータファイル作成

よくわからないが、

sudo createrepo -u file:///var/local/fedora29/x86_64/ /var/local/fedora29/x86_64/

コマンドを実行して、動いた。オプションが正しくないかもしれない。

4./etc/yum.repos.d/fedora-local.repo ファイルを追加

中身は以下のように設定

[fedora-local]
name=Local Fedora Repository
baseurl=file:///var/local/fedora$releasever/$basearch
failovermethod=priority
enabled=1
protect=0
priority=1
skip_if_unavailable=False

gpgcheck=0

今後にもFedora 30になっても使えるように、変数を使った。「priority=1」を指定することにより、fedorafedora-updatesのリポジトリーより優先的に使用される。

これで、カスタムRPMをインストールしてもdnfから再インストールを提示されることがなくなった。