标签: packaging

如何使用 debuild 运行并行 make?

我正在尝试制作一个我(共同)编写的软件包。我正在使用

debuild -i -us -uc -b 
Run Code Online (Sandbox Code Playgroud)

原则上这很好用。为了缩短编译时间,我想 debuild 以并行运行 make (例如,我通常通过运行执行make -j4)。我在网上找到了一些建议如下的位置:

debuild -eDEB_BUILD_OPTIONS="parallel=4" -us -uc -b
debuild -j4 -us -uc -b
Run Code Online (Sandbox Code Playgroud)

另一个站点建议在debian/rules基本上设置的文件中添加一些代码

MAKEFLAGS += -j4
Run Code Online (Sandbox Code Playgroud)

然而,这些似乎都不起作用。我错过了什么吗?或者我应该在源的 autoconf/automake 设置中更改某些内容?

packaging compiling deb make debuild

19
推荐指数
3
解决办法
1万
查看次数

对构建 OpenStack 软件包感到困惑?

我在 Ubuntu QA 站点上找到了 OpenStack 构建任务,但我对构建步骤有点困惑。

这是构建步骤的链接:https : //jenkins.qa.ubuntu.com/view/Openstack_Testing/view/Grizzly/job/precise_grizzly_keystone_stable/275/consoleText

从 jenkins 构建日志中,我知道 Ubuntu 构建 Openstack 包的步骤:

  1. 从 github 获取 openstack 代码,使用 git clone
  2. openstack tar.gz使用构建文件python setup.py sdist
  3. 用于bzr获取由规范维护的 debian 控制文件
  4. 使用dch命令生成新的构建版本并将其提交到本地
  5. 用于bzr builddeb -S -- -sa -us -uc生成源码包及相关控制文件,如dsc
  6. 签收包裹
  7. 用于mk-build-deps安装依赖
  8. 用于sbuild生成真正的 deb 包
  9. 上传到测试仓库

我的问题是:

  1. 在第5步中,我们已经可以不用 生成deb包了-S,但是为什么最后还要用sbuild它来生成呢?这只是为了签名吗?
  2. bzr builddeb和 和有sbuild什么区别?
  3. 我发现 jenkins 使用的构建脚本位于此处:~openstack-ubuntu-testing/openstack-ubuntu-testing,但是当我尝试在 下运行任何命令时bin,我总是得到:

    root@demo:~/openstack-ubuntu-testing/bin# …
    Run Code Online (Sandbox Code Playgroud)

package-management packaging openstack

19
推荐指数
1
解决办法
1193
查看次数

如何为 Ubuntu Snappy 重新打包 .deb?

我想将一些Ubuntu的软件.deb,特别是guake,于Ubuntu斯纳皮*包。

根据Ubuntu 开发工具的文档

所有元数据都存在于 meta/package.yaml 中。该文件的详细信息记录在 snappy developer documentation 中,但简而言之,它非常简单,您可以使用以下简单的方法:

name: pkgname  
version: version-string  
apps:  
  binary:  
   - command: path/to/binary  
  another-binary  
   - command: path/to/another-binary  
Run Code Online (Sandbox Code Playgroud)

...您的包名为“pkgname”...版本“version-string”和...二进制文件,称为 pkgname/name 和 pkgname/another。

自己在谷歌上搜索过,几乎没有发现这种转换的主题。

作为一名构建工程师,通过贸易,以及热爱 Ubuntu 的爱好者,我可能能够从学习这类事情中受益。

.deb 如何变成 snap*?

* 显然,Ubuntu Snappy 的软件包格式称为“snap”格式。

packaging deb ubuntu-core snap

19
推荐指数
2
解决办法
6136
查看次数

如何让更多人参与为 Ubuntu 改进 X.org?

在 Ubuntu 中,X 是堆栈中更关键的部分之一。因此,我们收到了大量关于它的问题和错误报告,可能是我们需要处理的人力的 100 倍。

Canonical 正在招聘更多的工程师来开发 X,这将有所帮助,但仍然有很多事情超出了 Canonical 的能力范围,所以我觉得有一个强大的社区参与改进 Ubuntu 中的 X 真的很重要,尤其是围绕让所有这些大量的错误报告得到答复、分类和(希望)解决。

