Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

Portage - это система управления пакетами, изначально созданная и используемая Gentoo Linux, а также Chrome OS , Calculate , Sabayon и Funtoo Linux среди других. Portage основан на концепции коллекций портов . Gentoo иногда называют мета-распределением из-за чрезвычайной гибкости Portage, которая делает его независимым от операционной системы . [2] [3] [4] [5] Проект Gentoo / Alt связан с использованием Portage для управления другими операционными системами, такими как BSD ,macOS и Solaris . Наиболее заметной из этих реализаций является проект Gentoo / FreeBSD .

В настоящее время продолжается работа, которая называется проектом спецификации диспетчера пакетов (PMS) [6], который направлен на стандартизацию и документирование поведения Portage, позволяя использовать дерево ebuild и системные пакеты Gentoo с альтернативными диспетчерами пакетов, такими как Paludis и pkgcore. Его цель - указать точный набор функций и поведения менеджеров пакетов и ебилдов, что послужит авторитетным справочным материалом для Portage.

Обзор [ править ]

Доступ к Portage [ править ]

Графический интерфейс иллюминатора.

Portage аналогичен управлению пакетами в стиле BSD , известному как порты , и изначально был разработан с учетом портов FreeBSD . [7] Portage написан на языке программирования Python и является основной утилитой, определяющей Gentoo. Хотя сама система известна как Portage, она состоит из двух основных частей: системы ebuild и emerge . Система ebuild берет на себя фактическую работу по сборке и установке пакетов, в то время как Emerge предоставляет интерфейс для ebuild: управление репозиторием ebuild, разрешение зависимостей и подобные проблемы. (Следовательно, у этих двух значений примерно то же отношение, что и у rpmимеет с yum или dpkg с APT .)

Для работы с Portage доступен графический интерфейс Porthole на основе GTK + . Существует также Himerge GUI, который означает «Haskell интерфейс для всплывать».

Предоставляемые функции [ править ]

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

Portage различает три уровня стабильности в ебилдах: стабильный (например, программное обеспечение работает так, как задумано без известных проблем безопасности на момент выпуска), с замаскированным ключевым словом (в основном для пакетов, которые не были достаточно протестированы на архитектуре целевой системы, чтобы их можно было рассмотреть. стабильные) и жестко замаскированные (сломанные или очень небезопасные) пакеты.

Особенности [ править ]

Emerge [ править ]

Распаковка файлового менеджера SpaceFM

Инструмент командной строки emerge - это сердце Portage. Команду можно настроить с помощью множества параметров и модификаторов. Утилита emerge - самая важная утилита для доступа к функциям Portage из командной строки .

Программа вычисляет и управляет зависимостями, выполняет ebuild-файлы и поддерживает локальное дерево Portage и базу данных установленных пакетов. Параметры компиляции, используемые ебилдами, могут быть изменены с помощью переменной среды CFLAGS , в зависимости от характеристик отдельного компьютера и желания пользователя по оптимизации. Утилита emerge выполняет ебилды в изолированной среде. Таким образом, система защищена от программного обеспечения, выполняемого ebuild, и полученные двоичные файлы объединяются только после успешной сборки и установки в песочнице.

То, что Emerge устанавливает как зависимости, зависит от настроек USE-флага. Они решают, какие дополнительные функции будут включены при установке или обновлении приложения. Команду emerge также можно использовать для загрузки и установки предварительно скомпилированных двоичных файлов.

ИСПОЛЬЗУЙТЕ флаги [ править ]

Portage во время обновления системы

Система Portage предлагает использование «USE-флагов», которые позволяют пользователям указывать, какие программные функции они хотели бы включить (и исключить) при сборке пакетов. Например, есть USE-флаг для включения поддержки DVD , если таковая имеется, в пакеты, скомпилированные с включенным флагом. USE-флаги влияют на то, какие зависимости требуются, обычно влияя на то, какие дополнительные функции будут встроены в данную программу при ее компиляции. Например, в пакетах, которые используют сценарий настройки , USE-флаг featureбудет преобразован в ./configure --with-feature.

Спецификация USE-флагов - это обычный способ настройки программ в Gentoo. USE-флаги могут быть установлены вручную или с помощью удобных инструментов, таких как ufed (редактор USE-флагов), в котором перечислены флаги вместе с их описанием. Список доступных USE-флагов доступен в Индексе USE-флагов на веб-сайте Gentoo .

ebuild [ править ]

