sailfishOS SDKを使うときに覚えておくべき5つのコマンド
タイトルは釣りです。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