4
11

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Yoctoでdnfを使う方法

Posted at

Yocto 2.3 で、パッケージマネージャがsmartからdnfに変更されました。
dnfそのもののドキュメントは存在しますが、Yoctoで使う方法は情報が皆無に等しい状況です。
本稿は、あれこれ試した結果を忘れないようにメモ書きしたものです。

#dnfとは?
Fedoraで採用されている、yumの後継パッケージマネージャ。
オフィシャルドキュメントは以下にある
http://dnf.readthedocs.io/en/latest/

dnfそのものの解説はあえて書くまでもないので、以下を参照
https://ja.wikipedia.org/wiki/DNF_(%E3%82%BD%E3%83%95%E3%83%88%E3%82%A6%E3%82%A7%E3%82%A2)

Yocto2.3の「New Features / Enhancements」に以下のような一言が書かれており、変更されたことがわかる。

  • Replaced smart+rpm5 with dnf+rpm4 for more standard and widely-supported RPM functionality

#Yoctoでdnfを使う方法
Yocto Project Reference Manual の5.18.4. Using Runtime Package Managementに使い方が書かれている。
http://www.yoctoproject.org/docs/current/ref-manual/ref-manual.html

パッケージ方式にrpmを採用した場合に、ビルドするPCからターゲットボードにinstallできるようにする方法を以下に記す。(マニュアルの内容を見る限りipkも同じ方法でできそう)

  1. local.confもしくは、イメージレシピに以下の1行を追加して、パッケージマネージメント関連のファイルがインストールされるようにする
    IMAGE_FEATURES += " package-management "

  2. ビルドディレクトリのrpmディレクトリ(例:build\tmp\deploy\rpm)をhttpで公開する。

  3. rpmディレクトリで createrepo . を実行しておく。本来の使い方とは異なるが、いちいちリポジトリデータを作り直すのは面倒なので、ひとつ上のディレクトリで作ってしまう。

  4. ターゲットボードを起動し、
     mkdir yum.repos.d
    で、ディレクトリを作成し、次のように記述したyocto.repoファイルを格納する
     [yocto]
     baseurl=http://yourserver/rpm
     gpgcheck=0
     この方法では、リポジトリの検証用のgpgkeyを無効にしているが、ローカル接続であれば問題ない。外部公開の場合は適切に設定すること。

  5. 以下の順番でコマンドを実行する
    dnf makecache
    dnf update
    dnf install インストールしたいパッケージ名

smartから移行する場合は、4の手順が変わっているところなので、そこに注意すれば比較的すんなり使えます。

4
11
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
11

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?