4
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

株式会社ACCESSAdvent Calendar 2022

Day 7

debパッケージを作ってlaunchpadでPPAとして公開するまでの手順

Last updated at Posted at 2022-12-06

ACCESS Advent Calendar 2022 の7日目になります。

みなさんは自分で作ったプログラムをaptでインストールできたらいいのにな。と思ったことはありませんか?
私は時々インストール手順とかもう書きたくない。aptでインストールして設定部分だけドキュメントにしたい!!
と何度か思ったことがあり、自分でレポジトリを作成してホストしたことがあります。

しかし、launchpadを使えばセルフホストなんてしなくていいんです。
ソースパッケージを登録すればビルドもやってくれます。

なのでそのやり方について書いていこうと思います。
英文 https://packaging.ubuntu.com/html/getting-set-up.html

launchpadのアカウントの作り方はもう覚えてないのでその後から…

やることは下記

  • SSHキーの登録
  • GPGキーの登録 - PPAの作成
  • ソースパッケージの作成
  • ビルドの確認
  • アップロード

sshキーの登録

下記のボタンを押してsshの公開鍵を登録します。流石に今どき持ってないということはないと思うので作り方は割愛
image.png

テキストの公開鍵をコピペしてImport Public Keyを押す
image.png

GPGキーの登録

まずはGPGキーの作成

gpg --gen-key

ubuntuのキーサーバーに転送します

gpg --send-keys --keyserver keyserver.ubuntu.com <KEY ID>

launchpadのアカウントにGPGキーの紐付け

作成したGPGキーのフィンガープリントを表示します。

gpg --fingerprint <メールアドレス>

OpenGPG keysの横のマークから
image.png

GPGの登録ページに行きます。(途中アカウントの再ログインがある場合があります)
image.png

ソースパッケージの作成

ソースパッケージを作成します。

まずパッケージ作成時に自動でGPGでサインしてくれるように環境変数を設定します。

export DEBFULLNAME="hisayoshi suehiro"
export DEBEMAIL=<メールアドレス>

今回はサンプルとしてGNU Helloを使います。
helloパッケージ自体はすでに登録されているのでリネームしてbolshelloとしました。

wget -O hello-2.10.tar.gz "http://ftp.gnu.org/gnu/hello/hello-2.10.tar.gz"
mv hello-2.10 bolshello-2.11
tar czvf bolshello-2.11.tar.gz bolshello-2.11/

ソースパッケージを作成します。
ソースパッケージは dh_make を利用してテンプレートを作成します。 cmake,autotools,makeなどメジャーなビルドツールは自動検出してくれます。パッケージタイプは今回は "s" となります。

dh_make -f ../../pkg_tmplate/bolshello-2.11.tar.gz 
rm debian/*.ex

ビルド時にcleanを走らせようとして失敗するので debian/rules に下のように追記します。override_で始まるこれはパッケージのビルド時の動作を変更します。

override_dh_auto_clean:

依存関係に"gettext, texinfo,"をdebian/controlに追記し、ubuntuのバージョン名とパッケージセクションを変更します。
バージョンとパッケージセクションが存在しているものでないと launchpad が受け入れてくれないので注意してください。

sed -i "s/UNRELEASED/jammy/" debian/changelog
sed -i "s/debhelper-compat/gettext, texinfo, debhelper-compat/" debian/control
sed -i "s/unknown/devel/" debian/control
sed -i "s/\<insert the upstream URL, if relevant\>/http://www.lnc.jp/" debian/control

debuild -S

以上でソースパッケージが作成できます。

ビルドの確認

作成したソースパッケージがビルドできるか確認します。

pbuilder-dist jammy build bolshello_2.11-1.dsc

ビルドが成功すると ~/pbuilder/jammy_result/ 以下にパッケージが生成されます。

アップロード

サインがされていれば下記コマンドでソースを転送することでパッケージがビルドされて公開されます。

dput ppa:bols-blue/hello bolshello_2.10-1_source.changes

初回のみ、しばらくの間(数時間)エラーが出るので気長に待ちましょう。

以上で launchpad で PPA として公開できるようになりました。

4
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?