无论出于何种原因,我一直使用基于 RPM 的发行版(Fedora、Centos 和当前的 openSUSE)。我经常听到有人说 deb 比 rpm 好,但是当被问到为什么时,从来没有得到一个连贯的答案(通常会得到一些狂热的咆哮和大量的唾沫)。
我知道可能有一些历史原因,但是对于使用两种不同打包方法的现代发行版,有人可以给出一种与另一种的技术(或其他)优点吗?
Fedora 相当于 Debian build-essential 软件包是什么?
我想在 Ubuntu 上将所有内容(包括当前目录中的文件和文件夹)压缩并打包到一个 ZIP 文件中。
对此最方便的命令是什么(以及需要安装的工具的名称,如果有的话)?
编辑:如果我需要排除一个文件夹或多个文件怎么办?
在 Debian 系列操作系统中,dpkg --search /bin/ls
给出:
coreutils: /bin/ls
Run Code Online (Sandbox Code Playgroud)
也就是说,该文件/bin/ls
属于名为coreutils的 Debian 软件包。(如果您对包含未安装文件的包感兴趣,请参阅此帖子)
Fedora 的等价物是什么?
我目前正在寻找一个网站或工具,可以让我比较不同 Linux 发行版中特定软件的包状态。
例如,Mint、Ubuntu、Debian Sid 和 Fedora 18 提供哪个版本的 gimp?
一个直接的兴趣是能够避免在打包软件时重新发明轮子(例如重复使用来自其他发行版的补丁)。
可以使用该rpm -K
命令验证 RPM 的加密签名。如果签名在 RPM 的数据库中并且有效,这将返回一个包含gpg
(或pgp
) 并以 结尾的字符串OK
。
如果包未签名但校验和有效,您仍然会得到OK
,但不会得到gpg
。
如果包已签名但密钥从 RPM 数据库中丢失,您会得到(GPG)
(大写字母)和NOT OKAY
,后跟(MISSING KEYS: GPG#deadbeef)
.
如果我想弄清楚我应该找到什么密钥来安装我的包安装工作,这很方便。
但是,如果我想验证RPM 密钥环中的哪些密钥用于对给定的包进行签名,该怎么办?
对于 Ubuntu,有这个方便的 PPA 服务可用,您可以在其中获得自己的包存储库。
你可以把开源许可下的源包放在那里,例如你的软件的开发快照。
(服务器负责创建正确的二进制包并使用存储库密钥对其进行签名。)
然后用户只需要用一个命令添加存储库地址,就可以通过 apt-get 安装软件包。
由于我正在研究 Fedora - 是否有类似的东西可用于 Fedora 软件包?
如果是,支持哪些架构/分发版本?有多少可用空间?
通过这样的服务(例如当前的 Fedora 版本和 RHEL)为多个 rpm 发行版发布包的方式是什么?
在展示应用程序时,Windows 和 Mac 主要谈论功能。另一方面,Linux 应用程序有更多关于使用什么语言编写它(和附带的库)而不是功能的详细信息。这是为什么?
我可以理解 GTK+ 与 QT 之间的区别仅仅因为桌面集成要求而有所不同,但是 C 与 C++ 与 Python 与汇编与等等?真的吗?
例如:foo 是一个用 C/GTK+ 编写的简单的废话。
这一切都非常令人困惑。那里有不同的例子,例如:
<package-name>_<epoch>:<upstream-version>-<debian.version>-<architecture>.deb
Run Code Online (Sandbox Code Playgroud)
来源:debian 包文件名
是部分5.6.12版本或Debian策略手册还涉及到实际的包文件名吗?还是只针对控制文件中的字段?
在这个关于存储库格式的wiki 主题中,它并没有真正说明任何关于约定的内容,在开发人员最佳实践指南中也是如此。
也许我只是在寻找错误的东西,请帮助我并告诉我在哪里可以找到 Debian 软件包名称约定。我特别好奇 Debian 代号放在哪里。我想做这样的事情:
<package-name>_<version>.<revision>-<debiancodename>_<architecture>.deb
Run Code Online (Sandbox Code Playgroud)
哪里<debiancodename>
只是squeeze
或wheezy
。
从失败的构建中检查构建日志,以下错误是什么意思,
fatal error: ac_nonexistent.h: No such file or directory #include <ac_nonexistent.h>
Run Code Online (Sandbox Code Playgroud)
这是一些上下文。
configure:6614: $? = 0
configure:6627: result: none needed
configure:6648: checking how to run the C preprocessor
configure:6679: gcc -E -Wdate-time -D_FORTIFY_SOURCE=2 conftest.c
configure:6679: $? = 0
configure:6693: gcc -E -Wdate-time -D_FORTIFY_SOURCE=2 conftest.c
conftest.c:11:28: fatal error: ac_nonexistent.h: No such file or directory
#include <ac_nonexistent.h>
^
compilation terminated.
configure:6693: $? = 1
configure: failed program was:
| /* confdefs.h */
Run Code Online (Sandbox Code Playgroud)
什么是ac_nonexistent.h
?遇到这个错误该怎么办?