Portage: различия между версиями

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску
[отпатрулированная версия][отпатрулированная версия]
Содержимое удалено Содержимое добавлено
Метка: добавление ссылки
Спасено источников — 1, отмечено мёртвыми — 0. Сообщить об ошибке. См. FAQ.) #IABot (v2.0.9.5
 
(не показаны 34 промежуточные версии 28 участников)
Строка 1: Строка 1:
{{Infobox software
'''Portage''' — основная система управления пакетами в [[Gentoo Linux]]. Аналог [[FreeBSD Ports|системы портов]] [[FreeBSD]].
| name = Portage
Представляет собой набор утилит на [[Python]] и [[Bash]], призванных облегчить и упорядочить установку программного обеспечения из исходных кодов или бинарных пакетов, с учетом всех зависимостей.
| logo =
| screenshot = Portage-oppdatering.png
| caption = Работа системы Portage
| author = Zac Medico, Ned Ludd, Mike Frysinger, Mounir Lamouri
| released = 2006
| последняя версия = 3.0.44<ref>{{cite web|title=portage-3.0.44|url=https://gitweb.gentoo.org/proj/portage.git/tag/?h=portage-3.0.44|access-date=2023-01-25|archive-date=2023-01-25|archive-url=https://web.archive.org/web/20230125113007/https://gitweb.gentoo.org/proj/portage.git/tag/?h=portage-3.0.44|deadlink=no}}</ref> ([[15 января]] [[2023]])
| operating system = [[Gentoo Linux]] и [[Gentoo/FreeBSD]]
| platform = [[POSIX]]-совместимые/[[Python]]
| genre = [[Система управления пакетами]]
| programming language = [[Python]]
| состояние = активное
| license = [[GNU General Public License]] [[GNU General Public License#GPL v2|v2]]
| website = http://www.gentoo.org/proj/en/portage/
| Исходники = https://gitweb.gentoo.org/proj/portage.git/
}}


'''Portage''' — основная система управления пакетами в [[Gentoo Linux]]. Аналог [[FreeBSD Ports|системы портов]] [[FreeBSD]].
Основной пользовательский интерфейс Portage — консольная программа <code>emerge</code>, которая позволяет устанавливать новые пакеты с учетом зависимостей и с возможностью управления вариантами установки — например с поддержкой определенных функций или без поддержки ненужных функций (управление параметрами сборки осуществляется через так называемые USE-флаги), удалять ненужные пакеты, обновлять установленные пакеты, проводить синхронизацию с [[#Дерево портежей|деревом портежей]] (по протоколу [[rsync]]) и т. д. Программа <code>ebuild</code> служит интерфейсом низкого уровня к Portage, а <code>emerge</code> — высокоуровневая оболочка для неё.
Представляет собой набор утилит на [[Python]] и [[Bash]], призванных облегчить и упорядочить установку программного обеспечения из исходных кодов или бинарных пакетов, с учётом всех зависимостей.


Основной пользовательский интерфейс Portage — консольная программа <code>emerge</code>, которая позволяет устанавливать новые пакеты с учётом зависимостей и с возможностью управления вариантами установки — например с поддержкой определённых функций или без поддержки ненужных функций (управление параметрами сборки осуществляется через так называемые USE-флаги), удалять ненужные пакеты, обновлять установленные пакеты, проводить синхронизацию с [[#Дерево портежей|деревом портежей]] (по протоколу [[rsync]]) и т. д. Программа <code>ebuild</code> служит интерфейсом низкого уровня к Portage, а <code>emerge</code> — высокоуровневая оболочка для неё.
Главный конфигурационный файл системы Portage — <code>/etc/make.conf</code>. В нем настраиваются основные параметры [[Компилятор|компиляторов]] и дополнительные возможности их использования (например, применением [[ccache]], [[distcc]]), установки USE-флагов, [[HTTP]]-[[прокси]], [[FTP]]-прокси, SYNC, ACCEPT_KEYWORDS и других, необходимых для работы системы Portage.

Главный конфигурационный файл системы Portage — <code>/etc/portage/make.conf</code>. В нём настраиваются основные параметры [[компилятор]]ов и дополнительные возможности их использования (например, применением [[ccache]], [[distcc]]), установки USE-флагов, [[HTTP]]-[[Прокси-сервер|прокси]], [[FTP]]-прокси, SYNC, ACCEPT_KEYWORDS и других, необходимых для работы системы Portage.


Другие конфигурационные файлы системы находятся в <code>/etc/portage/</code> и позволяют более тонко конфигурировать различные аспекты системы portage.
Другие конфигурационные файлы системы находятся в <code>/etc/portage/</code> и позволяют более тонко конфигурировать различные аспекты системы portage.


== Дерево портежей ==
== Дерево портежей ==
Дерево портежей обычно располагается в каталоге <code>/usr/portage/</code> и представляет собой упорядоченную систему каталогов-категорий пакетов (вида <code>app-emacs</code>, <code>dev-php</code>), в каждом из которых содержатся каталоги отдельных пакетов. В дереве каждый пакет состоит из набора [[ebuild]]-файлов, файла [[Changelog]] данного пакета, файла <code>metadata.xml</code> c [[Метаданные|метаданными]] о пакете и, возможно, нескольких других некрупных файлов, нужных для сборки пакета (например, [[патч]]ей).

Дерево портежей обычно располагается в каталоге <code>/usr/portage/</code> и представляет собой упорядоченную систему директорий-категорий пакетов (вида <code>app-emacs</code>, <code>dev-php</code>), в каждой из которых содержатся директории отдельных пакетов. В дереве каждый пакет состоит из набора [[ebuild]]-файлов, файла [[Changelog]] данного пакета, файла <code>metadata.xml</code> c [[Метаданные|метаданными]] о пакете и, возможно, нескольких других некрупных файлов, нужных для сборки пакета (например, [[патч]]ей).


Кроме того, в дереве портежей хранятся все [[Лицензия|лицензии]], которые используются пакетами.
Кроме того, в дереве портежей хранятся все [[Лицензия|лицензии]], которые используются пакетами.


В директорию <code>/usr/portage/distfiles/</code> обычно помещаются файлы [[дистрибутив]]ов программ, скачиваемые во время установки пакетов.
В каталог <code>/usr/portage/distfiles/</code> обычно помещаются файлы [[дистрибутив]]ов программ, скачиваемые во время установки пакетов.


=== Оверлеи ===
=== Оверлеи ===
Оверлеи представляют собой хранилища пакетов, не включённые в основное дерево портежей. Обычно туда включают более новые версии программ или те программы, которых ещё нет в официальном дереве, live-версии, нестандартные расширения и патчи. Оверлеи могут быть локальными — присутствовать только на компьютере пользователя. Один из вариантов применения локального оверлея — установка [[ebuild]]-файлов, не включённых в какой-либо публичный оверлей, либо тестирование [[ebuild]]-файлов. Для упрощения работы с оверлеями служит утилита [[Portage#layman|layman]].

Оверлеи представляют собой хранилища пакетов, не включенные в основное дерево портежей. Обычно туда включают более новые версии программ или те программы, которых еще нет в официальном дереве, live-версии, нестандартные расширения и патчи. Оверлеи могут быть локальными — присутствовать только на компьютере пользователя. Один из вариантов применения локального оверлея — установка [[ebuild]]-файлов, не включенных в какой-либо публичный оверлей, либо тестирование [[ebuild]]-файлов. Для упрощения работы с оверлеями служит утилита [[Portage#layman|layman]].


=== live-пакеты ===
=== live-пакеты ===

Обычно при установке некоторой версии программы скачивается архив с исходными кодами, соответствующий устанавливаемой версии. В случае с live-пакетами исходные коды получаются из системы контроля версий данной программы. Таким образом, live-пакеты позволяют иметь самую что ни на есть свежую программу. Такие пакеты, как правило, имеют версию 9999.
Обычно при установке некоторой версии программы скачивается архив с исходными кодами, соответствующий устанавливаемой версии. В случае с live-пакетами исходные коды получаются из системы контроля версий данной программы. Таким образом, live-пакеты позволяют иметь самую что ни на есть свежую программу. Такие пакеты, как правило, имеют версию 9999.


Строка 29: Строка 44:


=== revdep-rebuild ===
=== revdep-rebuild ===
'''revdep-rebuild''' из пакета [[gentoolkit]] — служит для проверки целостности [[динамическое связывание|динамического связывания]]. При обновлении библиотек нередка ситуация, когда программа или другая библиотека, зависящая от обновлённой, продолжает ссылаться на предыдущую версию. Таким образом, нарушается работоспособность программ. Утилита ''revdep-rebuild'' позволяет автоматически найти подобные «сломанные» программы и перекомпилировать их.

'''revdep-rebuild''' из пакета [[gentoolkit]] — служит для проверки целостности [[динамическое связывание|динамического связывания]]. При обновлении библиотек нередка ситуация, когда программа или другая библиотека, зависящая от обновленной, продолжает ссылаться на предыдущую версию. Таким образом, нарушается работоспособность программ. Утилита ''revdep-rebuild'' позволяет автоматически найти подобные «сломанные» программы и перекомпилировать их.


=== layman ===
=== layman ===

'''[[layman]]''' служит для упрощения работы с оверлеями, позволяя добавлять, удалять и синхронизировать оверлеи одной командой.
'''[[layman]]''' служит для упрощения работы с оверлеями, позволяя добавлять, удалять и синхронизировать оверлеи одной командой.


=== equery, eix, q ===
=== equery, eix, q ===
Программы '''equery''' и '''q''', а также набор программ '''eix''' служит для ускорения и автоматизации стандартных задач вроде поиска по дереву портежей, формирования списка установленных пакетов, принадлежащих какой-либо категории, и т. д.

Программы '''equery''' и '''q''', а также набор программ '''eix''' служит для ускорения и автоматизации стандартных задач, типа поиска по дереву портежей, формирования списка установленных пакетов, принадлежащих какой-либо категории, и т. д.


== Пример ==
== Пример ==

Пример работы программы emerge:
Пример работы программы emerge:


Строка 53: Строка 64:
[blocks B ] mail-mta/ssmtp (is blocking mail-mta/postfix-2.3.6)
[blocks B ] mail-mta/ssmtp (is blocking mail-mta/postfix-2.3.6)


Total: 1 package (1 new, 1 block), Size of downloads: 2,719 kB</pre></code>
Total: 1 package (1 new, 1 block), Size of downloads: 2,719 kB</pre></code><!--


== Критика Portage ==
== Критика Portage ==
Низкая скорость системы Portage{{Нет АИ|28|08|2011}}, а также отсутствие учёта обратных зависимостей устанавливаемых и обновляемых пакетов, привело к созданию проекта [[Paludis]]<ref>[http://en.gentoo-wiki.com/wiki/Paludis Gentoo wiki Paludis] {{webarchive|url=https://web.archive.org/web/20100802150559/http://en.gentoo-wiki.com/wiki/Paludis |date=2010-08-02 }}{{ref-en}}</ref> — замены Portage, написанной на [[C++]] и обладающей более высокой скоростью работы{{Нет АИ|28|08|2011}} и дополнительными возможностями (которые, впрочем, в большинстве своём присутствуют в нестабильных версиях Portage 2.2.x). Также существует проект [[pkgcore]]<ref>[http://en.gentoo-wiki.com/wiki/Pkgcore Gentoo wiki Pkgcore] {{webarchive|url=https://web.archive.org/web/20090911051226/http://en.gentoo-wiki.com/wiki/Pkgcore |date=2009-09-11 }}{{ref-en}}</ref>.-->


== FrontEnd ==
Низкая скорость системы Portage, а также отсутствие учета обратных зависимостей устанавливаемых и обновляемых пакетов, привело к созданию проекта [[Paludis]]<ref>[http://en.gentoo-wiki.com/wiki/Paludis Gentoo wiki Paludis]{{ref-en}}</ref> — замены Portage, написанной на [[C++]] и обладающей более высокой скоростью работы и дополнительными возможностями (которые, впрочем, в большинстве своем присутствуют в нестабильных версиях Portage 2.2.x). Также существует проект [[pkgcore]]<ref>[http://en.gentoo-wiki.com/wiki/Pkgcore Gentoo wiki Pkgcore]{{ref-en}}</ref>.
* [[Kuroo]]
* [[PortHole]]


== См. также ==
== См. также ==
* [[FreeBSD Ports|Порты FreeBSD]]
* [[FreeBSD Ports|Порты FreeBSD]]
* [[Porthole]]
* [[Paludis]]
* [[Kuroo]]


== Ссылки ==
== Ссылки ==
* [http://www.gentoo.org/doc/ru/handbook/handbook-x86.xml?part=2&chap=1 Документация Gentoo Linux — Введение в Portage] {{ref-ru}}
* [http://www.gentoo.org/doc/ru/handbook/handbook-x86.xml?part=2&chap=1 Документация Gentoo Linux — Введение в Portage]{{ref-ru}}
<references />
<references />
* [http://www.calculate-linux.org/main/ru/services Обзор портежей] {{ref-ru}}
* [http://www.calculate-linux.org/main/ru/services Обзор портежей]{{ref-ru}}
* [http://packages.gentoo.org/categories/ Gentoo Packages Categories] {{ref-en}}
* [http://packages.gentoo.org/categories/ Gentoo Packages Categories] {{Wayback|url=http://packages.gentoo.org/categories/ |date=20140117232312 }}{{ref-en}}
* [http://www.calculate-linux.org/packages Обзор пакетов] {{ref-ru}}
* [http://www.calculate-linux.org/packages Обзор пакетов]{{ref-ru}}
* [http://ru.gentoo-wiki.com/wiki/HOWTO_Настройка_Portage HOWTO Настройка Portage — Gentoo Linux Wiki] {{ref-ru}}
* [https://web.archive.org/web/20130316025243/http://ru.gentoo-wiki.com/wiki/HOWTO_%D0%9D%D0%B0%D1%81%D1%82%D1%80%D0%BE%D0%B9%D0%BA%D0%B0_Portage HOWTO Настройка Portage — Gentoo Linux Wiki]{{ref-ru}}


[[Категория:Gentoo]]
[[Категория:Gentoo]]
[[Категория:Системы управления пакетами]]
[[Категория:Свободные системы управления пакетами]]
[[Категория:Свободное программное обеспечение, написанное на Python]]

[[ar:بورتاج]]
[[cs:Portage]]
[[en:Portage (software)]]
[[es:Portage]]
[[eu:Portage]]
[[fi:Portage]]
[[fr:Portage (Gentoo)]]
[[it:Portage (software)]]
[[ja:Portage]]
[[ko:포티지 (소프트웨어)]]
[[mr:पोर्टेज (सॉफ्टवेअर)]]
[[nl:Portage (pakketbeheer)]]
[[pl:Portage (program)]]
[[pt:Portage (software)]]
[[sv:Portage]]
[[zh:Portage]]

Текущая версия от 03:45, 13 июня 2023

Portage
Скриншот программы Portage
Работа системы Portage
Тип Система управления пакетами
Авторы Zac Medico, Ned Ludd, Mike Frysinger, Mounir Lamouri
Написана на Python
Операционные системы Gentoo Linux и Gentoo/FreeBSD
Первый выпуск 2006
Аппаратные платформы POSIX-совместимые/Python
Последняя версия 3.0.44[1] (15 января 2023)
Репозиторий gitweb.gentoo.org/proj/p…
Состояние активное
Лицензия GNU General Public License v2
Сайт gentoo.org/proj/en/porta…
Логотип Викисклада Медиафайлы на Викискладе

Portage — основная система управления пакетами в Gentoo Linux. Аналог системы портов FreeBSD. Представляет собой набор утилит на Python и Bash, призванных облегчить и упорядочить установку программного обеспечения из исходных кодов или бинарных пакетов, с учётом всех зависимостей.

Основной пользовательский интерфейс Portage — консольная программа emerge, которая позволяет устанавливать новые пакеты с учётом зависимостей и с возможностью управления вариантами установки — например с поддержкой определённых функций или без поддержки ненужных функций (управление параметрами сборки осуществляется через так называемые USE-флаги), удалять ненужные пакеты, обновлять установленные пакеты, проводить синхронизацию с деревом портежей (по протоколу rsync) и т. д. Программа ebuild служит интерфейсом низкого уровня к Portage, а emerge — высокоуровневая оболочка для неё.

Главный конфигурационный файл системы Portage — /etc/portage/make.conf. В нём настраиваются основные параметры компиляторов и дополнительные возможности их использования (например, применением ccache, distcc), установки USE-флагов, HTTP-прокси, FTP-прокси, SYNC, ACCEPT_KEYWORDS и других, необходимых для работы системы Portage.

Другие конфигурационные файлы системы находятся в /etc/portage/ и позволяют более тонко конфигурировать различные аспекты системы portage.

Дерево портежей

[править | править код]

Дерево портежей обычно располагается в каталоге /usr/portage/ и представляет собой упорядоченную систему каталогов-категорий пакетов (вида app-emacs, dev-php), в каждом из которых содержатся каталоги отдельных пакетов. В дереве каждый пакет состоит из набора ebuild-файлов, файла Changelog данного пакета, файла metadata.xml c метаданными о пакете и, возможно, нескольких других некрупных файлов, нужных для сборки пакета (например, патчей).

Кроме того, в дереве портежей хранятся все лицензии, которые используются пакетами.

В каталог /usr/portage/distfiles/ обычно помещаются файлы дистрибутивов программ, скачиваемые во время установки пакетов.

Оверлеи представляют собой хранилища пакетов, не включённые в основное дерево портежей. Обычно туда включают более новые версии программ или те программы, которых ещё нет в официальном дереве, live-версии, нестандартные расширения и патчи. Оверлеи могут быть локальными — присутствовать только на компьютере пользователя. Один из вариантов применения локального оверлея — установка ebuild-файлов, не включённых в какой-либо публичный оверлей, либо тестирование ebuild-файлов. Для упрощения работы с оверлеями служит утилита layman.

Обычно при установке некоторой версии программы скачивается архив с исходными кодами, соответствующий устанавливаемой версии. В случае с live-пакетами исходные коды получаются из системы контроля версий данной программы. Таким образом, live-пакеты позволяют иметь самую что ни на есть свежую программу. Такие пакеты, как правило, имеют версию 9999.

В случае, если есть несколько веток разработки программы, live-пакет может также использовать не основную ветку. Например, для библиотеки Qt есть live-пакеты, берущие исходные коды из ветки на официальные версии 4.6, 4.7 и самую «передовую» ветку. Такие пакеты имеют версии 4.6.9999, 4.7.9999 и 4.9999 соответственно.

revdep-rebuild из пакета gentoolkit — служит для проверки целостности динамического связывания. При обновлении библиотек нередка ситуация, когда программа или другая библиотека, зависящая от обновлённой, продолжает ссылаться на предыдущую версию. Таким образом, нарушается работоспособность программ. Утилита revdep-rebuild позволяет автоматически найти подобные «сломанные» программы и перекомпилировать их.

layman служит для упрощения работы с оверлеями, позволяя добавлять, удалять и синхронизировать оверлеи одной командой.

Программы equery и q, а также набор программ eix служит для ускорения и автоматизации стандартных задач вроде поиска по дереву портежей, формирования списка установленных пакетов, принадлежащих какой-либо категории, и т. д.

Пример работы программы emerge:

# emerge -pv postfix

These are the packages that would be merged, in order:

Calculating dependencies... done!
[ebuild  N    ] mail-mta/postfix-2.3.6  USE="hardened mysql pam ssl -cdb -dovecot-sasl -ipv6 -ldap -mailwrapper -mbox -nis -postgres
 -sasl (-selinux) -vda" 2,719 kB
[blocks B     ] mail-mta/ssmtp (is blocking mail-mta/postfix-2.3.6)

Total: 1 package (1 new, 1 block), Size of downloads: 2,719 kB
  1. portage-3.0.44. Дата обращения: 25 января 2023. Архивировано 25 января 2023 года.