MacPorts

редактировать
MacPorts
MacPorts Logo.svg
MacPorts 2.7.1 в iTerm2 на macOS.png Снимок экрана команды порта, запущенной в iTerm2
Первый выпуск 2002 г. ( 2002)
Стабильный выпуск 2.7.1  Отредактируйте это в Викиданных / 26 мая 2021 г. ; 4 месяца назад ( 26 мая 2021 г.)
Репозиторий
Написано в Tcl и C
Операционная система macOS, Дарвин
Платформа IA-32, x86-64, PowerPC, ARM
Доступно в английский
Тип Система управления пакетами
Лицензия BSD
Веб-сайт www.macports.org   Отредактируйте это в Викиданных

MacPorts, ранее называвшаяся DarwinPorts, представляет собой систему управления пакетами, которая упрощает установку программного обеспечения в операционных системах macOS и Darwin. Это проект программного обеспечения с открытым исходным кодом, цель которого - упростить установку другого программного обеспечения с открытым исходным кодом. По функциям он похож на Fink и коллекции портов BSD.

MacPorts позволяет установить ряд пакетов, введя команду в Терминале, который затем загрузит, скомпилирует, если необходимо, и установит запрошенное программное обеспечение, а также автоматически установит все необходимые зависимости. Установленные пакеты можно обновить с помощью команды. sudo port install packagename sudo port upgrade outdated

MacPorts поддерживает универсальные двоичные файлы для PowerPC, Intel и Apple кремниевых версий macOS, но для перехода с PowerPC, установленного на MacPorts, на версию на Intel Mac требуется переустановка всех установленных портов.

СОДЕРЖАНИЕ
  • 1 Использование
    • 1.1 Обновление программного обеспечения
    • 1.2 Установка программного обеспечения
      • 1.2.1 Варианты
    • 1.3 Внешние интерфейсы
      • 1.3.1 Веб-сайт
      • 1.3.2 Приложения с графическим интерфейсом
  • 2 История
  • 3 Реализация
    • 3.1 Двоичные архивы
    • 3.2 Портфайлы
  • 4 Развитие
  • 5 Сбор данных
  • 6 См. Также
  • 7 ссылки
  • 8 Внешние ссылки
использование

Обновление программного обеспечения

Есть три основных режима использования, portкоторые помогают обновлять установленное программное обеспечение:

  • syncобновляет дерево локальных портов. Он не обновляет какие-либо установленные пакеты, а вместо этого получает информацию о новом и обновленном программном обеспечении. По функциям он похож на brew updateили apt update.
  • selfupdateимеет ту же функциональность, syncно и обновляет систему MacPorts. В большинстве случаев его следует использовать вместо того, чтобы запускать syncего самостоятельно, и рекомендуется запускать его каждый раз перед использованием MacPorts.
  • upgradeобновляет все установленные порты и их зависимости до последней версии, найденной в локальном дереве портов. По функциям он похож на apt upgrade.

Например, одна из распространенных задач - обновить устаревшие порты. Это можно сделать, запустив следующее:

sudo port selfupdate sudo port upgrade outdated

MacPorts опоры логические операторы, такие как и, или и не, а также GLOB шаблоны (по умолчанию включено) и регулярное выражение (включается --regex). Например, чтобы обновить устаревшие порты, исключая все версии PHP, измените указанную выше команду на следующую:

sudo port selfupdate sudo port upgrade outdated and not php*

Установка программного обеспечения

Пользователи могут указать один или несколько пакетов, которые они хотят установить через installрежим, и MacPorts будет стремиться установить их и их зависимости. Например, и LibreOffice, и Texmaker можно установить, выполнив следующее:

sudo port install libreoffice texmaker

Обратите внимание, что при этом будет установлена ​​последняя версия, как указано в дереве локальных портов. Предварительный selfupdateзапуск позволит убедиться, что загруженный пакет является последней версией MacPorts.

Варианты

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

