나는 대부분의 경우 매우 간단한 reprepro를 사용하여 적절한 저장소를 만들려고 노력하고 있습니다. 저는 스테이징 트리 구조가 마음에 들어서 이 글을 참고 자료로 활용해 왔습니다.
http://vincent.bernat.im/en/blog/2014-local-apt-repositories.html
그러나 나는 아마도 매우 간단한 것에 대해 머리를 감쌀 수 없는 것 같습니다. 아래 기사의 conf/distributions 예제를 사용하면 패키지를 가져올 때 항상 기본으로만 이동한다는 사실이 혼란스럽습니다. 정확한 스테이징 및 정확한 생산이라는 디렉토리가 없습니다. 내가 하려는 것은 테스트되지 않은 패키지와 프로덕션용 패키지를 동일한 저장소에 넣을 별도의 장소를 갖는 것입니다. (/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. 저장소를 가리키는 소스 목록에 한 줄을 추가합니다.
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에 추가하면 완료됩니다.
CD 옵션
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 지옥을 겪지는 않았을 것입니다.