Ubuntu Weekly Recipe

第660回 自作のsnapパッケージをSnap Storeに公開する

この記事を読むのに必要な時間:およそ 6 分

パッケージのセルフレビュー

Snap Storeにアップロードされたパッケージは自動的なレビューと,パッケージの内容によっては人力によるマニュアルレビューも経た上で公開されます。このうち自動的なレビューについては,ツールを使えば自分でも実行可能です。実際にアップロードする前にレビューを通しておくと良いでしょう。

$ sudo snap install review-tools
$ snap-review thorium-reader-snap_1.6.0_amd64.snap
thorium-reader-snap_1.6.0_amd64.snap: pass

問題なさそうですね。

Snap Storeにパッケージをアップロードする

まずSnap Store用の開発者アカウントを作成します。これはUbuntu Oneシングルサインオンを利用しているため,過去にLaunchpadやUbuntu関連のアカウントを作っていたのなら,それを利用できます。

Snap Storeのアカウントログインページにアクセスしてください。作成済みならそのままログインします。未作成なら「I don⁠t have an Ubuntu One account」にチェックを入れて,必要な情報を入力しましょう。入力したメールアドレスに認証用メールが届きますので指示に従って対応してください。最後に開発者プログラムの規約に同意すれば準備完了です。

認証情報を取得する

次にsnapcraftコマンドでログインし,認証情報を取得しておきましょう。

$ snapcraft login
Enter your Ubuntu One e-mail address and password.
If you do not have an Ubuntu One account, you can create one at https://snapcraft.io/account
Email: (メールアドレス)
Password: (パスワード)

We strongly recommend enabling multi-factor authentication: https://help.ubuntu.com/community/SSO/FAQs/2FA

Login successful.

アップロード先のチャンネルを決める

次にsnapパッケージをアップロードするチャンネルを決めます。チャンネルは同じsnapパッケージに対して,異なるバージョンや,開発版・安定版の違いをもたせるための仕組みです。チャンネルは「トラック/リスク/ブランチ」の方法で指定します。トラックとブランチは特殊ケースなので,とりあえず今回はリスクだけを考えましょう。リスクには次の4つが存在します。

stable:
広く使われる安定版を提供するチャンネルです。ユーザーはstableが存在するパッケージのみ検索可能です。
chandidate:
stableになる直前の最終テストに使われるチャンネルです。
beta:
メジャーバージョンアップ時など,大きな変更が行われる際に広くテストを募るためのチャンネルです。
edge:
常に最新のコードをビルド・公開するためなどに使われるチャンネルです。

実際のところどのチャンネルをどう使うかは開発者の自由です。candidateやbetaはテストが必要なときしか使わない結果,stableよりもcandidateのほうが古いなんてこともザラにあります。

今回は手元でテストしているので,いきなりstableにアップロードしてしまいましょう。

パッケージをアップロードする

さぁ,ようやくアップロードの時間です!

$ snapcraft upload --release=stable thorium-reader-snap_1.6.0_amd64.snap
Preparing to upload 'thorium-reader-snap_1.6.0_amd64.snap'.
After uploading, the resulting snap revision will be released to 'stable' when it passes the Snap Store review.
Running the review tools before pushing this snap to the Snap Store.
You are required to register this snap before continuing. Refer to 'snapcraft help register' for more options.
Would you like to register 'thorium-reader-snap' with the Snap Store? [y/N]: y
(中略)
released
Revision 1 of 'thorium-reader-snap' created.
Track    Arch    Channel    Version    Revision
latest   amd64   stable     1.6.0      1
                 candidate  ↑          ↑
                 beta       ↑          ↑
                 edge       ↑          ↑

まず先ほどのsnap-reviewを自動的に実行してチェックしています。

次に「名前を登録するか」を聞かれているので「y」と入力しましょう。Snap Storeで公開するパッケージは,パッケージ名の衝突を避けるために「名前を予約」しておく必要があります。これがsnapcraft registerです。つまりこのコマンドを使えば,アップロード前に予約が可能です。

無事にアップロードが完了し,マニュアルレビューが不要ならすぐにパッケージが公開されます。

$ snap info thorium-reader-snap
name:      thorium-reader-snap
summary:   EPUB reader based on the Readium Toolkit
publisher: –
store-url: https://snapcraft.io/thorium-reader-snap
license:   BSD-3-Clause
description: |
  Thorium Reader is an easy to use EPUB reading application for cross
  platforms.

  This is unofficial re-packing of the debian package provided by EDRLab.
commands:
  - thorium-reader-snap.thorium
refresh-date: today at 19:45 JST
channels:
  latest/stable:    1.6.0 2021-03-19   (1) 115MB -
  latest/candidate: ↑
  latest/beta:      ↑
  latest/edge:      ↑
installed:          1.6.0            (x10) 115MB -

開発版は一旦綺麗に削除してからインストールを試してみると良いでしょう。

$ sudo snap remove --purge thorium-reader-snap
thorium-reader-snap removed
$ sudo snap install thorium-reader-snap
thorium-reader-snap 1.6.0 from Mitsuya Shibata (cosmos-door) installed

無事にインストールできたでしょうか?

著者プロフィール

柴田充也(しばたみつや)

Ubuntu Japanese Team Member株式会社 創夢所属。数年前にLaunchpad上でStellariumの翻訳をしたことがきっかけで,Ubuntuの翻訳にも関わるようになりました。