Например, порт youtube-dl предоставляет вариант ffmpeg, который включен по умолчанию. В обмен на добавление двух дополнительных зависимостей это позволяет извлекать звук. Варианты могут быть включены или удалены с помощью символов +или -, поэтому вариант ffmpeg можно отключить, выполнив следующее:

sudo port install youtube-dl -ffmpeg

Несколько вариантов можно перечислить один за другим, разделив их пробелом. Например, можно отключить MPM prefork по умолчанию в порту apache2 в пользу рабочего MPM:

sudo port install apache2 -preforkmpm +workermpm

Варианты порта можно определить, запустив его или выполнив поиск порта на веб-сайте MacPorts. port variants packagename

Фронтенды

Домашняя страница веб-сайта портов MacPorts.

Веб-сайт

Веб-сайт MacPorts Ports был реализован во время Google Summer of Code 2019, при этом основные улучшения пользовательского интерфейса были внесены в рамках той же программы в 2020 году. Он отображает информацию об отдельных портах, такую ​​как статистика установки и история сборки. Эта статистика также доступна через API. При желании пользователи могут войти в систему, чтобы получать уведомления об обновлении порта.

Существует также отдельная домашняя страница MacPorts, на которой представлена ​​информация о проекте, а также инструкции по его установке.

Приложения с графическим интерфейсом

Снимок экрана Pallet, официального графического интерфейса MacPorts.

Большой прогресс в официальном приложении с графическим интерфейсом под названием Pallet был достигнут в рамках Google Summer of Code. Однако в настоящее время клиент не работает, хотя были достигнуты некоторые успехи в попытках исправить это.

Также доступны сторонние альтернативы.

История
Джордан Хаббард, один из основных создателей MacPorts, возглавляющий команду Apple UNIX.

MacPorts был запущен в 2002 году при участии ряда сотрудников Apple Inc., включая Лэндона Фуллера, Кевина Ван Вехтена и Джордана Хаббарда. Первоначально он был известен как DarwinPorts, а название происходит от Darwin и FreeBSD Ports. Он начался как часть проекта OpenDarwin с его целью помочь пользователям macOS и Darwin в установке программного обеспечения Unix.

OpenDarwin был закрыт в 2006 году. Затем DarwinPorts был размещен на Mac OS Forge, службе хостинга с открытым исходным кодом, созданной и поддерживаемой Apple Inc. для сторонних проектов, не поддерживаемых Apple. Чтобы обозначить акцент проекта на macOS, его название было изменено на MacPorts.

Когда Apple закрыла Mac OS Forge в 2016 году, проект переместился на GitHub. В рамках этого изменения git использовался в качестве новой системы контроля версий, хотя Trac по- прежнему предпочтительнее для управления билетами, чем для проблем с GitHub.

Версия 1.0 была выпущена 28 апреля 2005 года. В декабре 2005 года проект достиг рубежа, превысив 3000 портов. В то время при установке пакета исходный код загружался и компилировался на машине конечного пользователя. Версия 2.0, выпущенная в 2011 году, представила поддержку предварительно созданных двоичных архивов; по умолчанию порты устанавливаются с использованием предварительно созданного двоичного архива, если он доступен, и в противном случае создаются из исходных текстов. По состоянию на август 2021 года у MacPorts имеется более 26 600 портов, а поддержка в максимальной степени может быть предоставлена ​​сообществом.

Реализация

MacPorts устанавливает программное обеспечение поверх операционной системы, предоставляя более новые версии предустановленных пакетов или программного обеспечения, которого нет в macOS. Это отличается от других систем управления пакетами, таких как APT и DNF, которые являются частью операционной системы. По этой причине MacPorts иногда называют оверлейным дистрибутивом. Другие примеры включают Fink и Homebrew.

