Что такое пакет Noarch?

Ноарх не означает никакой архитектуры. На самом деле, термин noarch означает отсутствие конкретной архитектуры или, если хотите, всех архитектур. Он ссылается на файлы, такие как изображения, руководства или даже приложения, которые являются универсальными для всех платформ.

Как это возможно?

Как это возможно, что пакет будет работать на всех версиях Linux, Windows и других операционных систем.

Ну, для начала не все пакеты содержат приложения. Например, приложение gnome-backgrounds.arch представляет собой набор фонов рабочего стола. Хотя пакет был разработан для среды рабочего стола Gnome, на самом деле он представляет собой просто набор изображений, а изображения создаются в универсальных форматах, которые можно использовать в любой современной операционной системе.

Поэтому вы можете думать о пакете noarch как о чем-то действительно универсальном, таком как фоны, значки и даже руководства.

Пакеты Noarch также могут содержать скрипты, программы и приложения, но они должны содержать действительно кроссплатформенные файлы.

Какие программы действительно кроссплатформенные?

Веб-приложения, разработанные на HTML, JavaScript и CSS, являются универсальными, как и языки сценариев PHP, PERL и Python.

Скомпилированные программы нельзя считать noarch, потому что они скомпилированы для работы на определенной архитектуре. Поэтому двоичные файлы C и C ++ не будут найдены в файле noarch. Исключением из этого правила являются Java-программы, потому что Java является действительно кроссплатформенным, и Java-приложение, написанное для одного дистрибутива Linux, и архитектура также должны работать на других платформах Linux и в Windows.

Теперь вы можете подумать, что исходный код можно хранить как пакеты noarch, потому что он может быть скомпилирован кросс-платформенным, и только двоичные файлы являются специфическими для конкретной архитектуры. Пакеты исходного кода на самом деле хранятся с расширением src.

Файлы Noarch обычно связаны с RPM-пакетами.

Весьма вероятно, что на вашем компьютере уже установлено несколько пакетов RPM noarch.

Чтобы узнать, какие пакеты noarch вы установили, выполните следующую команду:

rpm -qa --qf "% {N} -% {V} -% {R} \ t \ t% {ARCH} \ n" | grep noarch | Больше

Вышеприведенная команда может быть разбита следующим образом:

  • rpm — менеджер пакетов
  • -д обозначает запрос
  • -стоит за всех
  • —qf обозначает формат запроса
  • Выходные данные команды rpm помещаются как входные данные для grep, который ищет noarch
  • More останавливает вывод в конце страницы данных, вы можете перейти к следующей странице, нажав пробел

Глядя на вывод этой команды на моем собственном компьютере, я вижу несколько пакетов шрифтов, пакетов микропрограмм, документацию, фоны, значки и темы.

Слово предупреждения, однако. Просто потому, что что-то упаковано в noarch, не всегда разумно копировать файлы этого пакета на другие компьютеры и надеяться, что они работают.

Например, если у вас один компьютер с Fedora, использующий менеджер пакетов RPM, и другой, на котором запущен Debian с использованием формата файлов DEB, имеет смысл поискать эквивалентный пакет в Debian перед копированием файлов с компьютера Fedora.

Ссылка на основную публикацию