Коллекция портов
Коллекции портов (или деревья портов , или просто порты ) — это наборы make-файлов и патчей, предоставляемые BSD на базе операционными системами , FreeBSD , NetBSD и OpenBSD , в качестве простого метода установки программного обеспечения или создания бинарных пакетов. Обычно они являются основой системы управления пакетами , в которой порты управляют созданием пакетов, а дополнительные инструменты управляют удалением, обновлением и другими задачами пакетов. В дополнение к BSD, несколько дистрибутивов Linux реализовали подобную инфраструктуру , включая Gentoo Portage и , Arch Arch Build System (ABS) , CRUX порты шаблоны Void Linux .
Основное преимущество системы портов по сравнению с бинарной моделью распространения заключается в том, что установку можно настраивать и оптимизировать в соответствии с доступными ресурсами. Например, системный администратор может легко установить 32-разрядную версию пакета, если 64-разрядная версия недоступна или не оптимизирована для этого компьютера. И наоборот, основным недостатком является время компиляции, которое может быть значительным. Например, полная установка системы FreeBSD с использованием портов может занять несколько дней, в зависимости от оборудования.
Порты FreeBSD
[ редактировать ]21 августа 1994 года Джордан Хаббард разместил свои макросы make порта в репозитории CVS FreeBSD. [1] Его установочный пакет Makefile был запущен годом ранее (26 августа 1993 г.). [2] Структура основных портов сначала поддерживалась Хаббардом вместе с Сатоши Асами в течение нескольких лет. Позже для решения этой задачи была сформирована Группа управления портами.
pkgsrc NetBSD
[ редактировать ]NetBSD Коллекция портов pkgsrc отличается тем, что она призвана быть переносимой и может использоваться в ряде операционных систем, помимо самой NetBSD, включая другие BSD, SmartOS / illumos , macOS , [3] МИНИКС 3 , Линукс [4] и другие Unix-подобные . pkgsrc был создан в августе 1997 года на основе существующей системы портов FreeBSD. Он соответствует ежеквартальному графику выпуска и по состоянию на октябрь 2018 года содержит более 22 000 пакетов. В выпуске 1.4 DragonFly BSD объявила, что будет использовать pkgsrc в качестве официальной системы управления пакетами. [5] Однако DragonFly BSD в версии 3.4 создала собственную реализацию портов под названием dports. [6] и перешёл на него полностью с 3.6. Разработка ведется через их git. [7]
порты OpenBSD
[ редактировать ]В отличие от портов FreeBSD , на которых она изначально была основана, система портов OpenBSD задумана как источник, используемый для создания конечного продукта, пакетов : установка порта сначала создает пакет, а затем устанавливает его. Порты состоят из make-файла, текстовых файлов с описаниями и сообщениями об установке, любых патчей, необходимых для настройки программы для работы с OpenBSD, и упаковочного списка со списком файлов, которые будут включены в пакеты. Дерево портов использует набор стандартных make-файлов, некоторые из которых используются совместно с деревом исходного кода , чтобы обеспечить основную часть его функциональности; эта общая инфраструктура включает в себя множество служебных функций для разработчиков портов и означает, что порты часто можно создавать очень просто.
В конце октября 2007 года разработчик OpenBSD Николай Штурм объявил, что стабильное дерево портов следует считать неподдерживаемым из-за нехватки ресурсов. Это фактически вынуждало пользователей запускать -currentports/basetree, чтобы не отставать от обновлений безопасности. В 2009 году было решено возродить дерево портов -stable под руководством Роберта Надя и Джаспера Ливиссе Адриансе. [8]
Существует три неофициальных веб-сайта со списком портов и пакетов OpenBSD:
- OpenPorts.se , первоначально анонсированный какports.openbsd.nu в 2006 году, [9] был специально написанным веб-сайтом, который самостоятельно анализировал древовидную структуру портов и обновления, а также имел функцию отслеживания изменений данного порта, но имел недостаток: не поддерживал некоторую более сложную логику Makefile и, таким образом, отсутствует около 15% пакетов, требующих глубокого знания структуры дерева портов и использования официальных инструментов. [10] Проект был прекращен в январе 2023 года. [11]
- ports.su , анонсированный в феврале 2013 года и основанный на официальной базе данных sqlports, [12] таким образом, у вас есть полная коллекция всех пакетов и вариантов, доступных для платформы amd64. Поскольку они основаны на официальных инструментах, «виртуальные» (неосновные) категории легко доступны, как и информация о библиотеках, зависимостях сборки и времени выполнения. Исходный код веб-сайта во многом основан на портеports-readmes и легко доступен на GitHub . Проект больше не обновляется с ноября 2018 года.
См. также
[ редактировать ]- Android Runtime , который выполняет предварительную компиляцию при установке.
- MacPorts , используемый в macOS . Название и дизайн основаны на системе портов.
- Portage (программное обеспечение) , используемое в Gentoo Linux и вдохновленное системой портов.
Ссылки
[ редактировать ]- ^ «Журнал CVS для портов/Mk/bsd.port.mk» . Проект FreeBSD. Архивировано из оригинала 15 апреля 2013 г. Проверено 26 мая 2018 г.
- ^ «Журнал CVS для src/usr.sbin/pkg_install/Makefile» . Проект FreeBSD. Архивировано из оригинала 14 апреля 2013 г.
- ^ «Документация по пакетам Joyent — установка на macOS» . Радостный . Архивировано из оригинала 06.10.2018 . Проверено 10 октября 2018 г.
- ^ «Документация по пакетам Joyent — установка в Linux» . Радостный . Архивировано из оригинала 06.10.2018 . Проверено 10 октября 2018 г.
- ^ Диллон, Мэтью. «PKGSRC будет официально поддерживаться со следующей версии» . Архивировано из оригинала 9 сентября 2015 г. Проверено 23 января 2008 г.
- ^ Шерил, Джастин. «Планирование выпуска DragonFly 3.4» . Архивировано из оригинала 10 марта 2016 г. Проверено 5 мая 2016 г.
- ^ «GitHub — DragonFlyBSD/DPorts: специальная система сборки приложений для DragonFly BSD» . Гитхаб . Архивировано из оригинала 11 июня 2018 г. Проверено 8 июля 2014 г.
- ^ Йодловски, Уильям. «4.6-стабильные порты» . Архивировано из оригинала 12 июня 2011 г. Проверено 29 декабря 2009 г.
- ^ «ports.openbsd.nu — интерфейс к портам» . Журнал OpenBSD . 9 августа 2006 г. Архивировано из оригинала 27 мая 2018 г. Проверено 26 мая 2018 г.
- ^ Эспи, Марк (7 июня 2013 г.). «Re: Почему нет pkg_find(1)?» . [электронная почта защищена] . Архивировано из оригинала 10 апреля 2022 г. Проверено 26 мая 2018 г.
- ^ «Время прощаться» . 30 января 2023 г. Проверено 2 ноября 2023 г.
- ^ «Знакомство сports.su — зеркало портов-readmes и поиск портов» . Журнал OpenBSD . 2013-05-02. Архивировано из оригинала 27 мая 2018 г. Проверено 26 мая 2018 г.