В отличие от коллекции портов FreeBSD, в которой устанавливается программное обеспечение /usr/local, MacPorts /opt/localпо умолчанию хранит свои данные, хотя это можно изменить при компиляции MacPorts из исходного кода. Причина этого изменения заключается в том, что другие системы упаковки могут перезаписать то, что установлено MacPorts, или наоборот. Выделенный каталог помогает преодолеть эту проблему. Fink следует аналогичному подходу, /swпо умолчанию устанавливая свои данные.

Двоичные архивы

Боты сборки используются для предварительной сборки портов, поэтому пользователям не нужно компилировать пакет локально. В результате получается двоичный архив, который помогает сократить время, необходимое для установки. Подобно Homebrew, MacPorts использует разные сборщики для разных версий операционных систем и архитектур. Однако иногда может потребоваться сборка из исходного кода локально, если двоичные файлы не удается собрать или лицензия порта не позволяет распространять двоичные файлы. Если двоичный файл не может быть создан, это будет отмечено на веб-сайте MacPorts для этого отдельного порта, и сопровождающий будет предупрежден. Также можно просмотреть последние события buildbot на специальной странице активности.

Двоичные архивы создаются локально всякий раз, когда пользователь создает порт из исходного кода. Их также можно создать вручную, запустив. sudo port archive packagename

Портфайлы

MacPorts хранит инструкции, необходимые для создания порта, в файле описания порта, также известном как файл порта. Это похоже на то, как AUR использует сценарии оболочки, известные как PKGBUILD, или как Homebrew использует сценарии ruby в качестве формулы. Файлы порта представляют собой законченные программы TCL с доступом к интерпретатору TCL. Они используют простые параметры пары ключ-значение для определения атрибутов.

MacPorts использует реальный язык сценариев, а именно TCL, при создании описаний портов. Это дает разработчику порта гораздо больше гибкости в работе с некоторыми из более сложных частей программного обеспечения, а само понятие перехватчиков действий (предварительная / пост-выборка, сборка, установка и т. Д.) Намного чище в MacPorts [по сравнению с FreeBSD ]

-  Джордан Хаббард, Изобретение системы портов FreeBSD, ее недостатки и достоинства MacPorts

Например, это файл порта для Hashcat :

# -*- coding: utf-8; mode: _tcl; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- vim:fenc=utf-8:ft=tcl:et:sw=2:ts=2:sts=2 PortSystem 1.0 PortGroup github 1.0 PortGroup makefile 1.0 github.setup hashcat hashcat 6.2.3 v github.tarball_from archive categories security license MIT platforms darwin maintainers @gaming-hacker openmaintainer description World's fastest and most advanced password recovery utility. long_description hashcat is the world's fastest and most advanced \ password recovery utility, supporting five unique modes \ of attack for over 200 highly-optimized hashing algorithms. \ hashcat currently supports CPUs, GPUs, and other hardware \ accelerators on Linux, Windows, and macOS, and has \ facilities to help enable distributed password cracking homepage https://hashcat.net/hashcat/ build.target {} checksums rmd160 8bb501834a320aaac3de149c5ab39c2eb89ee968 \ sha256 c0be1c6693ee1f35c7bef1f79bf9e30a954f717ef42d00e37787aaeff3271e51 \ size 6222424

Каждый файл порта имеет заранее определенные этапы, которые можно настроить вручную через файл порта. К ним относятся следующие:

Вывод hashcat информации о порте. Это предоставляет информацию о порте из его файла порта.

Принести

Во-первых, MacPorts извлекает и загружает все файлы, относящиеся к порту, из восходящего потока. Они известны как дистрибутивные файлы. В случае с hashcat эти файлы берутся с GitHub. По завершении установки они удаляются вместе с временными файлами сборки.

Контрольная сумма

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

Для Hashcat загружается только один сжатый файл, поэтому в файле порта требуется только одна контрольная сумма.

Пластырь

Иногда может потребоваться изменить код, чтобы его можно было установить через MacPorts. Это могло быть по разным причинам, например, по умолчанию установка не в том месте. Патч- файлы можно использовать для изменения исходного кода в удобочитаемом формате.

