背景
Arch Linux AUR へ展開する中で、
- Arch の最小環境
- AUR の更新フロー
- SSH / git / Docker の罠
を一通り踏んだので、
**「次回から 10 分で終わらせるための実務手順」**としてまとめます。
前提条件
- Docker が使える
- AUR アカウント作成済み
- SSH 公開鍵を AUR に登録済み
- upstream 作者として AUR を更新する想定
1. AUR メンテ専用 Arch Docker イメージを作る
Dockerfile(1 回だけ)
FROM archlinux:latest
RUN pacman -Syu --noconfirm \
&& pacman -S --noconfirm \
base-devel \
git \
namcap \
pacman-contrib \
vim \
openssh \
sudo \
&& pacman -Scc --noconfirm
RUN useradd -m builder \
&& passwd -d builder \
&& echo "builder ALL=(ALL) NOPASSWD: ALL" > /etc/sudoers.d/builder
USER builder
WORKDIR /home/builder
ビルド:
docker build -t aur-arch-aurtools .
2. SSH 鍵は「ホスト管理」で使う(重要)
❌ やってはいけない
- SSH 秘密鍵入りの状態で
docker commit - イメージに鍵を焼き込む
✅ 正解
docker run --rm -it \
-v "$HOME/.ssh:/home/builder/.ssh:ro" \
-v "$HOME/.gitconfig:/home/builder/.gitconfig:ro" \
aur-arch-aurtools bash
- 鍵はホスト管理
- コンテナは使い捨て
- セキュリティ事故ゼロ
3. AUR に更新する手順(毎回ここから)
0️⃣ バージョン指定
su - builder
export PKG=xxx
export VER=xxx # 新しい upstream バージョン
1️⃣ AUR リポジトリ取得
mv -i ${PKG} ${PKG}.bk
git clone ssh://aur@aur.archlinux.org/${PKG}.git
cd ${PKG}
2️⃣ PKGBUILD を更新
sed -i "s/^pkgver=.*/pkgver=${VER}/" PKGBUILD
sed -i "s/^pkgrel=.*/pkgrel=1/" PKGBUILD
3️⃣ checksum 更新(必須)
updpkgsums
4️⃣ ビルド & テスト
makepkg -Cfs --check
5️⃣ namcap チェック(通過必須)
namcap PKGBUILD
namcap *.pkg.tar.zst
✅ 無出力が正解
6️⃣ .SRCINFO 更新(超重要)
makepkg --printsrcinfo > .SRCINFO
確認:
grep pkgver .SRCINFO
7️⃣ commit & push
git add PKGBUILD .SRCINFO
git commit -m "Update to ${VER}"
git push
4. AUR Web に作者コメントを書く(推奨)
Trusted User からの印象がかなり良くなります。
5. よく踏む地雷まとめ
❌ .SRCINFO unchanged
→ .SRCINFO を commit していない
❌ perllocal.pod が出る
→ NO_PERLLOCAL=1 を Makefile.PL に渡す
perl Makefile.PL INSTALLDIRS=vendor NO_PERLLOCAL=1
❌ empty directory 警告
→ PKGBUILD にこれを入れる
options=(!emptydirs)
まとめ
- Arch AUR メンテは Docker 化が正解
- 鍵はホスト、環境はコンテナ
- namcap 警告ゼロは必須
-
.SRCINFOを忘れると何も反映されない