여러 버전의 사용자 정의 deb 패키지를 배포하기 위해 Debian 패키지 저장소를 만듭니다.

여러 버전의 사용자 정의 deb 패키지를 배포하기 위해 Debian 패키지 저장소를 만듭니다.

우리는 DEB 패키지로 패키징될 애플리케이션을 구축하고 있습니다. 우리는 그것을 사용할 수 있기를 바랍니다 apt-get.

이를 위해 우리는 조직 내에 자체 DEB 패키지 저장소를 배포할 계획입니다. (따라서 우리는 패키지만 호스팅하고 기존 외부 저장소를 미러링하지 않습니다.) 이 패키지 저장소는 조직 내의 모든 Linux 서버에서 단일 애플리케이션 패키지만 설치하는 데 사용해야 합니다.

이를 수행하는 방법(모범 사례 포함)을 설명할 수 있는 사람이 있습니까?

  • 패키지에 대한 최소 DEB 패키지 저장소를 어떻게 설정하고 새 버전이 출시되면 처리할 수 있습니까?
  • 조직 내의 사용자 정의 DEB 패키지 저장소 서버에서 이 단일 패키지를 얻으려면 Debian 서버를 설정하십시오.

답변1

수많은 문서 소스를 파헤친 후 나는 다음과 같은 해결책을 생각해 냈고 이를 공유합니다.

  1. 리포지토리를 호스팅하는 데 사용되는 머신에서 설명된 대로 개인 리포지토리를 설정합니다.우분투 문서, 하지만원하지 않는다해당 시스템에 source.list 항목을 추가하십시오.
  2. DEB 파일을 사용하는 모든 컴퓨터에서 사용할 수 있도록 웹 서버(예: Nginx 사용)를 통해 DEB 파일과 Packages.gz 파일이 포함된 디렉터리를 노출합니다.

  3. DEB 패키지를 가져올 머신에서 /etc/apt/sources.list서버를 가리키는 파일에 항목을 추가합니다(foobar를 자신의 URL로 교체). deb [trusted=yes] http://foobar/ /

  4. 달리기sudo apt update
  5. 자신만의 패키지를 설치 하려면 실행하세요 sudo apt install foobar(foobar를 자신의 패키지 이름으로 바꾸세요).

노트:이 설정은 서명된 패키지/저장소에서 제공하는 보호 없이 DEB 패키지를 호스팅합니다. 회사 방화벽 뒤의 보호된 서브넷에 있는 Teams 서버보다 더 많은 대상이 리포지토리를 사용할 수 있는 경우 리포지토리 및 패키지 서명을 구현해야 할 수 있습니다.

답변2

답변에 설명된 대로 dpkg-scanpackages를 사용하여 이 작업을 수동으로 수행할 수 있습니다. 그러나 이를 처리할 수 있는 더 높은 수준의 도구가 있습니다. 리포지토리 및 기타 항목 마이그레이션 및 서명도 지원하는 간단한 도우미 도구입니다.레플리카. 첫째, 다음과 같이 작동할 수 있습니다.

$ mkdir ~/repo
$ cd ~/repo
$ mkdir incoming conf repository
$ cat > conf/options <<EOF
morguedir +o/old-versions
outdir +b/repository
EOF
$ cat > conf/distributions <<EOF
Codename: stretch
Origin: <you>
Label: <you>
Description: <description of this repository>
Architecture: source amd64 i386
Components: main
SignWith: <your gpg key ID>
EOF
$ cat > conf/incoming <<EOF
Name: incoming
IncomingDir: incoming
LogDir: logs
TempDir: /tmp
Multiple: yes
Permit: older_version unused_files
Allow: stretch
EOF

이제 리포지토리에 패키지를 추가할 때마다 패키지(및 해당 .changes파일) 를 ~/repo/incoming디렉터리에 추가한 후 다음을 수행할 수 있습니다.

cd ~/repo
reprepro processincoming incoming

GPG 키 비밀번호를 묻는 메시지가 표시됩니다(비밀번호가 없는 키가 아닌 경우). 일단 입력하면 저장소가 최신 상태가 되고 서명됩니다.

Reprepro는 잘 문서화되어 있습니다.매뉴얼 페이지;자세한 내용을 알고 싶으시면 확인해 보시길 권합니다.

관련 정보