prototype020.info

sailfishOS SDKを使うときに覚えておくべき5つのコマンド

Published: 2014-04-15 / Last modified: 2014-04-17

タイトルは釣りです。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?
    http://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
    http://goo.gl/Ce6dTH

    Trend