Debian
引導一個 debian 建構環境並在沒有 root 權限的情況下建構源包
在 debian 上
squeeze
,我正在嘗試執行以下操作:
wheezy
從源儲存庫中獲取源包- 為多種架構引導
squeeze
chroot- 為多種架構(
i386
、、amd64
和)建構包all``any
我希望獲取、引導和建構操作都是可編寫腳本的、可重複的,並且可以作為普通使用者執行。對於環境設置,我想盡可能少地使用
root
帳戶(安裝必要的依賴項,也許還有一些visudo
東西)。如果可能的話,我想避免使用虛擬機(pbuilder withuser mode linux
)到目前為止,我已經用
pbuilder
(requireroot
)、debootstrap
(requireroot
) 嘗試了幾件事,但收效甚微。
因此,工作解決方案使用
pbuilder
andsudo
。
- 安裝兩者後,必須編輯
/etc/sudoers
文件(使用visudo
)並允許組中的使用者在沒有密碼的情況下pbuilder
執行。pbuilder
%pbuilder ALL=(ALL) NOPASSWD: /usr/sbin/pbuilder
- 將
pbuilder
組和您的建構使用者名添加builduser
到其中root@debian# groupadd pbuilder root@debian# gpasswd -a builduser pbuilder
現在,您將能夠以非 root 使用者身份引導 Debian
chroot
並建構軟體包。pbuilder
這是一個範例腳本
- 獲取作為第一個參數給出的源包(如
builduser
,使用該問題的答案)- 從原始碼建構包,用於
i386
和amd64
架構- 將它們上傳
dput
到腳本的第二個參數給出的外部儲存庫#/bin/bash set -e set -x THIS=`readlink -f ${0}` THIS_DIR=`dirname ${THIS}` PACKAGE=${1} TARGET_CODENAME=${2} ARCHS='i386 amd64' APT_CONF=${THIS_DIR}/tmp/etc/apt.conf pushd ${THIS_DIR}/src apt-get update -c ${APT_CONF} apt-get source ${PACKAGE} -c ${APT_CONF} popd for ARCH in ${ARCHS} do BUILD_DIR=${THIS_DIR}/build/${ARCH} sudo pbuilder --create --configfile ${BUILD_DIR}/pbuilderrc \ --buildresult ${BUILD_DIR}/ sudo pbuilder --build --configfile ${BUILD_DIR}/pbuilderrc \ --buildresult ${BUILD_DIR}/ ${THIS_DIR}/src/${PACKAGE}*.dsc dput ${TARGET_CODENAME} ${BUILD_DIR}/*.changes done