- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我在构建 debian 软件包时遇到了问题。
至于规则文件的文件:https://www.debian.org/doc/manuals/maint-guide/dreq.en.html#rules
debian/rules 构建运行 dh 构建;依次运行以下命令:
dh_testdir
dh_auto_configure
dh_auto_build
dh_auto_test
fakeroot debian/rules 二进制文件运行 fakeroot dh 二进制文件;依次运行以下命令:
dh_testroot
dh_prep
dh_installdirs
dh_auto_install
dh_install
dh_installdocs
...
dh_builddeb
但是当我运行 dh binary --no-act
命令时,输出包括 dh build --no-act
。这意味着 ./configure
和 make
命令在构建 debian 软件包期间运行两次。这很奇怪。
我使用 dpkg-buildpackage -us -uc
来构建 debian 包。
更新:我看到它实际上没有运行两次,但为什么 --no-act 显示 dh build
输出运行了两次?
最佳答案
首先,要回答第一个问题,debian/rules
build
和 binary
规则之间的区别在 Debian Policy §4.9 中列出。 .简而言之,build
目标应该只执行“构建”步骤,而不执行任何需要 root(或 fakeroot)权限的操作,例如将文件更改为 uid 0 或“安装”东西。另一方面,binary
应该采取所有必要的步骤来构建适当的二进制 deb。 binary
应该包括 build
的所有步骤(如果尚未完成的话)。
以下是您可能遗漏的关于 dh
的几个事实:
dh
跟踪作为构建序列的一部分运行的 dh_*
命令(例如,作为 dh build< 的一部分
或 dh binary
),甚至在两次调用之间。通过查看 debian/$package.debhelper.log
的内容,您可以看到它认为已经运行了哪些命令。如果其中列出了一个命令,dh
将认为它已经运行以进行命令排序。
dh $sequence --no-act
也将 debian/$package.debhelper.log
文件考虑在内。因此,当您在全新、干净的构建目录上运行 dh binary --no-act
时,您会看到一长串命令,包括那些需要为 build< 完成的命令
目标。但是如果你真的运行 dh build
先然后试试dh binary --no-act
,它不会'不再显示构建步骤。它只会显示准备和创建实际 .deb 包的步骤。
关于linux - debian 包装 : what's the difference between dh build and dh binary,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32524630/
Xcode 4 中的以下操作有什么作用? 为测试而构建 为运行而构建 为分析而构建 为存档而构建 我不确定何时使用这些(或是否使用其中任何一个)。 最佳答案 Running 用于运行您的应用(在 Ma
工具: Jenkins 版1.470 Maven 2 颠覆 环境 假设我的构建有许多项目 A-D。如图所示,依赖关系图存在。也就是说:B 依赖于 A 中的类,C 依赖于 B 中的类,D 依赖于 A 中
我正在创建一个软件项目,我想使用 autotools 为我生成 makefile 等脚本,我手动创建了 Makefile.am 和 configure.in 文件,我正在使用 autogen.sh 脚
什么yarn build命令做什么? 是 yarn build和 npm build相同?如果不是有什么区别? 最佳答案 yarn build和 npm build默认情况下不是现有的命令。我想你是说
如果我有一个包含许多相互依赖的项目的大型代码库,例如,projects/A、projects/B 和 projects/C ,其中 A 需要 B,B 需要 C,每个项目都有一个Cake 构建脚本,例如
我正在尝试使用 Wix/Detox 来测试我的 react-native 应用程序(iOS 版本)。我已成功遵循 https://github.com/wix/detox/blob/master/do
我们有许多编译 .NET 代码的 Nant 脚本。这些构建需要 5 到 10 分钟才能运行,我想找到一种方法来加速它们。 我们的 Nant 脚本看起来像
你好 当我在 windows 下使用 gnu 构建 ffmpeg-3.4.1 时,谁能帮我解决这个错误: /tmp/9747a756ee05ef34cc3fcf51eabde826/sysroot/u
构建解决方案/项目/程序意味着什么?我想确保我的定义是正确的(所以我在交谈时听起来不像个白痴)。在 IDE 中,您可以(如果我错了,请纠正我)编译源代码/编程代码为计算机可读的机器代码。您可以调试程序
为什么 Eclipse 在构建 Android 项目时会陷入无限循环,用于构建工作区...和(重新)构建工作区...和(重新)构建工作区... 这是一个已知的错误吗? 摆脱这个循环的正确方法是什么?
我的 Angular 项目是 @Angular4.3.3 ng build -prod 构建需要 77 秒 ng build --prod --build-optimizer=true 构建需要 19
所以我刚刚使用命令创建了一个 React Native 项目 react-native init "项目名称" 我进入应用程序级别的 build.gradle 以连接 firebase,但出现错误提示
我想弄清楚 TFS Online 2017 中的两个预定义变量之间是否存在差异:$(Build.Repository.LocalPath)和 $(Build.SourcesDirectory) .我有
编译项目时,当系统用户名匹配时,此脚本应将 Xcode 项目的构建版本递增 1。请记住,这些只是 Target->Build Phases->Run Script in Xcode 中脚本(不是 Ap
是否有一种工具可以在给定 MS Build 项目文件的情况下构建一个视觉对象,显示将在何时以及从哪个导入文件执行哪个目标? 如果给定一个解决方案文件,它会构建项目构建顺序的视觉效果? 最佳答案 是的,
我正在尝试使用 Bazel 进行以下设置。通过调用“bazel build”,Python 脚本应该生成未知数量的具有随机名称的 *.cc 文件,然后将这些文件编译成单个静态库(.a 文件),所有这些
我正在将我的 Cmake 项目迁移到 Bazel。我项目的根目录是 build我用来运行 Cmake 的文件夹。 迁移到 Bazel ,我需要创建一个 BUILD我的项目根目录下的文件。但是,在 ma
关闭。这个问题是opinion-based 。目前不接受答案。 想要改进这个问题吗?更新问题,以便 editing this post 可以用事实和引文来回答它。 . 已关闭 5 年前。 此帖子已于
当我的Dockerfile如下所示时,它运行良好。 ... RUN pip install git+https://user_name:my_password@github.com/repo_name
当前的自动构建功能集是否可以从存储库中添加新标签并标记生成的图像?还是我需要3party服务将新标签自动推送到Docker Registry? 最佳答案 目前不行。 当前(2014年10月)尚无Doc
我是一名优秀的程序员,十分优秀!