Ubuntu Weekly Recipe

第46回 PPAの活用

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

PPAを利用したパッケージの公開

前述のようにPPAを利用することで,自分で作成したカスタムパッケージをリポジトリに登録し,それを第三者に公開することが可能になります。PPAを利用するためには,PPAのアクティベーションとLaunchpadへの公開鍵の登録,CoCへの署名が必要になります。ここではPPAでパッケージを公開するまでに必要となる手順を紹介します。

PPAのアクティベーション

Launchpadへログインして自分のProfileページを表示すると,画面上部に[Personal Package Archive]という項目があります。

図4

図4

ここをクリックすると[Personal Package Archive Activation]というページが表示されます。PPAを有効にするには[I have read and accepted the PPA Terms of Service.]にチェックを入れて[Activate]ボタンを押す必要があります。[PPA Terms of Use]のリンク先を一読して内容を確認し注3⁠,問題がなればチェックを入れてアクティベートしてください。

注3)
"Terms of Use"には,PPAにアップロードできるソフトウェアのライセンスについて記載されています。くれぐれもライセンスには注意し,許容されるライセンスか確認の上アップロードを行ってください。

公開鍵の登録

自分が作成したパッケージであることを証明するため,作成したパッケージにはGPGを利用した署名を行う必要があります。そしてその署名をPPAが検証するため,LaunchpadにGPG公開鍵を登録する必要があります。自分のGPG鍵がない場合は,以下のコマンドで鍵を作成してください。

$ gpg --gen-key

作成した公開鍵は鍵サーバへ登録する必要があります。端末より以下のコマンドを実行して鍵の送信を行ってください。

$ gpg --send-keys --keyserver keyserver.ubuntu.com 鍵ID

鍵の登録が完了したらLaunchpadへインポートします。まず自分の鍵のフィンガープリントを以下のコマンドで調べてください。

$ gpg --fingerprint 鍵ID

次に以下のページを開き,鍵のフィンガープリントを入力しインポートしてください。

https://launchpad.net/people/+me/+editpgpkeys

インポートを実行するとLaunchpadから登録時のメールアドレスに"Launchpad OpenPGP Key Confirmation"というサブジェクトのメールが届いているはずです。このメールの本文はGPGによって暗号化されていますので,自分の鍵で復号化して書かれている指示に従ってください。

詳細な手順はLaunchpadのヘルプページYourAccount/ImportingYourPGPKeyが参考になるでしょう。

CoCへの署名

前述のYourAccount/ImportingYourPGPKeyページ内にあるcodes of conductをクリックし,"Ubuntu Codes of Conduct"ページを表示させてください。ここにはCoCへのサイン方法が記述されていますが,その手順は以下のようになります。

  1. GPG鍵の登録
  2. CoCテキストのダウンロード
  3. CoCへの署名
  4. 署名したテキストのアップロード

前述のGPG鍵の登録が済んでいるならば,ページ内の"Download"をクリックしCoCをテキストファイルとして保存してください。テキストにはUbuntuの行動規範が記述されていますので,熟読した後署名を行ってください。署名を行うには端末より以下のコマンドを実行します。

$ gpg --clearsign UbuntuCodeofConduct-1.0.1.txt

ファイルへの署名が完了したら,ページ内の"Sign it!"をクリックして登録ページへ移動してください。"Signed Code"テキストボックスに署名を行ったテキストファイルの中身をペーストして送信することで,CoCへの署名は完了となります。

パッケージの作成とアップロード

PPAではサーバ上で各アーキテクチャ向けのバイナリを作成するため,アップロードするのは通常のバイナリパッケージではなくソースパッケージである必要があります。パッケージの作成方法については本連載第16回と同様ですが,パッケージビルドには以下のコマンドを使用してください。もちろんパッケージにはLauncphadに登録したGPG鍵を使用して署名を行っておく必要があります。

$ debuild -S -sa

パッケージのアップロードにはdputコマンドを使用します。dputがインストールされていない場合はsynapticからインストールを行うか,端末から以下のコマンドを実行してください。

$ sudo apt-get install dput

PPAにパッケージをアップロードするため,dputの設定ファイルを作成します。~/.dput.cfファイルを作成し,リポジトリの情報を記述します。incoming行を自分のアカウント名に変更して使用してください。

[my-ppa]
fqdn = ppa.launchpad.net
method = ftp
incoming = ~(自分のアカウント名)/ubuntu/
login = anonymous
allow_unsigned_uploads = 0

パッケージのビルドが完了していれば,(ソフトウェア名)_(バージョン)_source.changesというファイルが作成されているはずです。アップロード対象のリポジトリとこのファイルを引数として渡し,dputを実行することでアップロードが行われます。具体的には以下のようなコマンドを実行することになります。

$ dput my-ppa (ソフトウェア名)_(バージョン)_source.changes

パッケージがAcceptされるとLaunchpadよりメールで通知が行われます。その後パッケージのビルドが自動的に行われ,ビルドに成功すると

http://ppa.launchpad.net/(アカウント名)/ubuntu (ディストリビューション名) main

というリポジトリでパッケージが公開されることになります。

あとは[ソフトウェア・ソース]に上記のような自分のリポジトリのアドレスを追加することで,Synapticからパッケージのインストールが可能になります。

著者プロフィール

水野源(みずのはじめ)

Ubuntu Japanese Teamメンバー。理想のフリーデスクトップ環境を求めて東へ西へ……のはずが,気がついたら北の大地で就職していたインフラ寄りのエンジニア。最近レンズ沼にハマる。