什么是诺克斯包?

所以你坐在你的计算机上,当你注意到有许多文件的扩展名为noarch时,你正在搜索软件存储库寻找要安装的东西。

什么是Noarch和为什么这么多文件有这个扩展名?

noarch基本上不代表架构。

此时,您可能想知道为什么有人打算创建一个不适用于任何架构的软件包。

noarch这个术语实际上意味着没有特定的架构,或者如果你愿意,所有的架构。

这怎么可能? 一个软件包怎么可能在所有版本的Linux,Windows和其他操作系统上运行。

那么,一开始并不是所有包都包含应用程序。 例如,应用程序gnome-backgrounds.arch是桌面背景的集合。 虽然该软件包是为Gnome桌面环境开发的,但它实际上只是一个图像集合,而图像是以通用格式创建的,可以在任何现代操作系统上使用。

因此,您可以将noarch包视为任何真正具有普遍性的内容,如背景,图标甚至手册。

Noarch包也可以包含脚本,程序和应用程序,但它们必须包含真正跨平台的文件。

什么样的程序真的是跨平台的?

以HTML,JavaScript和CSS开发的Web应用程序是普遍的,就像PHP,PERL和Python脚本语言一样。

编译的程序不能被认为是noarch,因为它们被编译为在特定的体系结构上工作。 因此C和C ++二进制文件将不会在noarch文件中找到。 这个规则的例外是Java程序,因为Java是真正的跨平台,为一个Linux发行版和体系结构编写的Java应用程序也应该在其他Linux平台和Windows上工作。

现在你可能会认为源代码可以保存为noarch包,因为它可以跨平台编译,并且只是特定架构特有的二进制文件。 源代码包实际上是以src扩展名存储的。

Noarch文件通常与RPM软件包相关联。

很有可能您的计算机上已经安装了许多RPM noarch软件包。

要找出安装了哪个noarch软件包,请运行以下命令:

rpm -qa --qf“%{N} - %{V} - %{R} \ t \ t%{ARCH} \ n”| grep noarch | 更多

上述命令可以细分如下:

在我自己的计算机上查看上述命令的输出,我可以看到许多字体包,固件包,文档,背景,图标和主题。

然而,一个警告的话。 仅仅因为某些东西被封装为noarch,将这个包中的文件复制到其他计算机并不希望它们工作。

例如,如果您有一台计算机使用RPM软件包管理器运行Fedora,而另一台计算机使用DEB文件格式运行Debian,则在从Fedora计算机上复制文件之前,在Debian上查找相应的软件包是有意义的。