나만의 커스텀 우분투 리믹스를 만드는 데 관심이 있고 우분투 미니 리믹스 ISO 로 그렇게 해왔습니다 .
이를 위해이 가이드 와 유사한 방식으로 디스크 이미지와 chroot를 마운트합니다 .
내 빌드의 디렉토리 계층 구조는 다음과 같습니다.
home
|
\builds
|
+build(n)
| |
| +mnt
| +extract-cd
| +edit
| \&
|
+build(n+1)
| |
| \&
|
\sources (various debfiles/ISOs)
각 빌드에는 $ HOME이 ./edit/root로 설정되어 있으므로 상위 계층 (./mnt, ./extract-cd 등)은 chroot 환경에 액세스 할 수 없습니다.
chroot에서 다운로드 한 패키지를 예를 들어 ~ / builds / cache (또는 더 좋게는 ~ / builds / cache / [ubuntu-version]) 디렉터리에 미러링 할 수있는 방법이 있습니까? 다른 빌드의 저장소로 사용됩니까?
이러한 설정은 아직 저장소에 다운로드 / 미러링되지 않은 패키지 만 웹에서 가져와야하기 때문에 많은 대역폭을 절약 할 수 있습니다.
어쨌든, 모든 제안 / 도움에 미리 감사드립니다.
나는 여기 에서 몇 가지 정보와 함께 user7134의 답변을 사용했습니다 .
그의 대답이 내가 생각했던 것을 완전히 충족시키지 못했기 때문에 나는 내 대답을 쓰고있다. 그럼에도 불구하고 나는 그에게 바운티를 주겠다. 그것이 나를 올바른 길로 향하게했기 때문이다.
문제를 해결하는 방법은 다음과 같습니다. build(n)
디렉토리로 cd-ing 한 후 빌드로 chrooting하기 전에 다음을 실행합니다.
`sudo mount --bind /home/[username]/builds/cache edit/var/cache/apt/archives`
이것은 chroot 된 빌드가 다운로드하는 패키지를 효과적으로 캐시합니다.
정상적으로 빌드를 진행하십시오. 아직 리포지토리를 만들 필요가 없습니다.
빌드가 끝나면 마운트를 해제하고 chroot를 청소할 때 다음을 입력합니다.
umount /var/cache/apt/archives
그런 다음 향후 빌드에서 사용할 저장소를 만들 수 있습니다.
이렇게하려면 repobuild.sh,
다음과 같은 파일 을 만듭니다 .
#! /bin/bash
cd /home/[username]/builds/cache
dpkg-scanpackages . /dev/null | gzip -9c > Packages.gz
스크립트를 실행 chmod u+x /home/[username]/repobuild.sh
하고 실행하여 스크립트를 실행 가능하게 만듭니다 ./home/[username]/repobuild.sh
새로운 빌드로 chroot 환경에 준비 마운트 확인하고 가야 /home/[username]/builds/cache
에 edit/var/cache/apt/archives
위 그림과 같이.
Chroot edit
한 다음 추가
deb file:/var/cache/apt/archives ./
...에 /etc/apt/sources.list
apt-get update를 실행하면 완료됩니다. 이제 apt-get install [packagename],
평소처럼 입력하여 캐시 된 패키지를 사용할 수 있습니다 .
패키지가 cache
디렉토리에 추가 될 때마다 repobuild.sh
캐시 된 패키지를 사용하려면 다시 실행해야합니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다