然而,很难找到人在 X 上工作,或者让人们相信他们在 X 上投入时间是值得的。您建议如何鼓励人们参与其中,否则他们可能不会考虑在 X 上工作?

community packaging xorg graphics

18
推荐指数
3
解决办法
540
查看次数

用于创建 Deb 包的图形工具

是否有任何用于创建 ubuntu/debian 包的图形工具?

packaging software-recommendation deb

18
推荐指数
1
解决办法
1万
查看次数

如何仅在首次安装软件包而不是在升级期间运行脚本?

我最近开始打包我的一些软件并在 Launchpad 上发布。安装和删除工作正常,但将包从一个版本升级到下一个版本是有问题的。

问题是有一些脚本只需要在第一次安装包时运行。这些脚本填充数据库、创建用户等。它们当前在 package.postinstconfigure)部分中调用。然而,这导致他们在升级过程中被称为以及所示的图

有没有办法将维护者脚本包含在 .deb 包中,该脚本仅在第一次安装包而不是在升级期间执行?或者在 .deb 包中包含一些初始设置脚本的优雅方式是什么?

package-management packaging apt dpkg

18
推荐指数
2
解决办法
2万
查看次数

如何创建和管理多架构 PPA?

我有一个程序需要为每个 ubuntu 版本重新编译。

目前我正在使用 Ubuntu 的 PPA 打包它,仅用于当前发行版。

最终,我必须为以前的 ubuntu 版本提供包。

我不知道如何做到这一点。

Ubuntu PPA 构建服务器是如何工作的——它是否只查看最新更改日志条目(在 debian/changelog 文件中)中的分布字段来确定应该构建包的分布?

debian 规范允许将多个发行版添加到发行版字段中。但这对我没有帮助。

一些 ubuntu 文档谈到将发行版名称编码为版本号(在 debian 更改日志文件中)。

但这在实践中如何运作?有新版本的程序可用,然后呢?我是否为每个发行版添加一个新的更改日志条目,并且 PPA buildserver 在 dput'ing 之后为每个发行版自动构建新包?还是 PPA 构建服务器只查看第一个更改日志条目?

launchpad packaging ppa

16
推荐指数
3
解决办法
2027
查看次数

我可以直接更新从源代码安装的软件吗

尽管我开始使用 Ubuntu 已经快一年了,但我还没有尝试从源代码安装软件。我实际上并不觉得有必要这样做。但现在我正在开发一个软件,该软件处于存储库中的候选发布阶段,但最新的稳定版本的源代码可在软件主页上找到。

我了解到如果软件有很多依赖项,从源代码安装可能会很困难。但是,如果我解决了这个问题,我会对最新版本感到满意。但是我一直想知道这样的软件是否可以自动更新,或者我是否必须运行一些脚本来更新包。或者更糟糕的是,我是否必须从头开始重新安装每个更新?

另外,我很想知道从上述以外的源安装是否有任何特定优势。

updates installation packaging source-code backport

16
推荐指数
2
解决办法
6058
查看次数

在安装 Debian 软件包期间重命名文件

我有一个要为 Debian 打包的 python 脚本。我在我写的地方使用了 debian/install 文件

auto_dice.py /usr/bin/
Run Code Online (Sandbox Code Playgroud)

Linitan 然后抱怨 .py 扩展名 (script-with-language-extension)。

然后我把它改成

auto_dice.py /usr/bin/autodice.py
Run Code Online (Sandbox Code Playgroud)

这会导致错误,因为它被解释autodice.py为目录。

我怎样才能在那里重命名?我不想在源代码中重命名我的 python 脚本。

python packaging debian

16
推荐指数
2
解决办法
4627
查看次数

如何以及为什么创建 -dbg、-dev、-doc 包?

我正在为一个包编写一个 Ubuntu 包,该包本质上提供了许多库和头文件,然后用于构建其他软件。包也分解成相互依赖的较小的子包;从这个意义上说,该包与 boost 非常相似。

我注意到像 boost 这样的包提供

[...]
libboost-dbg
libboost-dev
libboost-doc
[...]
libboost-all-dev
[...]
Run Code Online (Sandbox Code Playgroud)

但没有任何名称boostlibboost.

  • 这背后的想法是什么?
  • 什么是的目的-dbg-dev-doc包?
  • 是否提供了有关如何为这些包编写构建文件的任何说明?

packaging

16
推荐指数
2
解决办法
1万
查看次数