This service is available only in Japanese-language.
Yocto2.2 まで、ターゲットマシン上で実行するパッケージマネージャーとして、smartが提供されていました。
ターゲットボードのrootfsで足りないコマンドがあった場合に、rootfsを更新することなく、パッケージの
追加削除が可能となり、開発段階で色々試行するのに便利に使用できます。
過去形で記述しているのは、python2ベースのツールであったため、次のYocto2.3ではDNFに置き換えられています。
ですが、今現在の各ベンダーから提供されているBSPは、最新版でもYocto2.2を採用している場合が多いため、簡単
な使用方法を説明します。
1. build マシンの設定
1.1 httpdの設定
任意のhttpdをインストールします。
超実践講座で紹介する場合は、lighttpdを使用しています。
/var/www/ 以下から、rpmのパッケージが格納されているディレクトリへのリンクを張り、
http://hostname/beaglebone/
とアクセスした際に
build/tmp/deploy/rpm
が参照できるように、シンボリックリンクを作成します。
1.2 conf/local.conf への記述追加
EXTRA_IMAGE_FEATURES にpackage-manegement を追加。
1.3 package-indexの作成
bitbake package-index を実行して、rpm以下の各ディレクトリ内にrepo データを作成します。
2. ターゲット上での操作
2.1 CHANNELの設定
buildマシンのtmp/deploy/rpm 以下の
all beaglebone cortexa8hf_neon
ディレクトリをCHANNELとして登録します。
smart channel -add all type=rpm-md baseurl=“http://hostname/beaglebone/all”
smart channel -add beaglebone type=rpm-md baseurl=“http://hostname/beaglebone/beaglebonel”
smart channel -add cortexa8hf_neon type=rpm-md baseurl=“http://hostname/beaglebone/cortexa8hf_neon”
登録完了後 smart channel --list コマンドを実行して、登録状態を確認します。
2.2 キャッシュの更新
smart update コマンドを実行して、キャッシュのアップデートを行います。
2.3 buildマシンで構築済パッケージの追加
smart search コマンドを実行して、buildマシン上にパッケージの有無を確認します。
例として、curlを使用します。
# smart search curl
Loading cache...
Updating cache... ######################################## [100%]curl - Command line tool and library for client-side URL transfers
curl-dbg - Command line tool and library for client-side URL transfers - Debuggs
curl-dev - Command line tool and library for client-side URL transfers - Develos
curl-doc - Command line tool and library for client-side URL transfers - Documes
gstreamer1.0-plugins-bad-curl - GStreamer plugin for curl
libcurl4 - Command line tool and library for client-side URL transfers#
存在が確認できた場合は、smart install パッケージ名
を使用して、インストールを実行します。
: ~#smart smart install curl
Loading cache...
Updating cache... ######################################## [100%]Computing transaction...
Installing packages (1):
curl-7.50.1-r0.0@cortexa9hf_neon100.7kB of package files are needed. 146.8kB will be used.
Confirm changes? (Y/n): y
Fetching packages...
- > http://192.168.201.107/beaglebone/.../curl-7.50.1-r0.0.cortexa9hf_neon.rpm
curl-7.50.1-r0.0.cortexa9hf_n.. ######################################## [100%]Committing transaction...
Preparing... ######################################## [ 0%]
1:Installing curl ######################################## [100%]# which curl
/usr/bin/curl
#
3. 新規にbuildマシンでパッケージを追加した場合
3.1 buildd マシンで実行するコマンド
bitbake package-index
で、indexを更新します。
3.2 ターゲットで実行するコマンド
smart update
で、パッケージ情報を更新します。