Gentoo по умолчанию не использует двоичные пакеты, как это делают другие системы управления пакетами (например, pacman ), вместо этого использует формат, известный как ebuild. В то время как двоичные файлы RPM представляют собой предварительно скомпилированные двоичные файлы , ebuild- файлы представляют собой сценарии оболочки с переменными и функциями, которые содержат описание программного обеспечения и инструкции по его получению, настройке, компиляции и установке, более близкие к (но более мощные), чем . spec-файлы, распространяемые в SRPM . [8] Доступно более 19 000 ебилдов, большинство из которых распространяется через зеркала Gentoo.. Новые и обновленные ебилды можно получить, синхронизируя локальный репозиторий ебилдов с зеркалами. Это делается путем выполнения команды emerge --sync. Исторически Gentoo предоставлял предварительно скомпилированные двоичные пакеты для многих распространенных программ, особенно тех, которые долго компилируются, таких как Mozilla Firefox и OpenOffice.org . Они по-прежнему устанавливаются с помощью emerge, просто добавив "-bin" к имени пакета, чтобы вместо этого установить двоичную версию.

Пример ебилда для Терминатора :

# Copyright 1999-2020 Авторы Gentoo # Распространяется на условиях GNU General Public License v2EAPI = 7PYTHON_COMPAT = ( python3_ { 6 , 7,8 }  ) DISTUTILS_USE_SETUPTOOLS = "нет"наследовать distutils-r1 virtualx xdg-utilsDESCRIPTION = "Несколько терминалов GNOME в одном окне" HOMEPAGE = "https://github.com/gnome-terminator/terminator" SRC_URI = "https://github.com/gnome-terminator/terminator/releases/download/v $ { PV } / $ { P } .tar.gz "ЛИЦЕНЗИЯ = "GPL-2" SLOT = "0" KEYWORDS = "amd64 ~ ррс x 86" IUSE = "DBus + libnotify"RDEPEND = " > = dev-libs / glib-2.32: 2 dev-libs / keybinder: 3 [самоанализ] dev-python / configobj [ $ { PYTHON_USEDEP } ] dev-python / psutil [ $ { PYTHON_USEDEP } ] dev-python / pycairo [ $ { PYTHON_USEDEP } ] dev-python / pygobject: 3 [ $ { PYTHON_USEDEP } ] > = x11-libs / gtk + -3.16: 3 x11-libs / vte: 2.91 [самоанализ] dbus? (dev-python / dbus- python [ $ { PYTHON_USEDEP } ]) libnotify? (x11-libs / libnotify [самоанализ]) " BDEPEND =" dev-util / intltool "distutils_enable_tests setup.pyPATCHES = ( " $ { FILESDIR } " /terminator-1.91-without-icon-cache.patch " $ { FILESDIR } " /terminator-1.91-desktop.patch " $ { FILESDIR } " /terminator-1.92-make-tests- fail.patch " $ { FILESDIR } " /terminator-1.92-metainfo.patch )src_prepare ()  {xdg_environment_resetdistutils-r1_src_prepare}src_test ()  {virtx distutils-r1_src_test}pkg_postinst ()  {xdg_desktop_database_updatexdg_icon_cache_update}pkg_postrm ()  {xdg_desktop_database_updatexdg_icon_cache_update}

Бинарные пакеты [ править ]

Gentoo имеет двоичный формат упаковки, который представляет собой файл .tbz2 ( tar со сжатием bzip2 ) с дополнительными метаданными . Эта функция позволяет создавать бинарные пакеты в одной системе (с помощью Portage buildpkgили quickpkg) с последующей быстрой установкой в ​​других идентичных системах (с помощью Portage getbinpkgили emerge -K). Для получения дополнительной информации см. Возможности Portage в Руководстве по Gentoo Linux .

Маскировка [ править ]

Маскирование - это то, как Gentoo определяет, какие пакеты подходят для системы. Ebuild-файлы, разработанные для различных архитектур или экспериментального программного обеспечения, обычно замаскированы таким образом, что не позволяет стабильной системе установить их без вмешательства пользователя.

Пакеты, как правило , просто требуют некоторых испытаний , но часто работает хорошо , как говорит, ключевым слово маскируются (т.е. они доступны для систем с ACCEPT_KEYWORDS make.conf записи , начиная с символом ~, например ~x86, ~amd64, ~ppc). Стандартный способ демаскировать отдельный пакет, замаскированный ключевыми словами , - это добавить файл с полным именем пакета и ключевым словом в /etc/portage/package.keywords/. Пользователи также могут создавать здесь подкаталоги, что позволяет настраивать их организацию. Например, если замаскированный пакет имеет несколько замаскированных зависимостей, пользователь может создать каталог с именем исходного замаскированного пакета и поместить все файлы масок для пакета и его зависимостей в этот каталог. Эта схема заменяет старую схему наличия/etc/portage/package.keywords в виде списка текстовых файлов.

