在debian squeeze ,我试图做到以下几点:
wheezy源代码仓库获取源代码包 squeeze chroot i386 , amd64 , all和any ) 我希望获取,引导和构build操作都是脚本化的,可重复的,并以普通用户身份运行。 对于环境设置,我想尽可能less地使用root帐户(安装必要的依赖关系,也许一些visudo东西)。 如果可能的话,我想避免使用虚拟机(pbuilder与user mode linux )
到目前为止,我已经尝试了几件事情与pbuilder (需要root ), debootstrap (需要root ),很less成功。
所以,工作解决scheme使用pbuilder和sudo 。
安装两者后,必须编辑/etc/sudoers文件(使用visudo ),并允许组pbuilder用户无需密码即可运行pbuilder 。
%pbuilder ALL=(ALL) NOPASSWD: /usr/sbin/pbuilder
将pbuilder组和您的构build用户名builduser到它
root@debian# groupadd pbuilder root@debian# gpasswd -a builduser pbuilder
你现在可以引导一个Debian chroot并使用pbuilder作为非root用户来构build软件包。
这是一个示例脚本
获取作为第一个参数给出的源代码包(作为builduser ,使用该问题的答案)
从源代码构build包,用于i386和amd64体系结构
将其上传到由脚本的第二个参数给定的外部存储库
#/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
尝试使用“ fakeroot ”程序。 这个程序的用法 – 只是使用sudo。
Fakeroot存在于debian repo中,试试sudo apt-get install fakeroot