Портедж (программное обеспечение)
Оригинальный автор(ы) | Дэниел Роббинс |
---|---|
Разработчик(и) | Разработчики Gentoo (пользователи Funtoo для форка Funtoo) |
Стабильная версия | 3.0.64 [1]
/ 28 апреля 2024 г |
Репозиторий | |
Написано в | Питон, [2] сценарий оболочки, [2] С [2] |
Операционная система | Gentoo Linux и Gentoo/FreeBSD , ChromiumOS , ChromeOS , Sabayon , Funtoo Linux , Calculate Linux |
Платформа | Совместимость с POSIX / Python совместимость с |
Тип | менеджер пакетов, бесплатное программное обеспечение |
Лицензия | Стандартная общественная лицензия GNU |
Веб-сайт | неделя |
Portage — это система управления пакетами, изначально созданная и используемая Gentoo Linux , а также ChromeOS , Calculate , Sabayon и Funtoo Linux , среди других. Portage основан на концепции коллекций портов . Gentoo иногда называют метадистрибутивом из -за чрезвычайной гибкости Portage, которая делает его независимым от операционной системы . [3] [4] [5] [6] Проект Gentoo/Alt был связан с использованием Portage для управления другими операционными системами, такими как BSD , macOS и Solaris . Наиболее заметной из этих реализаций является проект Gentoo/FreeBSD .
В настоящее время ведется работа под названием «Проект спецификации диспетчера пакетов» (PMS). [7] целью которого является стандартизация и документирование поведения Portage, позволяя ebuild использовать дерево и системные пакеты Gentoo с альтернативными менеджерами пакетов, такими как Paludis и pkgcore. Его цель — определить точный набор функций и поведение менеджеров пакетов и ebuild, служа авторитетным справочником по Portage.
Обзор
[ редактировать ]Доступ к Портажу
[ редактировать ]Portage похож на BSD в стиле систему управления пакетами , известную как порты , и изначально был разработан с . учетом портов FreeBSD [8] Portage написан на языке программирования Python и является основной утилитой, определяющей Gentoo. Хотя сама система известна как Portage, она состоит из двух основных частей: системы ebuild и Ether . Система ebuild берет на себя всю работу по сборке и установке пакетов, в то время как система Erge предоставляет интерфейс для ebuild: управление репозиторием ebuild, разрешение зависимостей и подобные проблемы. (Поэтому эти два параметра имеют примерно такое же отношение, как rpm с yum или dpkg с APT .)
графический GTK+ на базе интерфейс Porthole Для работы с Portage доступен . Существует также графический интерфейс Himerge , что означает «Интерфейс Haskell для eMerge».
Предоставляемые функции
[ редактировать ]Portage характеризуется своей основной функцией: компиляция из исходного кода пакетов, которые пользователь желает установить. При этом он позволяет настраивать параметры компилятора и целевого приложения в соответствии со спецификациями системы и собственными пожеланиями пользователя. Функциональные возможности, связанные с управлением системой, включают в себя: разрешение параллельной установки версий пакетов, отслеживание межпакетных зависимостей , управление базой данных установленных пакетов, предоставление локального репозитория ebuild и синхронизацию локального дерева портежей с удаленными репозиториями. Функциональные возможности, связанные с установкой отдельного пакета, включают в себя: указание параметров компиляции для целевого компьютера и выбор компонентов пакета.
Portage различает три уровня стабильности в ebuild-сборках: стабильный (например, программное обеспечение работает так, как задумано, без известных проблем безопасности на момент выпуска), замаскированный по ключевым словам (в основном для пакетов, которые не были достаточно протестированы на архитектуре целевой системы, чтобы их можно было рассматривать). стабильные) и жестко замаскированные (сломанные или очень небезопасные) пакеты.
Функции
[ редактировать ]Появляться
[ редактировать ]Инструмент командной строки «emerging» — это сердце Portage. Команда настраивается с помощью множества опций и модификаторов. Инструмент Ether — важнейшая утилита для доступа к функциям Portage из командной строки .
Программа вычисляет зависимости и управляет ими, выполняет ebuild и поддерживает локальное дерево портежей и базу данных установленных пакетов. Параметры компиляции, используемые ebuild-файлами, можно изменить с помощью CFLAGS переменной среды в зависимости от характеристик отдельного компьютера и желания пользователя провести оптимизацию. Утилита «emerging» выполняет ebuild в « песочнице» . Таким образом, система защищена от программного обеспечения, выполняемого ebuild, и полученные двоичные файлы объединяются только после успешной сборки и установки в песочнице.
На то, что возникает в качестве зависимостей, влияют настройки USE-флага. Они решают, какие дополнительные функции будут включены при установке или обновлении приложения. Команду «emerging» также можно использовать для загрузки и установки предварительно скомпилированных двоичных файлов.
USE-флаги
[ редактировать ]Система Portage предлагает использование «USE-флагов», которые позволяют пользователям указывать, какие функции программного обеспечения они хотели бы включить (и исключить) при создании пакетов. Например, существует USE-флаг для включения поддержки DVD , где это возможно, в пакеты, скомпилированные с включенным флагом. USE-флаги влияют на то, какие зависимости необходимы, обычно влияя на то, какие дополнительные функции будут встроены в данную программу при ее компиляции. Например, в пакетах, использующих сценарий настройки , USE-флаг feature
перевел бы на ./configure --with-feature
.
Указание USE-флагов — это обычный способ настройки программ в Gentoo. USE-флаги можно устанавливать вручную или с помощью удобных для пользователя инструментов, таких как «ufed» (редактор USE-флагов), в котором флаги перечислены вместе с их описанием. Список доступных USE-флагов доступен в Индексе USE-флагов на веб-сайте Gentoo .
ebuild
[ редактировать ]Gentoo по умолчанию не использует двоичные пакеты, как это делают другие системы управления пакетами (например, pacman или apt), а использует вместо этого формат, известный как ebuild. В то время как двоичные файлы RPM — это предварительно скомпилированные двоичные файлы , ebuild — это сценарии оболочки с переменными и функциями, которые содержат описание программного обеспечения, а также инструкции по его получению, настройке, компиляции и установке, более близкие к . файлы спецификаций, распространяемые в SRPM . [9] Официальный репозиторий содержит более 19 600 ebuild, большинство из которых распространяются через зеркала Gentoo . Новые и обновленные сборки ebuild можно получить, синхронизировав локальные репозитории ebuild с зеркалами. Это делается путем выполнения команды emaint sync -a
. Исторически сложилось так, что Gentoo предоставляет предварительно скомпилированные двоичные пакеты для многих распространенных программ, особенно тех, компиляция которых требует длительного времени, таких как Mozilla Firefox и OpenOffice.org . Они по-прежнему устанавливаются вместе с Ether, просто добавляя «-bin» к имени пакета, чтобы вместо этого установить двоичную версию.
Пример ebuild для GNOME Terminator :
# Copyright 1999-2020 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
PYTHON_COMPAT=( python3_{6,7,8} )
DISTUTILS_USE_SETUPTOOLS="no"
inherit distutils-r1 virtualx xdg-utils
DESCRIPTION="Multiple GNOME terminals in one window"
HOMEPAGE="https://github.com/gnome-terminator/terminator"
SRC_URI="https://github.com/gnome-terminator/terminator/releases/download/v${PV}/${P}.tar.gz"
LICENSE="GPL-2"
SLOT="0"
KEYWORDS="amd64 ~ppc x86"
IUSE="dbus +libnotify"
RDEPEND="
>=dev-libs/glib-2.32:2
dev-libs/keybinder:3[introspection]
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[introspection]
dbus? ( dev-python/dbus-python[${PYTHON_USEDEP}] )
libnotify? ( x11-libs/libnotify[introspection] )
"
BDEPEND="
dev-util/intltool
"
distutils_enable_tests setup.py
PATCHES=(
"${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 ( tar со сжатием bzip2 ) с дополнительными метаданными . Эта функция позволяет собирать бинарные пакеты в одной системе (с использованием Portage buildpkg
или quickpkg
) с последующей быстрой установкой на совместимые системы (с помощью Portage's 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 — это проект, созданный для управления портированием платформы Portage и других функций на другие операционные системы , такие как Mac OS X и бесплатные BSD . Gentoo/Alt был создан Питером Ван ден Абилом и Дэниелом Роббинсом после того, как Питер Ван ден Абил основал Gentoo для 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. [10]
Проект Prefix для Mac OS X протестирован и поддерживается в Mac OS X Tiger, Leopard и Snow Leopard на PowerPC , IA-32 и x86-64 . архитектурах [11]
FreeBSD
[ редактировать ]Семейство ОС | Unix-подобный ( BSD ) |
---|---|
Рабочее состояние | Снято с производства [12] |
Исходная модель | Открытый исходный код |
Репозиторий | |
Менеджер пакетов | Перевозка |
ядра Тип | Монолитный (kFreeBSD) [12] |
Пользовательское пространство | FreeBSD [12] |
Лицензия | Различный |
Официальный сайт | Генту/FreeBSD |
Gentoo/FreeBSD привносит дизайн, структуру и инструменты Gentoo Linux, такие как Portage и базовый макет Gentoo Linux, в операционную систему FreeBSD . Gentoo инструментальная цепочка GNU Вместо оригинальной FreeBSD используется .
Хотя проект больше не поддерживается активными разработчиками Gentoo, существуют инструкции, позволяющие установить полную систему Gentoo/FreeBSD. [12] Системные ebuild FreeBSD интегрированы в основное дерево портов, но этот порт далек от завершения из-за большого количества пакетов, которые необходимо портировать, и отсутствия надлежащего Live CD ( . при этом используется Live CD FreeSBIE или установочный компакт-диск FreeBSD) установка).
Текущий (полу)официальный логотип Gentoo/FreeBSD представляет собой демонизированную букву «g», заимствованную из оригинального логотипа Gentoo Linux и вдохновленную BSD Daemon . Его разработал Мариус Моравски в ответ на неофициальный конкурс, объявленный Диего Элио Петтено в его блоге. [14]
NetBSD
[ редактировать ]Gentoo/NetBSD — это проект по предоставлению GNU, пользовательской среды управляемой Portage, с ядром NetBSD. Проект начал Дамиан Флорчик. Ориентирована только на архитектуру x86 , а система в целом находится в незавершенном состоянии.
OpenBSD
[ редактировать ]Семейство ОС | Unix-подобный ( BSD ) |
---|---|
Исходная модель | Открытый исходный код |
Последний выпуск | Префикс Gentoo в OpenBSD / 4 апреля 2011 г. |
Репозиторий | |
Менеджер пакетов | Перевозка |
ядра Тип | Монолитный (kOpenBSD) |
Пользовательское пространство | OpenBSD |
Лицензия | Различный |
Официальный сайт | Генту/OpenBSD |
Gentoo/OpenBSD — это подпроект Gentoo/*BSD, предназначенный для переноса функций Gentoo, таких как Portage, в операционную систему OpenBSD . Первоначально он был начат Грантом Гудиером и в настоящее время [ когда? ] на перерыве в разработке. ISO -образ на основе OpenBSD 3.8 в настоящее время поддерживается Каролем Пастернаком и может быть загружен с веб-сайта проекта.
ДраконМухаBSD
[ редактировать ]Gentoo/DragonFlyBSD в настоящее время является [ когда? ] неофициальный порт ядра DragonFlyBSD . Проект разработан Робертом Себастьяном Герусом. [15]
ГНУ Херд
[ редактировать ]неофициальный порт для GNU Hurd . Также разрабатывался [16] но был заброшен в конце 2006 года.
Андроид
[ редактировать ]Под руководством Бенды Сюй «Gentoo RAP для устройств Android » устанавливает вариант Gentoo под названием Gentoo RAP в префикс каталога рядом с Android. [17] Ядро Linux используется как Android, так и Gentoo RAP. [17]
Интерикс
[ редактировать ]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 . [18] Заявленные цели проекта — улучшить аппаратную поддержку, лучшую поддержку программного обеспечения и вызвать «культурный шок» для людей, которые ранее использовали системы Linux . [18] Проект поддерживается Робертом Ситоном. [18]
См. также
[ редактировать ]Ссылки
[ редактировать ]- ^ "proj/portage.git" . 28 апреля 2024 г. Проверено 17 мая 2024 г.
- ^ Jump up to: а б с «Проект с открытым исходным кодом Gentoo Portage на Open Hub: страница языков» . Открыть хаб . Проверено 18 мая 2024 г.
- ^ «О Генту» . gentoo.org . Архивировано из оригинала 21 декабря 2018 года . Проверено 23 августа 2019 г.
- ^ ОС моей рабочей станции: Gentoo | Веб-сайт Тома Ченса. Архивировано 8 июля 2009 г. в Wayback Machine.
- ^ Дэниел Роббинс (10 октября 2002 г.). «Перезагрузка Gentoo Linux — O'Reilly Media» . Архивировано из оригинала 14 октября 2017 года . Проверено 27 мая 2015 г.
- ^ «OSNews.com» . Архивировано из оригинала 29 сентября 2007 года . Проверено 27 мая 2015 г.
- ^ «Проект: Спецификация диспетчера пакетов» . wiki.gentoo.org . Архивировано из оригинала 8 июля 2019 года . Проверено 23 августа 2019 г.
- ^ Документация Gentoo Linux — Создание дистрибутива, часть 3. Архивировано 22 декабря 2014 г. на Wayback Machine.
- ^ «ebuild — Gentoo Wiki» . wiki.gentoo.org . Архивировано из оригинала 17 декабря 2019 г. Проверено 17 декабря 2019 г.
- ^ Гроффен, Фабиан (15 декабря 2005 г.). «Цели проекта Gentoo для Mac OS X» . Архивировано из оригинала 21 мая 2008 г. Проверено 20 июля 2017 г.
- ^ Гроффен, Фабиан (1 июня 2009 г.). «Процесс загрузки префикса Gentoo для Mac OS X» . Архивировано из оригинала 19 июля 2009 г. Проверено 20 июля 2017 г.
- ^ Jump up to: а б с д «Генту FreeBSD» . Генту вики . 20 августа 2018 г. Архивировано из оригинала 6 января 2014 г. Проверено 6 марта 2019 г.
- ^ «Индекс /experimental/bsd/freebsd/stages/amd64-fbsd-9.1» . Distfiles.gentoo.org . 07.07.2013. Архивировано из оригинала 27 сентября 2016 г. Проверено 24 сентября 2016 г.
- ^ Петтено, Диего Элио (16 июля 2005 г.). «Неофициальный конкурс художественных работ Gentoo/FreeBSD» . Блог Flameeyes . Архивировано из оригинала 19 апреля 2019 г. Проверено 20 июля 2017 г.
- ^ Гудиер, Грант; Петтено, Диего Элио (19 октября 2006 г.). «Генту/*BSD» . Архивировано из оригинала 28 декабря 2007 г. Проверено 20 июля 2017 г.
- ^ «Gentoo GNU ХЕРД» . Архивировано из оригинала 9 января 2010 г. Проверено 20 июля 2017 г.
- ^ Jump up to: а б «Проект: Android — Gentoo Wiki» . Wiki.gentoo.org . 13 января 2016 г. Архивировано из оригинала 24 октября 2016 г. Проверено 24 сентября 2016 г.
- ^ Jump up to: а б с Ситон, Роберт (1 августа 2011 г.). «План 9 из Gentoo: Plan 9 в сочетании с Gentoo» . Архивировано из оригинала 26 апреля 2012 г. Проверено 20 июля 2017 г.
Внешние ссылки
[ редактировать ]- Официальная документация
- Документация Funtoo Portage [ соответствующий? ]
- Возможности Gentoo Portage
- Введение в Gentoo Portage
- Работа с Портежем
- Gentoo Packages , информация о доступных на данный момент ebuild-файлах.
- Неофициальная документация
- Gentoo-Portage , альтернативное представление текущей информации о ebuild
- Использование Портежа
- Установка portage в другие дистрибутивы Linux
- Подобное программное обеспечение
- Emerde, проект, похожий на portage, для Slackware.
- Pkgcore , bsd повторная реализация portage
- Paludis. Архивировано 23 сентября 2020 г. в Wayback Machine , менеджере пакетов, который можно использовать с ebuild и другими форматами.
- Arch Build System — система, похожая на порты, для Arch Linux.