我正在尝试制作一个我(共同)编写的软件包。我正在使用
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 设置中更改某些内容?
我使用以下命令将源下载到一个包中:
$ apt-get source gkrellweather
Run Code Online (Sandbox Code Playgroud)
我还确保我有编译依赖项:
$ sudo apt-get build-dep gkrellweather
Run Code Online (Sandbox Code Playgroud)
我测试它可以很好地构建:
$ cd gkrellweather-2.0.8
$ debuild
Run Code Online (Sandbox Code Playgroud)
它.deb在上面的文件夹中构建了一个包,我可以使用以下方法进行安装:
$ sudo dpkg -i ../gkrellweather*.deb
Run Code Online (Sandbox Code Playgroud)
好的,所以一切都到位了。让我们开始吧!
我在 Vim 中打开了源代码并进行了一些我想要的更改。然后我尝试重建:
$ debuild
Run Code Online (Sandbox Code Playgroud)
但我收到以下错误:
...
dh_clean: Compatibility levels before 5 are deprecated (level 4 in use)
dpkg-source -b gkrellweather-2.0.8
dpkg-source: warning: no source format specified in debian/source/format, see dpkg-source(1)
dpkg-source: info: using source format `1.0'
dpkg-source: info: building gkrellweather using existing gkrellweather_2.0.8.orig.tar.gz
dpkg-source: info: building gkrellweather in gkrellweather_2.0.8-2.diff.gz
dpkg-source: error: cannot represent …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用 debuild 构建 cairo。
我到了最后,这条消息:
gpg: skipped "Robert Ancell <robert.ancell@canonical.com>": secret key not available
Run Code Online (Sandbox Code Playgroud)
因为我不是 Robert Ancell,所以这是有道理的 - 我如何让它使用我自己的密钥?
gpg --list-key outputs:
$ gpg --list-key /home/stu/.gnupg/pubring.gpg
----------------------------
pub 1024R/2ADA7053 2009-05-04 uid Launchpad PPA for Aleksander Morgado
pub 2048R/17F35B46 2015-01-28 uid Stuart Axon
<stu.axon@gmail.com> uid Launchpad PPA for Stuart
Axon <stuaxo2@yahoo.com> sub 2048R/B8E8ED59 2015-01-28
Run Code Online (Sandbox Code Playgroud)
我有环境变量:
DEBSIGN_KEYID=17F35B46
Run Code Online (Sandbox Code Playgroud) 补丁包的正确命名约定是什么?
我正在尝试将带有补丁的 exiv2 版本放在一起以添加额外的模式。
这是我到目前为止所做的:
$ sudo apt-get build-dep exiv2
$ cd src/exiv2
$ apt-get source exiv2
$ cd exiv2-0.23-1ubuntu2
... apply patch
$ dpkg-source --commit
$ dch -i
exiv2 (0.23-1ubuntu2-DwC1) trusty; urgency=medium
$ debuild -S -sd -k1230CB40
Run Code Online (Sandbox Code Playgroud)
但我随后收到一条错误消息:
这个包有一个 Debian 修订号,但在父目录中似乎没有合适的原始 tar 文件或 .orig 目录;(预期 exiv2_0.23-1ubuntu2.orig.tar.gz、exiv2_0.23-1ubuntu2.orig.tar.bz2、exiv2_0.23-1ubuntu2.orig.tar.lzma、exiv2_0.23-1ubuntu2.orig.tar.tar 之一。 xz 或 exiv2-0.23-1ubuntu2.orig) 继续吗?(y/n) 是
dpkg-source -b exiv2-0.23-1ubuntu2 dpkg-source:错误:无法使用源格式“3.0(被子)”构建:在 ../exiv2_0.23-1ubuntu2.orig.tar.{bz2 ,gz,lzma,xz} dpkg-buildpackage:错误:dpkg-source -b exiv2-0.23-1ubuntu2 给出错误退出状态 255 反编译:第 1364 行的致命错误:dpkg-buildpackage -rfakeroot -d -us -uc -S - sd 失败
$ ls ..
exiv2-0.23-1ubuntu2 exiv2_0.23-1ubuntu2.debian.tar.gz …Run Code Online (Sandbox Code Playgroud) 互联网上的每个人都告诉用 构建包debuild -uc -us,例如这个答案,但我完全找不到这些选项是什么意思,甚至内置帮助 ( debuild --help) 也没有告诉任何关于-uc和 的信息-us。
那么这些选项是什么意思呢?
我希望能够构建具有非平凡依赖项(gtk 等)的包的多个版本(i386和amd64)。
我的构建脚本使用cmake.
目前,该命令debuild -i -us -uc -b仅构建amd64在我的 ubuntu 64 位发行版上,我还没有安装任何交叉编译工具链。
如何为两个平台构建二进制文件?
我正在运行debuild以生成<source.changes>文件,以便稍后使用
dput ppa:myusername/mypackagename <source.changes>
Run Code Online (Sandbox Code Playgroud)
正如这里简要提到的。
我收到以下警告和错误:
$ debuild
This package has a Debian revision number but there does not seem to be an appropriate original tar file or .orig directory in the parent directory;
(expected one of screen-generator_0.3.orig.tar.gz, screen-generator_0.3.orig.tar.bz2,
screen-generator_0.3.orig.tar.lzma, screen-generator_0.3.orig.tar.xz or screen-generator.orig)
continue anyway? (y/n) y
dpkg-buildpackage -rfakeroot -D -us -uc
dpkg-buildpackage: warning: using a gain-root-command while being root
dpkg-buildpackage: source package screen-generator
dpkg-buildpackage: source version 0.3-1
dpkg-buildpackage: source distribution UNRELEASED
dpkg-buildpackage: source …Run Code Online (Sandbox Code Playgroud) 这是我在这里的第一个问题,也是我第一次尝试为 Ubuntu 构建自定义应用程序,所以我希望我不会把它搞砸:)
我想修改 Deja Dup 应用程序以使 AWS S3 与 IBM COS S3 一起使用。它应该像更改 backendS3 文件中的硬编码 url 一样简单,但我什至无法构建 vanilla 版本。
我使用的是刚刚安装的Ubuntu 18.04.4 LTS我已经下载了源下面这个用“经典”的方式。当我运行时,debuild -us -uc -b它在运行测试时失败。我也尝试使用 make,如源的 HACKING 文件中所述,结果相同。
正如我从测试日志中了解到的,问题与 gvfs 有关,但在谷歌搜索并尝试删除 gvfs 日志、gvfs 数据并以 root 身份执行后,我不知道还能做什么。
我正在附上测试和解构日志。请告诉我还需要什么。
如果这有什么不同的话,我正在运行 Ubuntu 14.04 32 位的 VM...
我跟着这个问题的答案:
如何在 Ubuntu 15.04 上编译 libimobiledevice 1.2?
但是我在尝试时遇到了错误
./autogen.sh
Run Code Online (Sandbox Code Playgroud)
它说我需要更新版本的 libplist,所以我按照 libplist github 页面上的安装说明进行操作。这似乎安装没有问题,现在我解决了这个错误,./autogen.sh 抛出了这个错误......
这是它运行的最后一行,然后是我在终端中遇到的错误...
#define LT_OBJDIR ".libs/"
checking for libplist Cython bindings... no
configure: WARNING: cannot find libplist Cython bindings. You should
install your distribution specific libplist Cython bindings package.
checking for openssl... no
configure: error: OpenSSL support explicitly requested but OpenSSL could
not be found
Run Code Online (Sandbox Code Playgroud)
试图做一个 sudo apt-get install openssl 但它说它已经安装了..
通过运行debuild,我发现以下警告:
# debuild
debuild: warning: debian/changelog(l1): badly formatted heading line
LINE: my_package (0.3-1) unstable; urgency=low
Run Code Online (Sandbox Code Playgroud)
我的错误在哪里?
这是我的 debian/changelog
my_package (0.3-1) trusty; urgency=low
* First release:
-- My Name <mymail@gmail.com> Tue Oct 11 21:22:15 CEST 2016
Run Code Online (Sandbox Code Playgroud)