В приведенном выше файле порта Hashcat не требует никаких изменений в коде, чтобы установка работала. Следовательно, файлы патчей не требуются. Когда требуются исправления, файл исправления будет храниться вместе с файлом порта, и на него будут ссылаться, как показано ниже (из wget ):

patchfiles prefix.patch

Настроить

Сценарий конфигурации проекта запускается для подготовки к процессу сборки. Частично это связано с определением наличия необходимых библиотек. Для портов, для которых нет сценария настройки, этот этап (а также другие при необходимости) можно отключить.

Поскольку этап настройки не упоминается в файле порта, hashcat использует настройку конфигурации по умолчанию, как определено MacPorts. Это включает запуск сценария настройки через ./configure.

Информация о порте hashcat с веб-сайта MacPorts Ports. За исключением статистики, эта информация берется из файла порта.

Строить

Затем инструкции в файле порта используются для построения порта. Выполняемые команды могут различаться для разных языков.

Файл порта для hashcat показывает, что его следует рассматривать как проект Makefile. Поэтому он будет построен путем запуска make.

Тестовое задание

Некоторые порты определяют тест для проверки успешности сборки. Это необязательный этап, который запускается только при выполнении пользователем. Поэтому он не выполняется при установке порта. port test packagename

Этот порт hashcat не определил этап тестирования. После определения он может выглядеть следующим образом (из ImageMagick ):

test.run yes test.target check test.env DYLD_LIBRARY_PATH=${worksrcpath}/magick/.libs

Уничтожить

Этап уничтожения - это первый шаг к перемещению встроенных файлов в правильное место. MacPorts использует подход, состоящий в том, что сначала установка выполняется в промежуточное место (удаление), а затем файлы помещаются на их правильные места (установка). Одним из преимуществ этого является то, что он позволяет легко записывать, какие файлы были созданы, что позволяет полностью удалить их.

Например, файл, который обычно устанавливается, /opt/local/lib/libfoo.aможно сначала установить /tmp/stage/opt/local/lib/libfoo.aна этапе удаления с сохранением относительной структуры каталогов.

Для hashcat это выполняется путем запуска make install, где один из аргументов ( DESTDIR) указывает, где временно хранить файлы.

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

Установить

Уничтоженные файлы надежно заархивированы. Поскольку эти файлы еще не были активированы, это позволяет архивировать несколько разных версий одного и того же порта, не мешая друг другу.

Активировать

При активации порта файлы в каталоге удаления перемещаются в правильное место. Это делает их доступными для пользователя после завершения процесса установки.

Если они хотят попробовать другую версию порта, они могут деактивировать свою текущую версию и активировать новую. При этом старый порт не удаляется, так как его можно легко снова активировать из заархивированных файлов.

При обновлении порта MacPorts деактивирует, но не удаляет текущую версию в целях безопасности. Это позволяет пользователю легко вернуться к старой версии, если обновление вызывает критические изменения.

Разработка
Значки MacPorts Meeting 2018. Разработчики MacPorts на встрече 2019 года в Скаутском центре Бохинь, Словения.

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

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

Начиная с 2016 года встречи периодически проводятся один раз в год. Обычно они проходят в Словении и позволяют членам MacPorts работать над будущим развитием.

Сбор данных

По умолчанию MacPorts не собирает статистику. Однако при желании пользователи могут отправить информацию, запустив sudo port install mpstats. Он раз в неделю отправляет подробную информацию о том, какие порты установлены, а также о различных свойствах системы. Затем эта информация используется для определения поддерживаемого оборудования и для понимания того, как быстро принимаются новые версии MacPorts.

Пользователи могут просматривать данные аналитики на веб-сайте MacPorts.

Смотрите также
использованная литература
внешние ссылки
Последняя правка сделана 2023-12-31 11:40:19
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте