什麼是諾克斯包?

所以你坐在你的計算機上,當你注意到有許多文件的擴展名為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上查找相應的軟件包是有意義的。