스테이징 환경을 사용하여 로컬 적절한 저장소 만들기

스테이징 환경을 사용하여 로컬 적절한 저장소 만들기

저는 reprepro를 사용하여 적절한 저장소를 만들려고 합니다. 대부분의 경우 매우 간단합니다. 저는 스테이징 트리의 구조가 마음에 들어서 이 기사를 참고 자료로 사용해 왔습니다.

http://vincent.bernat.im/en/blog/2014-local-apt-repositories.html

그러나 나는 매우 간단한 것을 이해할 수 없는 것 같습니다. 아래 기사의 conf/distributions 예제를 사용하면 패키지를 가져올 때 항상 기본으로만 이동한다는 사실이 혼란스럽습니다. Precision-staging 및 Precision-prod라는 디렉터리가 없나요? 내가 원하는 것은 테스트되지 않은 패키지와 프로덕션용 다른 패키지를 동일한 저장소에 넣을 별도의 장소를 갖는 것입니다. (/opt/packages/pool/trusty-prod,/opt/packages/pool/trusty-stage)

꼭두각시를 사용하여 /etc/apt/sources.list.d/를 통해 필요에 따라 클라이언트에게 이들 중 하나를 가리킬 수 있습니다.

이 기사를 완성하거나 이해하는 방법을 전혀 모르나요?

Dailymotion Precise packages (staging)
Origin: Dailymotion 
Label: dm-staging   
Suite: precise-staging
Codename: precise-staging
Architectures: i386 amd64 source
Components: main role/dns role/database role/web # ➊
Description: Dailymotion Precise staging repository
Contents: .gz .bz2
Tracking: keep
SignWith: yes
NotAutomatic: yes # ➋
Log: packages.dm-precise-staging.log
 --type=dsc email-changes

Dailymotion Precise packages (prod)
Origin: Dailymotion # ➌
Label: dm-prod      # ➌
Suite: precise-prod
Codename: precise-prod
Architectures: i386 amd64 source
Components: main role/dns role/database role/web # ➊
Description: Dailymotion Precise prod repository
Contents: .gz .bz2
Tracking: keep
SignWith: yes
Log: packages.dm-precise-prod.log

답변1

단 4단계만으로 간단한 저장소를 직접 설정하세요

1. dpkg-dev 설치
2. 패키지를 디렉터리에 넣습니다
. 3. 패키지를 검색하는 스크립트를 만들고 apt-get update가 읽을 수 있는 파일을 만듭니다
. 4. source.list에 줄을 추가하고 저장소를 가리킵니다.

dpkg-dev 설치

터미널에 입력

sudo apt-get install dpkg-dev

목차

패키지를 저장할 디렉터리를 만듭니다. 이 예에서는 다음을 사용합니다.

 /usr/local/mydebs.  


sudo mkdir -p /usr/local/mydebs

이제 방금 만든 디렉터리로 패키지를 이동합니다.

이전에 다운로드한 패키지는 일반적으로 시스템의 /var/cache/apt/archives 디렉터리에 저장됩니다. apt-cacher를 설치한 경우 /packages 디렉터리에 추가 패키지가 저장됩니다.

스크립트 업데이트-mydebs

이것은 간단한 세 줄입니다.

#! /bin/bash
 cd /usr/local/mydebs
 dpkg-scanpackages . /dev/null | gzip -9c > Packages.gz

위 내용을 잘라서 gedit에 붙여넣고 ~/bin에 update-mydebs로 저장합니다. (물결표 "~"는 홈 디렉터리를 나타냅니다. ~/bin이 존재하지 않으면 새로 만드십시오. Ubuntu는 해당 디렉터리를 PATH에 넣을 것입니다. 이것은 개인 스크립트를 넣기에 좋은 장소입니다.) 다음으로 스크립트를 실행 가능하게 만듭니다.

 chmod u+x ~/bin/update-mydebs

스크립트 작동 방식: dpkg-scanpackages는 mydebs의 모든 패키지를 살펴보고 출력을 압축한 후 apt-get update가 읽을 수 있는 파일(Packages.gz)에 씁니다(이에 대해 자세히 설명하는 아래 참조 참조). /dev/null은 빈 파일입니다. 이 경우에는 실제로 필요하지 않은 패키지에 대한 추가 정보가 포함된 오버레이 파일을 대체합니다. 이에 대해 알고 싶다면 deb-override(5)를 참조하세요.

소스.목록

행 추가

deb file:/usr/local/mydebs ./

/etc/apt/sources.list에 추가하면 완료됩니다.

디스크 옵션

deb가 포함된 디렉터리를 CD에 구워 저장소로 사용할 수 있습니다(컴퓨터 간 공유에 이상적). CD를 저장소로 사용하려면 다음을 실행하십시오.

sudo apt-cdrom add

저장소 사용

mydebs 디렉토리에 새로운 deb를 넣을 때마다 다음을 실행하십시오.

sudo update-mydebs
sudo apt-get update

이제 Synaptic, aptitude 및 apt 명령(apt-get, apt-cache 등)을 사용하여 로컬 패키지를 조작할 수 있습니다. apt-get 설치를 시도하면 종속성이 충족되는 한 모든 종속성이 해결됩니다.

잘못 만들어진 패키지를 만드는 것은 실패할 수 있지만 dpkg 지옥을 견디지는 못할 것입니다.

관련 정보