我们假设:
- 我本地有一个源存储库的镜像。
- 我只想针对我正在运行的架构进行构建,在我的例子中是 i386。
- 我对定制不感兴趣。事实上,我希望生成的二进制包尽可能接近官方的。从那时起,我将负责它们的组织方式。我想我会用复制品。
- 我希望它尽可能简单。
答案1
Debian 已经在内部这样做了,以构建可供下载的二进制包,并且大多数工具都在发行版中。 (我认为除了一些胶水脚本之外的所有内容。)
您可能感兴趣的工具包括:
debian-builder
:从源代码重建包buildd
,buildd
: 自动构建一些包pbuilder
:个人软件包构建器(在 chroot 中,主要面向 Debian 开发人员)- 更一般地说,查看标记为
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 来测试命令。
如果您使用与尝试构建的版本相同的版本,几乎所有包都应该像这样一次性构建。
您将需要大量存储空间和大量时间。