Portage - это система управления пакетами, изначально созданная и используемая Gentoo Linux, а также Chrome OS , Calculate , Sabayon и Funtoo Linux среди других. Portage основан на концепции коллекций портов . Gentoo иногда называют мета-распределением из-за чрезвычайной гибкости Portage, которая делает его независимым от операционной системы . [2] [3] [4] [5] Проект Gentoo / Alt связан с использованием Portage для управления другими операционными системами, такими как BSD ,macOS и Solaris . Наиболее заметной из этих реализаций является проект Gentoo / FreeBSD .
Стабильный выпуск | 3.0.18 / 29 марта 2021 г . [1] |
---|---|
Репозиторий | |
Написано в | Python |
Операционная система | Gentoo Linux и Gentoo / FreeBSD , Chromium OS , Chrome OS , Sabayon , Funtoo Linux , Calculate Linux |
Платформа | POSIX -Совместим / Python сигнала управления на |
Тип | Система управления пакетами |
Лицензия | Стандартная общественная лицензия GNU v2 |
Веб-сайт | wiki |
В настоящее время продолжается работа, которая называется проектом спецификации диспетчера пакетов (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 - это сердце Portage. Команду можно настроить с помощью множества параметров и модификаторов. Утилита emerge - самая важная утилита для доступа к функциям Portage из командной строки .
Программа вычисляет и управляет зависимостями, выполняет ebuild-файлы и поддерживает локальное дерево Portage и базу данных установленных пакетов. Параметры компиляции, используемые ебилдами, могут быть изменены с помощью переменной среды CFLAGS , в зависимости от характеристик отдельного компьютера и желания пользователя по оптимизации. Утилита emerge выполняет ебилды в изолированной среде. Таким образом, система защищена от программного обеспечения, выполняемого ebuild, и полученные двоичные файлы объединяются только после успешной сборки и установки в песочнице.
То, что Emerge устанавливает как зависимости, зависит от настроек USE-флага. Они решают, какие дополнительные функции будут включены при установке или обновлении приложения. Команду emerge также можно использовать для загрузки и установки предварительно скомпилированных двоичных файлов.
USE-флаги
Система Portage предлагает использование «USE-флагов», которые позволяют пользователям указывать, какие программные функции они хотели бы включить (и исключить) при сборке пакетов. Например, есть USE-флаг для включения поддержки DVD , если таковая имеется, в пакеты, скомпилированные с включенным флагом. USE-флаги влияют на то, какие зависимости требуются, обычно влияя на то, какие дополнительные функции будут встроены в данную программу при ее компиляции. Например, в пакетах, которые используют сценарий настройки , USE-флаг feature
будет преобразован в ./configure --with-feature
.
Спецификация USE-флагов - это обычный способ настройки программ в Gentoo. USE-флаги могут быть установлены вручную или с помощью удобных инструментов, таких как ufed (редактор USE-флагов), в котором перечислены флаги вместе с их описанием. Список доступных USE-флагов доступен в Индексе USE-флагов на веб-сайте Gentoo .
ебилд
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.accept_keywords/
. Пользователи также могут создавать здесь подкаталоги, что позволяет настраивать их организацию. Например, если замаскированный пакет имеет несколько замаскированных зависимостей, пользователь может создать каталог с именем исходного замаскированного пакета и поместить все файлы масок для пакета и его зависимостей в этот каталог. Эта схема заменяет старую схему /etc/portage/package.accept_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 Prefix , который в настоящее время Gentoo предлагает пользователям Mac OS X. [9]
Проект Prefix в Mac OS X протестирован и поддерживается в Mac OS X Tiger, Leopard и Snow Leopard на архитектурах PowerPC , IA-32 и x86-64 . [10]
FreeBSD
Семейство ОС | Unix-подобный ( BSD ) |
---|---|
Рабочее состояние | Снято с производства [11] |
Исходная модель | Открытый источник |
Репозиторий |
|
Менеджер пакетов | Portage |
Тип ядра | Монолитный (kFreeBSD) [11] |
Userland | FreeBSD [11] |
Лицензия | Разные |
Официальный веб-сайт | Gentoo / FreeBSD |
Gentoo / FreeBSD привносит дизайн, структуру и инструменты Gentoo Linux, такие как Portage и базовый макет Gentoo Linux, в операционную систему FreeBSD . Инструментарий Gentoo GNU используется вместо оригинальной FreeBSD.
Хотя проект больше не поддерживается активными разработчиками Gentoo, есть инструкции, позволяющие установить полную систему Gentoo / FreeBSD. [11] Системные ebuild-файлы FreeBSD интегрированы в главное дерево портежей, но этот перенос еще далек от завершения из-за количества пакетов, которые необходимо перенести, и отсутствия надлежащего Live CD (Live CD от FreeSBIE или установочный компакт-диск FreeBSD используется при установке).
Текущий (полу) официальный логотип Gentoo / FreeBSD - это демонизированная буква «g», производная от оригинального логотипа Gentoo Linux и вдохновленная BSD Daemon . Он был разработан Мариусом Моравски в ответ на неофициальный конкурс, организованный Диего Элио Петтено в своем блоге. [12]
NetBSD
Gentoo / NetBSD - это проект по предоставлению пользовательской среды GNU, управляемой Portage, с ядром NetBSD. Проект был начат Дамианом Флорчиком. Нацелена только на архитектуру x86, а система в целом находится в незавершенном состоянии.
OpenBSD
Семейство ОС | Unix-подобный ( BSD ) |
---|---|
Исходная модель | Открытый источник |
Последний релиз | Префикс Gentoo в OpenBSD / 4 апреля 2011 г. |
Репозиторий |
|
Менеджер пакетов | Portage |
Тип ядра | Монолитный (kOpenBSD) |
Userland | OpenBSD |
Лицензия | Разные |
Официальный веб-сайт | Gentoo / 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).
Portaris
Неофициальный перенос операционной системы Solaris , «Portaris», был объявлен примерно в 2006 году, но так и не стал общедоступным. Он был заменен проектом Gentoo Prefix.
План 9
Plan 9 For Gentoo, начатый в 2011 году как проект Google Summer of Code , берет основу Gentoo и накладывает на него пользовательское пространство, вдохновленное Plan 9 . [16] Заявленные цели проекта заключаются в том, чтобы обеспечить лучшую поддержку оборудования , лучшую поддержку программного обеспечения и создать «культурный шок» для людей, которые ранее использовали системы Linux . [16] Проект поддерживается Робертом Ситоном. [16]
Смотрите также
- pkgsrc
Рекомендации
- ^ "репо / gentoo.git" . gitweb.gentoo.org . Проверено 30 апреля 2021 года .
- ^ «О Gentoo» . gentoo.org . Проверено 23 августа 2019 года .
- ^ Операционная система моей рабочей станции: Gentoo | Веб-сайт Тома Чанса. Архивировано 8 июля 2009 г. в Wayback Machine.
- ^ Дэниел Роббинс (10 октября 2002 г.). «Gentoo Linux Reloaded - O'Reilly Media» . Дата обращения 27 мая 2015 .
- ^ "OSNews.com" . Дата обращения 27 мая 2015 .
- ^ «Проект: Спецификация диспетчера пакетов» . wiki.gentoo.org . Проверено 23 августа 2019 года .
- ^ Документация Gentoo Linux - Создание распределения, Часть 3 архивации 2014-12-22 в Wayback Machine
- ^ "ebuild - Gentoo Wiki" . wiki.gentoo.org . Проверено 17 декабря 2019 .
- ^ Гроффен, Фабиан (15 декабря 2005 г.). «Цели проекта Gentoo для Mac OS X» . Архивировано из оригинала на 2008-05-21 . Проверено 20 июля 2017 .
- ^ Гроффен, Фабиан (2009-06-01). «Процесс начальной загрузки префикса Gentoo для Mac OS X» . Архивировано из оригинала на 2009-07-19 . Проверено 20 июля 2017 .
- ^ а б в г «Gentoo FreeBSD» . Gentoo Wiki . 2018-08-20 . Проверено 6 марта 2019 .
- ^ Петтено, Диего Элио (16 июля 2005 г.). «Неофициальный конкурс художественных работ Gentoo / FreeBSD» . Журнал Flameeyes . Проверено 20 июля 2017 .
- ^ Goodyear, Грант; Петтено, Диего Элио (19 октября 2006 г.). "Gentoo / * BSD" . Архивировано из оригинала на 2007-12-28 . Проверено 20 июля 2017 .
- ^ "Gentoo GNU HURD" . Архивировано из оригинала на 2010-01-09 . Проверено 20 июля 2017 .
- ^ а б «Проект: Android - Gentoo Wiki» . Wiki.gentoo.org . 2016-01-13 . Проверено 24 сентября 2016 .
- ^ а б в Ситон, Роберт (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.