Пакеты с известными проблемами или недостаточно зрелые, чтобы стать кандидатами на стабильную работу, жестко маскируются одним из различных файлов package.mask в / usr / portage / profiles, и такие записи обычно сопровождаются комментарием от разработчиков, объясняющим причину маска.

Gentoo / Alt [ править ]

Gentoo / Alt - это проект, созданный для управления переносом фреймворка portage и других функций на другие операционные системы , такие как Mac OS X и бесплатные BSD . Gentoo / Alt был создан Питером Ван ден Абилом и Даниэлем Роббинсом после того, как Питер Ван ден Абил основал Gentoo для Mac OS X.

Mac OS X [ править ]

Gentoo для Mac OS X был первым проектом Gentoo, отличным от Linux, и был сосредоточен на том, чтобы сделать Gentoo доступным в операционной системе Apple , представив систему Portage как отдельный объект. Это было примерно похоже на Fink и MacPorts , но использовало Portage вместо системы, подобной Debian или Ports. Позже Gentoo для Mac OS X стал подпроектом Gentoo / Alt. В настоящее время [ когда? ] , проект больше не является активным, потому что его основное предположение об использовании и отказе от изменения ОС хоста оказалось нереалистичным и в конечном итоге сломало большинство пакетов или сделало их трудно обслуживаемые. Gentoo для Mac OS X был заменен префиксом Gentoo, который в настоящее время Gentoo предлагает пользователям Mac OS X. [9]

Проект Prefix в Mac OS X протестирован и поддерживается в Mac OS X Tiger, Leopard и Snow Leopard на архитектурах PowerPC , IA-32 и x86-64 . [10]

FreeBSD [ править ]

Gentoo / FreeBSD привносит дизайн, структуру и инструменты Gentoo Linux, такие как Portage и базовый макет Gentoo Linux, в операционную систему FreeBSD . Инструментарий Gentoo GNU используется вместо оригинальной FreeBSD.

