This service is available only in Japanese-language.

SMARTを使用したパッケージ管理


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_neon

100.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
で、パッケージ情報を更新します。