데비안 저장소를 만드는 과정은 여러 가지 방법이 있는 것으로 알려져 있습니다. 물론, 데비안에서 제공하는 도구가 가장 데비안에 적합하겠지만, 잘 정리된 문서를 찾기가 힘들거나, 특정 도구는 설정하기가 쉽지 않을 수 있습니다.
물론, Creating and hosting my own Debian apt repo와 같이 수동으로 하나의 버전에 대한 저장소를 만들 수 있지만, 패키지가 많아질수록 관리가 귀찮을 수 있습니다.
게다가, 데비안의 여러 버전, 예를 들어, bullseye, bookworm, 등에 대한 지원을 고려하고 있다면, 기존 방법으로 가능한지 의문이고, 가능하더라도 보다 귀찮은 과정을 수행해야 할 수 있습니다.
한편, freight는 2014년 8월 이후로 원 저자의 활동이 중단되면서, 여러 문제점이 발생하였고, 이후 freight team에서 분기한 후에 유지/보수되고 있습니다.
이 도구는 여러 버전의 데비안을 지원하는 것으로 알려져 있으며, 설정 역시 매우 간단한 것으로 알려져 있습니다.
Installation
From a Debian archive
wget -O - https://swupdate.openvpn.net/repos/repo-public.gpg|sudo apt-key add -
echo "deb http://build.openvpn.net/debian/freight_team $(lsb_release -sc) main" | sudo tee /etc/apt/sources.list.d/freight.list
sudo apt-get update
sudo apt-get -y install freight
From a custom-made Debian package
git clone https://github.com/freight-team/freight.git
cd freight && dpkg-buildpackage -uc -us -b
sudo dpkg -i ../freight_<version>-<build>_all.deb
두 번째 방법으로 설치하는 것이 최근 변경된 사항을 사용할 수 있습니다.
Configurations
먼저, GNU Privacy Guard에 따라 암호 키를 만듭니다.
설정 파일은 기존 파일에서 복사해 옵니다:
- sudo cp /etc/freight.conf.example /etc/freight.conf
다음을 변경할 필요가 있습니다:
VARCACHE="/var/www/html/debian"
ORIGIN=""
LABEL=""
GPG=""
기본 값이 지정되어 있으므로, 참고해서 변경할 수 있습니다. 특히, VARCACHE는 웹 서버 등에서 보일 목록을 저장할 위치이므로 자신의 웹 서버의 설정에 맞도록 수정할 필요가 있습니다. 예를 들어, VARCACHE="/var/www/html/debian"와 같이 설정했다면, 웹 서버, 예를 들어 nginx에서 아래와 같이 해당 디렉토리를 목록화합니다. 이 설정은 기존의 웹 서버 설정에 따라 달라집니다.
root /var/www/html
location /debian/ {
autoindex on;
}
그런-다음 해당 디렉토리를 만들고 웹 서버를 재시작합니다.
- sudo mkdir -p /var/www/html/debian
- sudo systemctl restart nginx
이제 파일을 업로드합니다:
- sudo freight-add *.deb apt/trixie-dawoum/main
여기서, *.deb는 현재 디렉토리에 있는 모든 deb 파일을 말하며, 필요에 따라, 소스 패키지를 지정할 수도 있습니다. 그 뒤의 apt는 yum 등을 지원하는 것으로 알려져 있고, 데비안에서는 apt로 설정할 수 있습니다. 그 뒤의 bullseye-dawoum은 저장소 위치이고, main은 저장소 이름입니다.
그런-다음 모든 파일을 업로드했으면, 아래와 같이 목록(캐시)을 갱신합니다:
- sudo su -
- export GPG_TTY=$(tty)
- freight cache
Remove a package
패키지를 제거하기 위해, 라이브러리 디렉토리에서 패키지를 제거하고, 캐시를 업데이트해야 합니다. 예를 들어,
- rm /var/lib/freight/apt/bullseye-dawoum/main/vsftpd_3.0.3-12+b1.1_amd64.deb
- freight cache
Troubleshootings
rx.disposable
해당 모듈이 없다는 메시지가 나옵니다. python3-rx 패키지를 3.x 버전을 설치하고, 고정해 줄 수 있습니다. 또는 python3-rx 4.x 버전을 설치하고, 3.x 버전에서 rx를 원래 디렉토리에 복사해 둘 수 있습니다.
GPG location
사용자 디렉토리에서 찾지 않고, /root/.gnupg 아래에서 찾습니다. 다른 방법을 찾지 못해서, 기존의 디렉토리를 /root 아래로 복사하고, 아래와 같이 루트 권한을 얻어서 해결할 수 있습니다.
- sudo su -
GPG signing failed
다음 오류가 발생합니다: gpg: signing failed: Inappropriate ioctl for device 아래와 같이 환경 변수를 만듭니다:
- export GPG_TTY=$(tty)