自前パッケージを作成するだけだとレポジトリがないので依存関係のインストールに apt が使えないのでかなり面倒です。一つのパッケージならまだしも複数パッケージを管理するならなおさらです。また、ある自前パッケージに依存する別のパッケージをビルドする場合、ビルドする機材自体に自前パッケージのレポジトリがないとこれも一々手動で対応する必要があるので、これもまた面倒です。
そこで aptly を使ってレポジトリを作成したところほぼ期待通りの環境ができたので備忘録として挙げてみました。
早速設定です。最初は aptly をインストールし aptly の設定を行います。
今回は以上です。それでは。
そこで aptly を使ってレポジトリを作成したところほぼ期待通りの環境ができたので備忘録として挙げてみました。
早速設定です。最初は aptly をインストールし aptly の設定を行います。
sudo apt-get install aptly sudo mkdir /srv/aptly sudo chown -R user1000:user1000 /srv/aptly #edit ~/.aptly.conf # --snip root_dir: /srv/aptly # --snip続いて鍵を生成します。なおビルドおよびaptlyを実行するユーザはuser1000というユーザでおこなっています。
#login as user1000
gpg --full-generate-key
Please select what kind of key you want:
(1) RSA and RSA
# --snip
Your selection? 1
RSA keys ay be between 1024 and 4096 bits long.
What keysize do you want? (3072) 4096
Please specify how long the key should be valid.
#--snip
Key is valid for? (0) 3y
Key expires at Sun 23 Jul 2028 07:59:17 PM JST
Is this correct? (y/N) y
Real name: Example Stable Release Key
Email address: example-release@example.com
Comment: 13/trixie
You selected this USER-ID:
"Example Stable Release Key (13/trixie) <example-release@example.com>"
Change (N)ame, (C)omment, (E)mail or (O)kay/(Q)uit? O
# --snip
pub rsa4096 2025-07-24 [SC] [expires: 2028-07-23]
AAAABBBBCCCCDDDDEEEEFFFF1111222233334444
uid Example Stable Release Key (13/trixie) <example-release@example.com>
sub rsa4096 2025-07-24 [E] [expires: 2028-07-23]
つづいて作成した鍵からasc形式の公開鍵を配置しておきます。
gpg --export --armor -a AAAABBBBCCCCDDDDEEEEFFFF1111222233334444 > example-archive-trixie-stable.asc sudo cp -a example-archive-trixie-stable.asc /etc/apt/trusted.gpg.d sudo chown root:root /etc/apt/trusted.gpg.d/example-archive-trixie-stable.asc sudo chmod 644 /etc/apt/trusted.gpg.d/example-archive-trixie-stable.asc鍵の設定は以上ですが今回はレポジトリとビルドサーバは同一の機材で構成していますので、以下のようにしています。
sudo tee -a /etc/apt/sources.list <<EOF >/dev/null deb file:///srv/aptly/public/debian trixie main deb-src file:///srv/aptly/public/debian trixie main EOFapacheで公開する場合、/etc/apache2/sites-available/example-archive.conf は、最小限の構成の場合、以下のようにします。
<VirtualHost *:80>
ServerAdmin webmaster@example.com
DocumentRoot /srv/aptly/public
<Directory "/srv/aptly/public">
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
続いて aptly レポジトリを初期化します。
aptly repo create -distribution=trixie -component=main trixie-repo初期化が済んだら、dpkg-buildpackage や pbuilder 等でビルドしたディクトリに移動し、以下のようにしてレポジトリにデータを登録します。
aptly repo add trixie-repo .つづいてレポジトリを新規にパブリッシュします。以下の場合だと、/srv/aptly/public/debian 以下にレポジトリがパブリッシュされます。
aptly publish repo -component=main -gpg-key="AAAABBBBCCCCDDDDEEEEFFFF1111222233334444" -architectures="amd64,source" trixie-repo debian続いて以下のようにしてレポジトリを更新しパッケージを反映させます。
aptly publish -gpg-key="AAAABBBBCCCCDDDDEEEEFFFF1111222233334444" update trixie debianその他基本的なコマンドは以下の通りです。
# スナップショットの作成 aptly snapshot create trixie-xms-2025-07-24-a from repo xms-repo # スナップショットをパブリッシュ aptly publish snapshot -gpg-key="AAAABBBBCCCCDDDDEEEEFFFF1111222233334444" trixie-2025-07-24-a debian-2025-07-24-a #パブリッシュしたレポジトリを削除する場合 aptly publish drop trixie-xms debian #レポジトリを削除 aptly repo drop xms-repo #プール db を削除 aptly db cleanupaptly を使った基本的なレポジトリの作成方法は以上です。これで自前パッケージもaptでインストール・管理できるのでかなり便利になりました。
今回は以上です。それでは。
コメント
コメントを投稿