2021년 3월 27일에 업데이트하였습니다.
tian 을 편리하게 업데이트할 수 있도록 데비안 stable 저장소를 만들어보겠습니다.
결론부터 말씀드리자면 저장소 구조는 다음과 같습니다.
repo
└── dists
└── stable
├── InRelease
└── main
└── binary-amd64
├── Packages
└── tian_2021.03.27_amd64.deb
dists
, stable
, main
, binary-amd64
디렉토리가 필요합니다.
stable
, main
디렉토리 이름은 임의로 만들 수 있으나,
stable
, main
이름을 변경하면 소스 리스트에 반영해야 합니다.
자, 그럼 이제 작업을 시작합니다.
mkdir -p repo/dists/stable/main/binary-amd64
repo/
└── dists/
└── stable/
└── main/
└── binary-amd64/
binary-amd64
디렉토리에 복사합니다.cp path/*.deb repo/dists/stable/main/binary-amd64
Packages
파일을 만듭니다.apt-ftparchive
명령을 이용합니다. dists
의 상위 디렉토리에서 명령을 하셔야 합니다. 여기서는 repo
디렉토리가 되겠습니다.
cd repo
apt-ftparchive packages dists/stable/main/binary-amd64/ > \
dists/stable/main/binary-amd64/Packages
InRelease
파일을 만듭니다.4.1 Release
파일의 헤더를 작성합니다.
echo "Codename: stable" > Release
echo "Architectures: amd64" >> Release
4.2 Release
파일에 내용을 추가합니다.
apt-ftparchive release dists/stable >> Release
4.3 gpg 키를 만듭니다.
이미 키가 있다면 그걸 사용하고, 없으면 아래처럼 만듭니다.
gpg --full-generate-key
4.4 Release
파일에 싸인하여 InRelease
파일을 생성합니다.
gpg --clear-sign -o InRelease Release
rm Release
4.5 InRelease
파일을 dists/stable/
에 위치시킵니다.
mv InRelease dists/stable/
4.6 공개키를 내보냅니다.
gpg --armor --export > nimfsoft.asc
이제 작업이 거의 다 끝났습니다.
아래 소스리스트는 /etc/apt/sources.list
맨 마지막에 추가하거나,
파일로 만들어서 /etc/apt/sources.list.d/
디렉토리에 추가하는 것도 괜찮습니다.
deb file:/path/repo stable main
공개키를 설치합니다.
cat nimfsoft.asc | sudo apt-key add -
tian 패키지를 설치합니다.
sudo apt update
sudo apt install tian
tian
은 배포판 공식 저장소에 들어있는 패키지가 아니기 때문에 사용자분들께 소스리스트 등록과 공개키
설치에 대해 안내하면 사용자분들께서 소스리스트, 공개키 수동 설치에 대해 불편함을 느낄 것이라 생각합니다.
이를 자동화할 수 있는 방법이 있습니다.
debian/*
파일들은 deb
패키지를 제작할 때 사용되는 파일들입니다. 이 중 debian/postinst
파일은 설치 후에 실행되는 스크립트입니다. 이 파일에 아래 내용을 넣고 패키지를 만들면 소스리스트 등록과
공개키 설치가 자동화됩니다.
#!/bin/sh
set -e
mkdir -p /etc/apt/sources.list.d
echo "deb [arch=amd64] https://www.nimfsoft.com/downloads/debian stable main" > \
/etc/apt/sources.list.d/tian.list
KEY=\
"-----BEGIN PGP PUBLIC KEY BLOCK-----
mQINBF7BTVIBEACu12deRrl9vFVgcMJVrUMSloRCcL+f2gXQrmS4xpuDphi5dyq9
bTNEAfIKLingklxoP0RiiNGoVq6x1ga5TV2t2lEYKUf1mCuanx/U0nuhj7MRDhhg
18+/VhWHi2bknY78N0Y+qEEuHPCqcSZ1y2jIypHCJG3AHfbAzgnfuMtvVKj4n+wS
brg0ZJJR0fXDjKS7zxruy5wPFLGGCK4uIRI33lLKHerNEtDYz09kvwSviboneP4m
mi/VHabhGGWzJXlfDmHwywN/aKJm+TDqzzTbUw16ykFzbc7hzy/rbcc4eLV0kNph
26T5jDVyotl9UfJoNp4HgalUSUa0NuHhrB+jHrTkGs0l/XfWS70a2GtwUc4eKfqw
Asz50Npw0LYLVYPzTchlyyd6vn2tnFuo3aJsr/Lgmdof56FM1YQcIYPcr8WVDhI4
TRgHOkpuAjKnyxicwNl5BNi8SoqvO90v6GRd/aMdZTDZmWrOvpC583o4T9wKlO+e
J4b2LPMueCgojgNiKyEohqNE+QP1HFZ5j62SGtdUmfB/F1C5ge/q9fhYHh/SEXA+
LvwXOX3TPNNXJLV94/cvSsYtqG3N0CEsvde+cf3qmt9uOlCDeXtWkleM4bxiUnaG
3+D2t6CQycP5htEYP4pl+PBBtvjkjX3EvWRZH+XjE/Hj8OPg9pMWFxxleQARAQAB
tC5Ib2RvbmcgS2ltIChzaWduaW5nIGtleSkgPGhvZG9uZ0BuaW1mc29mdC5jb20+
iQJOBBMBCAA4FiEEMJ6A4bfMI5IEj/1LI8DSNjO/OXQFAl7BTVICGwMFCwkIBwIG
FQoJCAsCBBYCAwECHgECF4AACgkQI8DSNjO/OXQEYA/7B0d20Z0k5x/UXgbgddJN
D8ztabPbaa9WCDF+dD+twIw753UQ7zVxxgzBCOfSUJP+ny7aqjLkV33WTYhj7GHi
LKq0wj70hrW7zNgwzSygB5kijnS2cNXKb/pQSg92XIm5ql/Z+oE08uCuwvo4VAua
zlOG78UC7SKXKoOg0pNbH12nwVJ0Nf8MK5KVEz0J1CQQ0nYZrgg+5Pbog/j3KKUT
oUce2wGVF5ykMXrxxyejSWfTByBWDaA+gEFvGH707HVZn3mpQtV4Sw+GJIII9iST
QqyEaqkEjJkLdIdjwjHUr04WMpaWQ5SyRb5oLkFe0JxFHRseftDWOZnP3DpHhi4W
22QlDqw+rW93UhqcZ4FWv7LnxjYUB3FTZWQcddV0UowW8jp/RsWHQOkdrq3PJsgv
1vFtdS2bP0vf24kukd6L6CwbkpsRO7+8KK5tMjIR+HJZeHvE02/x3AC8l6Lu4/CR
fFrQ0RAALl5wjVrAIco61U0eDJVXiu4IBYbk+aqyfTdvC5NFIVXttz1ZV3CyMBGG
3Cx61wzy8Dn8HwysiNGE/LczrP/qJDf7P1lbSyVW3dZuLAD8e4rA2EZ5RIhWqrhk
D4BJ4qo0acqbgaVgZaA9zi3Blb3Ql30hnXJ2Jk7cZjkmNlOriRV9iiks9T/X0poo
TQyBtQtQ/zChzHKGCz0cl54=
=F3n9
-----END PGP PUBLIC KEY BLOCK-----"
echo "$KEY" | gpg --dearmor > /etc/apt/trusted.gpg.d/nimfsoft.gpg
debian/prerm
파일은 삭제 후에 실행되는 스크립트입니다. 이 파일에 아래 내용을 넣고 만들어진
tian 패키지를 삭제할 때 등록된 소스리스트와 공개키가 삭제됩니다.
#!/bin/sh
set -e
rm -f /etc/apt/sources.list.d/tian.list
rm -f /etc/apt/trusted.gpg.d/nimfsoft.gpg
지금까지 작업한 것을 https://www.nimfsoft.com/downloads/debian 에 올립니다.
소스 리스트에서 https://www.nimfsoft.com/downloads/debian
이 부분이 위에 언급한
file:/path/repo
에 대응되는 부분입니다.
tian 저장소, tian 패키지는 위와 같은 방법으로 만들었습니다. 그래서 tian 패키지를 설치하면 소스리스트, 공개키가 자동으로 설치되기 때문에 그 다음부터는 배포판에서 제공하는 패키지 관리자를 통하여 편리하게 업데이트를 하실 수 있습니다.