Хотя проект больше не поддерживается активными разработчиками Gentoo, есть инструкции, позволяющие установить полную систему Gentoo / FreeBSD. [11] Системные ebuild-файлы FreeBSD интегрированы в главное дерево портежей, но этот перенос еще далек от завершения из-за количества пакетов, которые необходимо перенести, и отсутствия надлежащего Live CD (прямо сейчас [ когда? ] , FreeSBIE ' s Live CD или установочный компакт-диск FreeBSD используются во время установки).

Текущий (полу) официальный логотип Gentoo / FreeBSD - это демонизированная буква «g», производная от оригинального логотипа Gentoo Linux и вдохновленная BSD Daemon . Он был разработан Мариусом Моравски в ответ на неофициальный конкурс, организованный Диего Элио Петтено в своем блоге. [12]

NetBSD [ править ]

Gentoo / NetBSD - это проект по предоставлению пользовательской среды GNU, управляемой Portage, с ядром NetBSD. Проект был начат Дамианом Флорчиком. В настоящее время [ когда? ] только архитектура x86 предназначена, а система в целом находится в незавершенном состоянии.

OpenBSD [ править ]

Gentoo / OpenBSD - это подпроект Gentoo / * BSD для переноса таких функций Gentoo, как Portage, в операционную систему OpenBSD . Первоначально он был начат Грантом Гудиером и в настоящее время [ когда? ] на перерыве в разработке. ISO образ на основе OpenBSD 3.8 в настоящее время поддерживается Кароль Пастернака и его можно загрузить с веб - сайта проекта.

DragonFlyBSD [ править ]

Gentoo / DragonFlyBSD в настоящее время [ когда? ] неофициальный порт на ядро DragonFlyBSD . Проект разработан Робертом Себастьяном Герусом. [13]

GNU Hurd [ править ]

Неофициальный перенос на GNU Hurd также разрабатывался [14], но от него отказались в конце 2006 года.

Android [ править ]

Под руководством Бенды Сюй «Gentoo RAP для устройств Android » устанавливает вариант Gentoo под названием Gentoo RAP в префиксе каталога вместе с Android. [15] Ядро Linux используется как Android, так и Gentoo RAP. [15]

Interix [ править ]

Gentoo / Interix (eprefix) - это порт Gentoo, который работает поверх подсистемы Interix для Windows, также известной как службы Microsoft Windows для UNIX (SFU) или подсистема для приложений на базе Unix (SUA). Результатом проекта Gentoo / Interix является возможность установки и использования системы Portage для создания собственных приложений Windows (требуется Visual Studio, 2008 Express Edition тоже подойдет). Однако эта функция не поддерживает большое количество пакетов, поддерживаемых другими платформами (включая Interix).

Портарис [ править ]

Неофициальный перенос операционной системы Solaris , «Portaris», был объявлен примерно в 2006 году, но так и не стал общедоступным. Он был заменен проектом Gentoo Prefix.

План 9 [ править ]

Plan 9 For Gentoo, начатый в 2011 году как проект Google Summer of Code , берет основу Gentoo и накладывает на него пользовательское пространство, вдохновленное Plan 9 . [16] Заявленные цели проекта заключаются в том, чтобы обеспечить лучшую поддержку оборудования , лучшую поддержку программного обеспечения и создать «культурный шок» для людей, которые ранее использовали системы Linux . [16] Проект в настоящее время [ когда? ] поддерживается Робертом Ситоном. [16]

См. Также [ править ]

  • pkgsrc

Ссылки [ править ]

  1. ^ "репо / gentoo.git" . gitweb.gentoo.org . Проверено 1 февраля 2020 года .
  2. ^ "О Gentoo" . gentoo.org . Проверено 23 августа 2019 года .
  3. ^ Операционная система моей рабочей станции: Gentoo | Веб-сайт Тома Чанса. Архивировано 8 июля 2009 г. в Wayback Machine.
  4. Дэниел Роббинс (10 октября 2002 г.). «Gentoo Linux Reloaded - O'Reilly Media» . Проверено 27 мая 2015 года .
  5. ^ "OSNews.com" . Проверено 27 мая 2015 года .
  6. ^ «Проект: Спецификация диспетчера пакетов» . wiki.gentoo.org . Проверено 23 августа 2019 года .
  7. ^ Документация Gentoo Linux - Создание распределения, Часть 3 архивации 2014-12-22 в Wayback Machine
  8. ^ "ebuild - Gentoo Wiki" . wiki.gentoo.org . Проверено 17 декабря 2019 .
  9. ^ Гроффен, Фабиан (2005-12-15). «Цели проекта Gentoo для Mac OS X» . Архивировано из оригинала на 2008-05-21 . Проверено 20 июля 2017 .
  10. ^ Гроффен, Фабиан (2009-06-01). «Процесс начальной загрузки префикса Gentoo для Mac OS X» . Архивировано из оригинала на 2009-07-19 . Проверено 20 июля 2017 .
  11. ^ a b c d "Gentoo FreeBSD" . Gentoo Wiki . 2018-08-20 . Проверено 6 марта 2019 .
  12. ^ Pettenò, Диего Элио (2005-07-16). «Неофициальный конкурс художественных работ Gentoo / FreeBSD» . Журнал Flameeyes . Проверено 20 июля 2017 .
  13. ^ Goodyear, Грант; Петтено, Диего Элио (19 октября 2006 г.). "Gentoo / * BSD" . Архивировано из оригинала на 2007-12-28 . Проверено 20 июля 2017 .
  14. ^ "Gentoo GNU HURD" . Архивировано из оригинала на 2010-01-09 . Проверено 20 июля 2017 .
  15. ^ a b «Проект: Android - Gentoo Wiki» . Wiki.gentoo.org . 2016-01-13 . Проверено 24 сентября 2016 .
  16. ^ a b c Ситон, Роберт (01.08.2011). «План 9 из Gentoo: План 9 встречает Gentoo» . Архивировано из оригинала на 2012-04-26 . Проверено 20 июля 2017 .

Внешние ссылки [ править ]

Официальная документация
  • Документация Funtoo Portage [ актуально? ]
  • Возможности Gentoo Portage
  • Введение в Gentoo Portage
  • Работа с Portage
  • Пакеты Gentoo , информация о доступных на данный момент ебилдах
Неофициальная документация
  • Gentoo-Portage , альтернативное представление текущей информации по ebuild
  • Использование Portage
  • Установка portage на другие дистрибутивы Linux
Подобное программное обеспечение
  • Emerde, похожий на portage проект для Slackware
  • Pkgcore , bsd повторная реализация portage
  • Paludis , менеджер пакетов, который можно использовать с ебилдами и другими форматами.
  • Arch Build System - подобная портам система для Arch Linux.