나는 이 cainteoir-engine
에 의존하는 pbuilder를 사용하여 빌드하는 두 개의 패키지 (cainteoir-engine
및 cainteoir-gtk
)를 가지고 있습니다.pbuilder를 사용하여 강제로 로컬 패키지를 업데이트하려면 어떻게합니까?
나는 로컬 종속성을 선택하는 pdebuild
이 있습니다. 그러나 빌드 스크립트 (예 : pdebuild --auto-debsign
을 통해 서명되지 않은 빌드에서 서명 된 빌드로 변경됨)를 변경하면 pbuilder --update
이후에 변경 사항을 적용하지 않습니다.
버전 번호를 변경하지 않고 pbuilder chroot에서 사용하는 로컬 debian 파일을 업데이트하는 방법이 있습니까? (패키지 테스트/개발을위한 로컬 테스트 빌드이므로)?
나는 기본 chroot를 이미지를 업데이트 할 pbuilder --update --override-config
으로 --bindmounts
및 --othermirror
옵션을 사용하고 있습니다. dpkg-scanpackages
을 사용하여 로컬 Packages.gz
파일을 생성합니다. 그것이 데비안 파일에 서명하지 않도록 조사를
doscanpackages() {
pushd $1
dpkg-scanpackages . /dev/null | gzip -9 > Packages.gz
popd
}
dopbuild() {
COMMAND=$1
ARCH=$3
case "$2" in
stable|wheezy)
DIST=debian
RELEASE=wheezy
;;
testing|jessie)
DIST=debian
RELEASE=jessie
;;
unstable|sid)
DIST=debian
RELEASE=sid
;;
precise|quantal|raring|saucy|trusty)
DIST=ubuntu
RELEASE=$2
;;
*)
echo "Unknown distribution release : $1"
exit 1
;;
esac
case "${DIST}" in
debian)
MIRROR=ftp://mirror.ox.ac.uk/debian/
KEYRING=/usr/share/keyrings/debian-archive-keyring.gpg
;;
ubuntu)
MIRROR=ftp://archive.ubuntu.com/ubuntu/
KEYRING=/usr/share/keyrings/ubuntu-archive-keyring.gpg
;;
esac
REF=${DIST}-${RELEASE}-${ARCH}
BASETGZ=${PBUILD_DIR}/${REF}.tgz
OUTPUT=${PBUILD_DIR}/${REF}
shift
shift
shift
case "${COMMAND}" in
create|update)
if [[ -e ${BASETGZ} ]] ; then
sudo pbuilder --update --override-config --distribution ${RELEASE} --mirror ${MIRROR} --basetgz ${BASETGZ} --debootstrapopts "--keyring=${KEYRING}" --bindmounts "${OUTPUT}" --othermirror "deb file:${OUTPUT} ./"
else
mkdir -pv ${PBUILD_IMGDIR}
sudo pbuilder --create --distribution ${RELEASE} --mirror ${MIRROR} --basetgz ${BASETGZ} --debootstrapopts "--keyring=${KEYRING}" --bindmounts "${OUTPUT}" --othermirror "deb file:${OUTPUT} ./"
fi
;;
build)
mkdir -pv ${OUTPUT}
dopredebbuild ${RELEASE}
if [[ ! -e builddeb.failed ]] ; then
(pdebuild --buildresult ${OUTPUT} [email protected] -- --basetgz ${BASETGZ} --debootstrapopts "--keyring=${KEYRING}" --bindmounts "${OUTPUT}" || touch builddeb.failed) 2>&1 | tee build.log
fi
if [[ ! -e builddeb.failed ]] ; then
doscanpackages ${OUTPUT}
fi
dopostdebbuild ${RELEASE}
;;
esac
}