引导一个debian构build环境并构build没有root权限的源代码包

在debian squeeze ,我试图做到以下几点:

  • wheezy源代码仓库获取源代码包
  • 引导几个体系结构的squeeze chroot
  • build立几个体系结构( i386amd64allany

我希望获取,引导和构build操作都是脚本化的,可重复的,并以普通用户身份运行。 对于环境设置,我想尽可能less地使用root帐户(安装必要的依赖关系,也许一些visudo东西)。 如果可能的话,我想避免使用虚拟机(pbuilder与user mode linux

到目前为止,我已经尝试了几件事情与pbuilder (需要root ), debootstrap (需要root ),很less成功。

所以,工作解决scheme使用pbuildersudo

  • 安装两者后,必须编辑/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包,用于i386amd64体系结构

  • 将其上传到由脚本的第二个参数给定的外部存储库

 #/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