Portage (программное обеспечение) - Portage (software)

Portage
Portage в действии
Portage в действии
Стабильный выпуск
2.3.87 / 1 февраля 2020; 10 месяцев назад (2020-02-01)[1]
Репозиторий Отредактируйте это в Викиданных
Написано вPython
Операционная системаGentoo Linux и Gentoo / FreeBSD, Chromium OS, Chrome OS, Сабайон, Funtoo Linux, Рассчитать Linux
ПлатформаPOSIX -совместимый/Python -способный
ТипСистема управления пакетами
ЛицензияСтандартная общественная лицензия GNU v2
Интернет сайтвики.gentoo.org/ wiki/ Проект: Portage

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

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

Обзор

Доступ к Portage

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

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

А GTK + -на основе графического интерфейса, Иллюминатор, доступен для работы с Portage. Также есть Himerge GUI, что означает «Интерфейс Haskell для eMerge».

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

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

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

Функции

Появляться

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

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

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

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

USE-флаги

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

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

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

ебилд

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

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

# Copyright 1999-2020 Авторы Gentoo# Распространяется на условиях GNU General Public License v2.EAPI=7PYTHON_COMPAT=( python3_{6,7,8} )DISTUTILS_USE_SETUPTOOLS="нет"наследовать distutils-r1 virtualx xdg-utilsОПИСАНИЕ=«Несколько терминалов GNOME в одном окне»ГЛАВНАЯ="https://github.com/gnome-terminator/terminator"SRC_URI="https://github.com/gnome-terminator/terminator/releases/download/v${PV}/${п}.tar.gz "ЛИЦЕНЗИЯ="GPL-2"СЛОТ="0"КЛЮЧЕВЫЕ СЛОВА="amd64 ~ ppc x86"Я ИСПОЛЬЗУЮ="dbus + libnotify"ОТКРЫТЬ="> = dev-библиотеки / glib-2.32: 2dev-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-библиотеки / gtk + -3.16: 3x11-libs / vte: 2.91 [самоанализ]dbus? (dev-python / dbus-python [${PYTHON_USEDEP}] )libnotify? (x11-libs / libnotify [самоанализ])"BDEPEND="dev-util / intltool"distutils_enable_tests setup.pyПАТЧИ=(	"${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_reset distutils-r1_src_prepare}src_test() {virtx distutils-r1_src_test}pkg_postinst() {xdg_desktop_database_update xdg_icon_cache_update}pkg_postrm() {xdg_desktop_database_update xdg_icon_cache_update}

Бинарные пакеты

Gentoo имеет двоичный формат упаковки, который .tbz2 файл (деготь с bzip2 сжатие) с дополнительным метаданные. Эта функция позволяет создавать бинарные пакеты в одной системе (используя Portage's buildpkg или же quickpkg) с последующей быстрой установкой на другие идентичные системы (с помощью Portage getbinpkg или же появиться -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 - это проект, созданный для управления переносом фреймворка портежа и других функций на другие операционные системы, Такие как Mac OS X и свободный BSD. Gentoo / Alt был создан Питер Ван ден Абеле и Дэниел Роббинс после того, как Питер Ван ден Абил основал Gentoo для Mac OS X.

Mac OS X

Gentoo для Mac OS X был первым проектом Gentoo, отличным от Linux, и сосредоточился на том, чтобы сделать опыт Gentoo доступным на яблоко операционной системы, представив систему Portage как отдельный объект. Это было примерно похоже на Финк и 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 / FreeBSD
Семейство ОСUnix-подобный (BSD )
Рабочее состояниеСнято с производства[11]
Исходная модельОткрытый исходный код
Репозиторий Отредактируйте это в Викиданных
Менеджер пакетовPortage
Ядро типМонолитный (kFreeBSD)[11]
UserlandFreeBSD[11]
ЛицензияРазные
Официальный веб-сайтGentoo / FreeBSD

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

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

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

NetBSD

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

OpenBSD

Gentoo / OpenBSD
Логотип Gentoo / OpenBSD
Семейство ОСUnix-подобный (BSD )
Исходная модельОткрытый исходный код
Последний релизПрефикс Gentoo в OpenBSD / 4 апреля 2011 г. (2011-04-04)
Репозиторий Отредактируйте это в Викиданных
Менеджер пакетовPortage
Ядро типМонолитный (kOpenBSD)
UserlandOpenBSD
ЛицензияРазные
Официальный веб-сайтGentoo / OpenBSD

Gentoo / OpenBSD - это подпроект Gentoo / * BSD для переноса таких функций Gentoo, как Portage, на OpenBSD Операционная система. Первоначально он был начат Грантом Гудиером и в настоящее время[когда? ] на перерыве в развитии. An 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

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

План 9

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

Смотрите также

Рекомендации

  1. ^ "репо / gentoo.git". gitweb.gentoo.org. Получено 1 февраля, 2020.
  2. ^ "О Gentoo". gentoo.org. Получено 23 августа, 2019.
  3. ^ ОС моей рабочей станции: Gentoo | Сайт Тома Чанса В архиве 2009-07-08 в 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. Получено 2019-12-17.
  9. ^ Гроффен, Фабиан (2005-12-15). «Цели проекта Gentoo для Mac OS X». Архивировано из оригинал на 2008-05-21. Получено 2017-07-20.
  10. ^ Гроффен, Фабиан (2009-06-01). "Процесс начальной загрузки префикса Gentoo для Mac OS X". Архивировано из оригинал в 2009-07-19. Получено 2017-07-20.
  11. ^ а б c d "Gentoo FreeBSD". Gentoo Wiki. 2018-08-20. Получено 2019-03-06.
  12. ^ Петтено, Диего Элио (16 июля 2005 г.). "Неофициальный конкурс художественных работ Gentoo / FreeBSD". Журнал Flameeyes. Получено 2017-07-20.
  13. ^ Goodyear, Грант; Петтено, Диего Элио (19 октября 2006 г.). "Gentoo / * BSD". Архивировано из оригинал на 2007-12-28. Получено 2017-07-20.
  14. ^ "Gentoo GNU HURD". Архивировано из оригинал на 2010-01-09. Получено 2017-07-20.
  15. ^ а б «Проект: Android - Gentoo Wiki». Wiki.gentoo.org. 2016-01-13. Получено 2016-09-24.
  16. ^ а б c Ситон, Роберт (01.08.2011). "Plan 9 From Gentoo: Plan 9 встречает Gentoo". Архивировано из оригинал на 2012-04-26. Получено 2017-07-20.

внешняя ссылка

Официальная документация
Неофициальная документация
Подобное программное обеспечение