获取当前支持的 Ubuntu 版本的代号以用于 deb 打包的最简单方法是什么?就像utopic trusty precise lucid今天。
我有一个 debian 软件包文件 (.deb),缺少一个关键库。我不知道创建 debian 包的细节。是否可以只将这个库文件添加到 debian 包中?
通过运行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) 我知道如何rpm为RHEL打包,但打包经验很少deb。
我想打包其他操作系统的库和头文件来制作交叉编译器,这样就不需要任何编译过程。然而,deb打包过程迫使编写某种Makefile.
如何为预编译文件制作 deb 包?除了同事之外我不会分发它,所以我不需要各种复杂的 debian 打包规则。
这是我的rpm .spec文件。这几乎是微不足道的..
%define os some-os
%define rootname sysroot-%{os}
%global debug_package %{nil}
Name: sysroot-some-os
License: UNLICENSED
Version: 0.1
Release: 1
Source: sysroot-some-os.tar.bz2
Summary: Sysroot from some os
BuildArch: noarch
BuildRequires: bzip2
%description
Sysroot from some os
%prep
%setup -q -n %{rootname}
%install
mkdir -p ${RPM_BUILD_ROOT}/opt/cross/%{os}/sysroot
cp -r * ${RPM_BUILD_ROOT}/opt/cross/%{os}/sysroot
chmod -R -x ${RPM_BUILD_ROOT}/opt/cross/%{os}/sysroot
%files
/opt/cross/%{os}/sysroot
%changelog
blabla..
Run Code Online (Sandbox Code Playgroud)
编辑:
也许有人可以考虑debian/install解决这个问题,但正如你所看到的,这个包有很多文件,写入每个文件并不是一个好主意。(查看.spec文件。)
我有一些 debian 软件包,其中包含以下install文件:
src/an_executable_python_script usr/bin
src/web/* usr/share/packagename
Run Code Online (Sandbox Code Playgroud)
文件夹内src/web有一些html和css文件。看起来,在兼容级别 7 下,一切工作正常。但对于兼容级别 9,我收到以下错误消息:
/home/user/package/debian/packagename.install: 2:
/home/user/package/debian/packagename.install: src/web/index.html: Permission denied
Run Code Online (Sandbox Code Playgroud)
dh_install 的手册页对此主题很明确:文件必须是可执行的。
不幸的是,旧的 debhelper 可能没有强制执行这一点,因此我看到很多软件包都使用这种通过 dh_install 安装不可执行文件的做法。编辑:也许我误解了手册页。我认为这意味着安装文件本身必须是可执行的?但事情是这样的:如果我标记index.html可执行文件,我会收到此错误消息:
src/web/index.html: 2: src/web/index.html: cannot open !DOCTYPE: No such file
src/web/index.html: 2: src/web/index.html: html: not found
src/web/index.html: 4: src/web/index.html: Syntax error: newline unexpected
dh_install: debian/packagename.install (executable config) returned exit code 2
Run Code Online (Sandbox Code Playgroud)
我无法找到如何安装兼容级别 9 的非可执行文件,有人可以给我提示吗?
经过一番尝试和错误后进行编辑:我从所有安装文件中删除了可执行位,它现在可以工作了......但这与手册页相反?!这里发生了什么?
你如何创建自己的包在Linux中,就像cd,ls或任何第三方软件包?
我所知道的是如何创建一个.sh文件,在其中编写一个脚本并使用以下命令执行它:
bash file_name
Run Code Online (Sandbox Code Playgroud)
但除此之外,我想更深入地了解。请解释从下载使用apt-get到如何运行它的完整步骤。
package-management packaging command-line scripts gnome-shell
我对 Debian 软件包版本顺序有点困惑。
看看下面两个 Debian 软件包版本,为什么第一个版本<=比第二个版本高?
0-emacs-29.1.90~202401142128~ubuntu20.04.1
0-emacs-28.3-rc1~202302201437~ubuntu20.04.1
Run Code Online (Sandbox Code Playgroud)
我认为 29 > 28 所以第一个应该是最近的,不是吗?
我总是假设当我运行像 apt-get install、remove、purge 这样的命令时,最多 apt 可能会将配置点文件文件添加到我现有的本地主页(甚至不确定),但永远不要修改或删除任何文件那里(没有备份)。
是否有任何此类限制或至少是指导方针?
我为我正在处理的库创建了一个源包。我debuild用来构建它,然后我可以使用dput.
现在我想设置它,以便我可以从 Jenkins 自动执行此操作。我遇到的主要问题是签署 .dsc 和 .changes 文件。我想做的是签署包裹gpg而不是这样debuild做。这样我就可以使用 gpg 选项自动签署文件--passphrase-fd 0。
于是我就用debuild与选项-uc和-us再ClearSign会处理这些文件gpg。但是当我这样做时,它会创建一个单独的.dsc.asc和source.changes.asc. 当我然后尝试上传时dput出现错误
Checking signature on .changes
gpg: no valid OpenPGP data found.
gpg: the signature could not be verified.
Please remember that the signature file (.sig or .asc)
should be the first file given on the command line.
Run Code Online (Sandbox Code Playgroud)
这似乎表明我应该将该.asc文件作为参数列出,dput但我无法让它工作。
我是 Ubuntu 的新手,想知道是否有办法修改或编辑 deb 包的详细信息。例如,我正在运行命令:
sudo dpkg -I myPackage_amd64.deb并获取几个类别,例如版本、架构、部分等。
如何删除或更改这些类别中的一个或多个的值?
非常感谢。
起初,我在使用 dpkg 创建 debain 源包时遇到了与Error相同的错误。
按照其回答后,我面临这个问题
tata@archisman-HP-240-G3-Notebook-PC ~/brightness-controller $ debuild
dpkg-buildpackage -rfakeroot -D -us -uc
dpkg-buildpackage: source package PACKAGE
dpkg-buildpackage: source version 1.2
dpkg-buildpackage: source distribution trusty
dpkg-buildpackage: source changed by Archisman Panigrahi <tata@archisman-HP-240-G3-Notebook-PC>
dpkg-source --before-build brightness-controller
dpkg-buildpackage: host architecture amd64
dpkg-source: warning: unknown information field 'Version' in input data in general section of control info file
dpkg-source: warning: unknown information field 'Architecture' in input data in general section of control info file
dpkg-source: error: source …Run Code Online (Sandbox Code Playgroud)