自迁移出 MediaWiki 以来,本页内容尚未经过审查。如果您愿意帮忙,请查看帮助指南!
本节内容已经过时,可能具有误导性或无效。请谨慎对待这里的任何说明。如有疑问,请向社区求助。
此页面仅针对那些对 debian 子目录下的脚本如何工作感兴趣的人 - 这可能没有人,所以此页面主要是为了提醒我自己。
FIXME:将有关配置脚本的信息添加到此页面
在2010年3月的黑客马拉松上,我对旧的包装构建机器做了很多改变。旧系统存在许多问题,包括:
- 构建一个整体包;特别是,这意味着许多自由软件许可证混合在一个层次中。
- 一堆太多 Debian main / Ubuntu 中已经可用的组件。
- 整体包中包含一些非免费组件。 -阑我发布新版本时,我都必须对之前的版本分支进行变基。这很乏味,有时甚至很困难,而且没有什么特别的理由不直接从master构建。
从那时起,我们的 Google Summer of Code 学生 Yap Chin Kiet 和 Johannes Schindelin 致力于推断在斐济为 Fiji Updater 的 jar 和类文件之间的依赖关系,因此我们重用此代码来推断可以基于包的依赖关系。
改进后的系统描述如下。 警告:此构建流程 git 仓库中删除文件,使用“rm -rf”删除子模块,并采取您不在工作仓库中发生的各种其他步骤。您需要一个充分的理由来执行这些步骤 - 如果您重建 Debian 仓库,那么“apt-get source fiji”就是您的朋友希望不要执行这些步骤。 如果您不打算尝试这些实验版本,/etc/apt/sources.list 的相关行是:
deb https://downloads.imagej.net/fiji/apt-experimental/ ./
deb-src https://downloads.imagej.net/fiji/apt-experimental/ ./
这些的目标是 2010 年 8 月之后的 Ubuntu 10.04 (Lucid Lynx) 和 Debian 测试 (squeeze)。
简短版本
主要是为了提醒自己,构建新包装的快速方法是:
- 克隆一个新的 fiji.git,初始化并更新正确的子模块 [修复:记录需要哪些子模块,目前在
debian/TODO中提及] - 运行
debian/complete-build。如果出现任何问题,您可以使用debian/build-command重试构建。在重试debian/complete-build之前,请确保您已提交更改,因为之后您运行git reset --hard需要来清理树,以便debian/complete-build乐意重试… - 假设您在 amd64 计算机上构建,请运行
debian/build-in-i386-chroot构建 i386。(chroot 可以使用 debian/create-i386-chroot.py 一次性创建,但您仍然需要仔细定制 /etc/schroot/schroot.conf ) - 使用
debian/upload-to-pacific上传新版本的坚果。
更长的版本
克隆 fiji.git 的新副本
(这可能会让你觉得这不是一个非常 git 风格的第一步,但是构建过程相当严格地删除了子模块和忽略的文件,而且我不希望人们因为遵循这些说明而失去工作的风险。)
使用以下命令重新克隆存储库:
git clone https://github.com/fiji/fiji
…然后初始化并更新以下子模块:
git submodule update --init modules/AutoComplete \
modules/ImageJA \
modules/RSyntaxTextArea \
modules/plugins/trakem2 \
modules/bio-formats \
modules/commons-math \
modules/ij-plugins \
modules/imglib \
modules/mpicbg \
modules/tcljava \
modules/weka
debian/complete-build 调用什么
####检查git状态是否干净
如果您刚刚克隆了一个新副本(如上所述),则这不是必需的,但在其他情况下它可能很有用:
debian/update-debian.py --check-git-clean
删除非自由和不需要的组件
运行以下命令:
debian/update-debian.py --clean
这应该删除非自由和不必要的组件,并重写 Fakefile 以删除对这些组件的引用。
生成构建命令脚本
实际上用于构建 Fiji 的构建命令脚本需要从 Fakefile 生成。您可以通过以下方式执行此操作:
debian/update-debian.py --generate-build-command
构建源代码树(总量生成控制文件)
不幸的是,为了从 1 中基于文件的依赖项准确生成 Debian 基于包的依赖项,我们需要构建完整的树,以便找到所有需要分配给包的生成文件。因此,将使用 debian/rules 使用的命令构建 Fiji:
debian/build-command
(需要我们使用修改后的构建命令,因为我们需要覆盖 Fakefile 中定义的一些 CLASSPATH,这些 CLASSPATH 引用现在位于依赖包中的一堆 jar 中。)
生成 debian/control 文件
创建具有正确依赖项和包定义的 debian/control 文件:
debian/update-debian.py --generate-complete-control
这是基于生成的文件和db.xml.gz。
清理建树
在构建资源最终的树之前,我们需要清理它,以便源文件中仅包含源文件:
debian/update-debian.py --clean
构建 debian 源码
dpkg-buildpackage -rfakeroot
如果您无法对包进行签名,请添加参数-us -uc。如果您不想生成源包(因为 dpkg-source 在 1.15.5 之前需要 *ages* 才能与 dpkg-dev 一起运行),请添加 -b。
该命令调用的 debian/rules Makefile 将调用 debian/update-debian.py --install 将构建树的部分内容复制到正确的位置。
构建 i386 版本并上传
这些步骤如上面的“简单版本”中所述。