Fedora 存储库中的 gnu tar 和 tar 包之间的区别

Fedora 存储库中的 gnu tar 和 tar 包之间的区别

Fedora 中 tar 的手册页(以及die.net 上 tar 的手册页)提到了 --acls 和 --xattrs 和 --selinux 选项,但它们没有在GNU 网站中的 tar 手册

为什么?这是否意味着 fedora 软件包与原始的 gnu tar 不同?

答案1

您可以剖析 Fedora 源 rpm -tar-1.26-29.fc20.src.rpm- 并找出答案。

在 Fedora 上,您可以安装 src.rpm。您还可以提取其内容,如下所示:

rpm2cpio tar-1.26-29.fc20.src.rpm | cpio --extract --make-directories --verbose

您问题的答案位于tar.spec相关补丁中。例子:

# Add support for extended attributes, SELinux and POSIX ACLs.
# ~> Original implementation #200925
# ~> http://lists.gnu.org/archive/html/bug-tar/2012-08/msg00012.html
# ~> upstream (b997c90f9, 696338043, d36f5a3cc, 085cace18, up-to ~> 83701a590)
Patch10: tar-1.26-xattrs.patch

所以,是的,Fedora 确实使用 GNU tar,但根据 src.rpm 规范应用了许多补丁。

答案2

包维护者在包中包含特定于发行版的补丁是很常见的。有时您可以找到包含在变更日志常规套餐的信息,您可以通过以下方式查询rpm -q --changelog tar

大多数情况下,您需要检查源包以获取详细信息,例如https://dl.fedoraproject.org/pub/fedora/linux/development/rawhide/source/SRPMS/t/tar-1.28-3.fc22.src.rpm它保存源代码、规范文件和实际应用的补丁。

由于 Red Hat 比其他发行版更多地推动 SELinux,因此他们的补丁和产品文档也强调这一点是有道理的。

手机上无代码输出

答案3

您提到的 GNU tar 变体已通过来自star.这与访问控制列表属性自 2001 年和 2003 年以来存在的增强功能star

SELinux 增强功能是由 RedHat 编写的。

请注意,GNU tar 中的这些增强功能尚未正确实现。

文件在存档中可能没有 ACL 或 SELinux 属性,但当通过 GNU tar 提取存档时,可以通过继承获得 ACL 或 SELinux 属性。

star当使用较旧的原始实现时,这个问题不存在。

最近的明星源码都在schilytools源码包里。

如果您不相信这一点,请使用 GNU tar 创建的 acls、xattrs 或 SELinux 检查存档的内容。你会看到有希利star里面有标签,因为使用了由 引入的存档扩展。

相关内容