タイトルは釣りです。4個だし。

SailfishOS SDKはJolla SailfishOS用アプリケーションを作成するための開発環境ですが、結構まだアラがあるので、割と手作業で処理が必要になることが多いです。そのときにけっこうコマンドを使用するので、メモしておきます。

1. ビルドエンジンに必要なパッケージを探したい

SailfishOS SDK環境では、scratchbox2を使用して、複数のビルドターゲットを持っています。デフォルトで存在するのは以下の2つです。

  • SailfishOS-i486
  • SailfishOS-armv7hl

20140417注: SailfishOS SDK 1404のアップデートで、i486のターゲット名が変更になり、SailfishOS-i486-x86からSailfishOS-i486となりました。

他のターゲットは、Control Center(Qt Creatorで見られる)から追加できるようですが、おそらく誰もテストしてないと思うので放っておくのがよいでしょう。

ビルドエンジン用パッケージを検索したり、インストールしたりするには、先ほどのControl CenterからGUIでインストールすることができます。こちらが参考になるでしょう。

[Sailfish SDK] QtQuick.XmlListModel not installed?

https://talk.maemo.org/showthread.php?t=91116

ただ、これだとQt Creator開いて目的のターゲット開いて...とめんどくさい。QtCreatorで開発しているときはいいですが、違うもの(ライブラリとか)ビルドしているときにめんどい。ということで、コマンドを使用します。 まず、mersdkにsshログインします。ユーザーはmersdkです。

$ ssh mersdk@localhost -p2222 -i ~/SailfishOS/vmshare/ssh/private_keys/engine/mersdk

ログインしたら、以下のコマンドで、欲しいパッケージを探します。たとえば、上に書いたフォーラムではxmllistmodelのパッケージを探していましたので、それを例にしてみます。

$ sb2 -t ターゲット名 -m sdk-install -R zypper se 検索文字列
()$ sb2 -t SailfishOS-i486 -m sdk-install \
 -R zypper se xmllistmodel

リポジトリのデータを読み込んでいます...
インストール済みのパッケージを読み込んでいます...

S | 名前                                            | 概要                                                                | 種類      
--+++++++++++++++++++++++++++++++++++++++++++++++++-++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--
i | qt5-qtdeclarative-import-xmllistmodel           | Qt Declarative XmlListModel plugin                                  | パッケージ
  | qt5-qtdeclarative-import-xmllistmodel-debuginfo | Debug information for package qt5-qtdeclarative-import-xmllistmodel | パッケージ

ターゲット名のところは上述したターゲットを指定してください。

2. ビルドエンジンに必要なパッケージをインストールしたい

1が終わっていればオプションを変えるだけです。

$ sb2 -t ターゲット名 -m sdk-install -R zypper in パッケージ名
() $ sb2 -t SailfishOS-i486 -m sdk-install \
-R zypper se qt5-qtdeclarative-import-xmllistmodel

インストールされているかどうかの確認もzypper seでよいでしょう。

3. SailfishOS Emulator環境に必要なパッケージを検索したい

rootでエミュレータ環境にログインします。

$ ssh root@localhost -p 2223 \
-i  ~/SailfishOS/vmshare/ssh/private_keys/SailfishOS_Emulator/root

zypperは入っていないので、pkconを使います。

$ pkcon search name 検索文字列
()$ pkcon search name xmllistmodel

名前で検索中            [=========================]         
キューで待機中         [=========================]         
開始中                     [=========================]         
ソフトウェアリストをリフレッシュ中[=========================]         
クエリ中                  [=========================]         
インストール済み	qt5-qtdeclarative-import-xmllistmodel-5.1.0+git24-1.10.4.i486	Qt Declarative XmlListModel plugin
利用可能	qt5-qtdeclarative-import-xmllistmodel-debuginfo-5.1.0+git24-1.10.4.i486	Debug information for package qt5-qtdeclarative-import-xmllistmodel

普通にrpmコマンドでも検索できます。

4. SailfishOS Emulator環境に必要なパッケージをインストールしたい

こちらもpkconを使います。

$ pkcon install パッケージ名
() $ pkcon install qt5-qtdeclarative-import-xmllistmodel

pkcon removeでアンインストールできます。

結局パッケージインストールしかしてませんね。頻繁に使うので。

sb2周りは以下を読んでおくとよいでしょう。英語ですが。

Deploying Additional Packages to the Sailfish Emulator and SDK

https://goo.gl/Ce6dTH