가정해보자:
- 로컬에 소스 저장소의 미러가 있습니다.
- 저는 제가 실행 중인 아키텍처(제 경우에는 i386)에 대해서만 빌드하고 싶습니다.
- 저는 커스터마이징에는 관심이 없습니다. 사실, 나는 생성된 바이너리 패키지가 가능한 한 공식 패키지에 가깝기를 원합니다. 그 이후로는 정리는 제가 책임지겠습니다. 나는 사용할 것 같아요레플리카.
- 가능한 한 간단하고 싶습니다.
답변1
데비안은 다운로드할 수 있는 바이너리 패키지를 만들기 위해 이미 내부적으로 이 작업을 수행하고 있으며 대부분의 도구가 배포판에 포함되어 있습니다. (일부 글루 스크립트를 제외한 모든 것을 생각합니다.)
관심을 가질 수 있는 도구는 다음과 같습니다.
debian-builder
: 소스에서 패키지 다시 빌드buildd
,buildd
: 일부 패키지를 자동으로 빌드합니다.pbuilder
:개인 패키지 빌더(chroot, 주로 데비안 개발자용)devel::debian
보다 일반적으로 는 또는works-with::software:source
( ) 표시가 있는 패키지를 찾으십시오aptitude search '?tag(devel::debian) | ?tag(works-with::software:source)'
.
답변2
어쩌면 이런 게 있지 않을까요?
#!/bin/bash
# This gets a list of all available packages
for i in $(dpkg -l \* | awk '/^[a-z]/ {print $2}')
do
# This downloads and unpacks the source.
# Any src packages already properly unpacked in the cwd won't be downloaded a second time.
apt-get source $i
apt-get build-dep -y $i
done
# This finds all buildable directories
for i in $(find . -name debian -type d | sed s/debian.*//g)
do
cd $i
debian/rules binary
cd -
done
이미 패키지가 있다고 말씀하셨지만 어떤 형식인지는 잘 모르겠습니다. 패키지의 모든 패키지를 올바르게 풀었다면 cwd
apt는 해당 패키지를 건너뛰고 다음 패키지로 이동합니다. -s
apt-get에 전달하여 명령을 테스트할 수도 있습니다.
빌드하려는 패키지와 동일한 버전을 사용하는 경우 거의 모든 패키지는 이와 같이 한 번에 빌드되어야 합니다.
많은 저장 공간과 많은 시간이 필요합니다.