MacPorts
Скріншот виконання команди port у терміналі iTerm2. | |
| Тип | Система керування пакунками |
|---|---|
| Перший випуск | 2002[1] |
| Стабільний випуск | reference (Q1475706) |
| Платформа | IA-32, x86-64, PowerPC, ARM |
| Операційна система | macOS, Darwin |
| Мова програмування | Tcl[2] and C |
| Доступні мови | English |
| Ліцензія | BSD |
| Репозиторій | https://github.com/macports/macports-base, https://github.com/macports/macports-ports |
| Вебсайт | macports.org |
MacPorts, раніше відомий як DarwinPorts, [3] — це менеджер пакунків для macOS та Darwin . Це проект з відкритим кодом, метою якого є спрощення встановлення іншого програмного забезпечення з відкритим кодом. [4] За функціями він подібний до Fink та колекції портів BSD.
MacPorts підтримує універсальні бінарні файли для версій macOS на базі PowerPC, Intel [5] та Apple Silicon, [6] [7]. Водночас під час переходу з інсталяції MacPorts на PowerPC до версії на Intel-Mac необхідно перевстановити всі встановлені порти. [8]
Існує три основні режими використання команди port, які допомагають оновлювати встановлене програмне забезпечення:
syncоновлює локальне дерево портів. Ця команда не оновлює встановлені пакунки, а лише отримує інформацію про нові та оновлені програми. За функцією вона подібна доbrew updateабоapt update. [9]selfupdateмає ту саму функціональність, що й sync, але також оновлює саму систему MacPorts. [10] У більшості випадків рекомендується використовувати саме цю команду замість простогоsync, [9] і бажано запускати її щоразу перед використанням MacPorts. [11]upgradeоновлює всі встановлені порти та їхні залежності до найновішої версії, доступної в локальному дереві портів. За функціональністю вона подібна доapt upgrade. [12]
Наприклад, одним із поширених завдань є оновлення застарілих портів. Це можна зробити, виконавши таку команду: [13]
sudo port selfupdate
sudo port upgrade outdated
MacPorts підтримує логічні оператори, and, or та not, [14], а також glob-шаблони (увімкнені за замовчуванням) і регулярні вирази (їх можна увімкнути за допомогою параметра --regex ). [15] Наприклад, щоб оновити застарілі порти, виключивши всі версії PHP, наведену вище команду можна змінити так: [14]
sudo port selfupdate
sudo port upgrade outdated and not php*
Користувачі можуть вказати один або кілька пакунків, які вони хочуть встановити, використовуючи режим install, після чого MacPorts спробує встановити їх разом із необхідними залежностями. [16] Наприклад, LibreOffice та Texmaker можна встановити, виконавши наступну команду: [11] [17]
sudo port install libreoffice texmaker
Зверніть увагу, що буде встановлено найновішу версію, зазначену в локальному дереві портів. Попередній запуск команди selfupdate гарантує, що завантажений пакунок буде найновішою версією, доступною в MacPorts. [10]
Варіанти (variants) надають різні опції, які можна використовувати під час встановлення порту. Зазвичай вони дозволяють додавати або вилучати залежності, а також змінювати параметри збирання. [18] Вони надають додаткову функціональність, яка може бути не потрібною для всіх користувачів, але може бути корисною для інших.
Наприклад, порт youtube-dl має варіант з ffmpeg, який увівмкнено за замовчуванням. У результаті додавання двох додаткових залежностей це дозволяє витягувати аудіо. [19] [20] Варіанти можна вмикати або вимикати за допомогою символів + або -, тому варіант ffmpeg можна вимкнути, виконавши таку команду:
sudo port install youtube-dl -ffmpeg
Кілька варіантів можна вказувати один за одним, розділяючи їх пробілом. Наприклад, у порту apache2 можна вимкнути типовий prefork MPM на користь worker MPM: [21]
sudo port install apache2 -preforkmpm +workermpm
Варіанти порту можна визначити, виконавши команду port variants назва_пакунку, або знайшовши відповідний порт на сайті MacPorts. [21] [22]

Сайт портів MacPorts було створено під час програми Google Summer of Code 2019 [23].Значні покращення користувацького інтерфейсу також були зроблені в межах цієї ж програми у 2020 році. [24] [25] На сайті відображається інформація про окремі порти, зокрема статистика встановлень і історія збирання. [23] Ця статистика також доступна через API . [26] Користувачі можуть за бажанням увійти в систему, щоб отримувати сповіщення, коли певний порт було оновлено. [24]
Існує також окрема головна сторінка MacPorts, яка містить інформацію про проєкт та інструкції щодо його встановлення. [27]

Проєкт MacPorts було розпочато у 2002 році за участю кількох співробітників Apple, зокрема Лендона Фуллера, Кевіна Ван Вехтена та Джордана Хаббарда.[28] Спочатку проєкт називався DarwinPorts, що походить від назв Darwin та FreeBSD Ports. Він розпочався як частина проєкту OpenDarwin і мав на меті допомогти користувачам macOS і Darwin встановлювати Unix-пакунки.[30][31]
OpenDarwin був закритий у 2006 році. DarwinPorts тоді розмістили на Mac OS Forge, сервісі хостингу з відкритим кодом, створеному та підтримуваному Apple для сторонніх проєктів, які не підтримуються Apple.[32] Щоб підкреслити орієнтацію проєкту на macOS, його назву змінили на MacPorts.[30]
Коли Apple закрила Mac OS Forge у 2016 році, проєкт перенесли на GitHub.[33] У рамках цього переходу для контролю версій почали використовувати git, хоча Trac досі віддавали перевагу для управління завданнями (ticket management) замість GitHub issues.[34]
Версія 1.0 була випущена 28 квітня 2005 року.[35] У грудні 2005 року проєкт досяг важливої позначки, перевищивши 3 000 портів.[36] Тоді встановлення пакунків передбачало завантаження та компіляцію вихідного коду на машині кінцевого користувача. Версія 2.0, випущена у 2011 році, додала підтримку попередньо зібраних бінарних архівів; за замовчуванням порти встановлюються з готового бінарного архіву, якщо він доступний, і збираються з вихідного коду в іншому випадку.[37][38] Станом на березень 2026 року, у MacPorts налічується понад 40 300 портів,[39] а підтримка на рівні «best-effort» може надаватися спільнотою.[40]
MacPorts встановлює програмне забезпечення поверх операційної системи, надаючи новіші версії вже встановлених пакунків або програмне забезпечення, яке не входить до складу macOS. Це відрізняється від інших систем керування пакунками, таких як APT та DNF, які є частиною самої операційної системи. З цієї причини MacPorts іноді називають overlay-дистрибутивом. Іншими прикладами є Fink та Homebrew.[41]
На відміну від FreeBSD Ports Collection, яка встановлює своє програмне забезпечення до каталогу /usr/local,[42] MacPorts за замовчуванням зберігає свої дані в каталозі /opt/local,[43] хоча це можна змінити під час компіляції MacPorts із вихідного коду.[44]
Причина такого підходу полягає в тому, що інші системи керування пакунками можуть перезаписати програмне забезпечення, встановлене MacPorts, або навпаки. Використання окремого каталогу допомагає уникнути цієї проблеми.[45]
Fink використовує подібний підхід, встановлюючи свої дані за замовчуванням у каталог /sw.[46]
Buildbot використовується для попереднього збирання портів, щоб користувачам не потрібно було компілювати пакунок локально. Результат цього називається бінарним архівом, і це допомагає зменшити час, необхідний для встановлення.[47] Подібно до Homebrew, MacPorts використовує підхід із різними системами збирання для різних версій операційної системи та архітектур.[48][49]
Однак інколи може виникнути потреба зібрати пакунок із вихідного коду локально, якщо бінарну версію не вдалося зібрати або якщо ліцензія порту не дозволяє поширення бінарних файлів.[50] Якщо бінарний архів не вдалося створити, це зазначається на сайті MacPorts для відповідного порту, а його супровідник отримує сповіщення.[51][52] Також можна переглядати нещодавні події buildbot на спеціальній сторінці активності.[53]
Бінарні архіви також створюються локально щоразу, коли користувач збирає порт із вихідного коду. Їх також можна створити вручну, виконавши команду sudo port archive packagename.[50]
MacPorts зберігає інструкції, необхідні для збирання порту, у файлі опису порту, який називається portfile.[54] Це подібно до того, як AUR використовує shell-скрипти під назвою PKGBUILD,[55] або як Homebrew використовує скрипти мовою Ruby у вигляді формул.[56] Portfile є повноцінними програмами мовою TCL і виконуються за допомогою інтерпретатора TCL. Вони використовують прості параметри у форматі ключ-значення для визначення властивостей порту.
MacPorts використовує справжню мову сценаріїв, а саме TCL, для створення описів портів. Це дає автору порту значно більше гнучкості під час роботи з деякими складнішими програмами, а сама концепція хуків дій (pre/post fetch, build, install тощо) реалізована в MacPorts значно чистіше [порівняно з FreeBSD]
Наприклад, це portfile для Hashcat:[20]
# -*- 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
Кожен portfile має заздалегідь визначені етапи (phases), які можна вручну налаштовувати через сам portfile.[57] До них належать такі:

Fetch
На цьому етапі MacPorts отримує та завантажує всі необхідні файли для порту з upstream. Ці файли називаються distfiles. У випадку з hashcat вони завантажуються з GitHub.[60] Після завершення встановлення ці файли разом із тимчасовими файлами збирання видаляються.
Checksum
Контрольні суми завжди визначаються у portfile, оскільки вони різні для різних файлів. Контрольні суми завантажених файлів порівнюються з тими, що вказані у portfile, щоб перевірити, чи вони збігаються.[57]
Для Hashcat завантажується лише один стиснений файл, тому в portfile потрібна тільки одна контрольна сума.
Patch
Іноді код потрібно змінити, щоб зробити можливим його встановлення через MacPorts. Це може бути з різних причин, наприклад, якщо за замовчуванням програма встановлюється у неправильне місце. Файли патчів можуть використовуватися для модифікації вихідного коду у читабельному форматі.[61]
У наведеному вище portfile Hashcat не потребує жодних змін у коді для коректного встановлення. Тому файли патчів не потрібні. Якщо патчі потрібні, файл патча зберігається разом із portfile і посилається приблизно так (приклад із wget):[62]
patchfiles prefix.patch
Configure
Скрипт configure проєкту запускається для підготовки процесу збирання. Частиною цього процесу є перевірка наявності необхідних бібліотек. Для портів, які не мають configure-скрипта, цей етап (а також інші за потреби) може бути вимкнений.
Оскільки етап configure не згадується у Portfile, hashcat використовує стандартну конфігурацію, визначену MacPorts. Вона передбачає запуск configure-скрипта за допомогою ./configure.[63]
Build
Інструкції в portfile потім використовуються для збирання порту. Команди, що виконуються, можуть відрізнятися залежно від мови програмування.
Portfile для hashcat показує, що його слід обробляти як проєкт із Makefile. Тому збирання виконується командою make.
Test
Деякі порти визначають тест для перевірки того, що збирання завершилося успішно. Це необов’язковий етап, який запускається лише тоді, коли користувач виконує port test packagename. Тому під час встановлення порту він не виконується.[57]
У цьому порті hashcat етап тестування не визначений. Якщо його визначити, це може виглядати приблизно так (приклад із ImageMagick):[64]
test.run yes
test.target check
test.env DYLD_LIBRARY_PATH=${worksrcpath}/magick/.libs
Destroot
Етап destroot є першим кроком у переміщенні зібраних файлів у правильне місце. MacPorts використовує підхід, за якого встановлення спочатку виконується у проміжну директорію (destroot), а вже потім файли розміщуються у своїх остаточних місцях (install). Однією з переваг цього підходу є можливість легко зафіксувати, які файли були створені, що дозволяє коректно їх видалити під час деінсталяції.[57]
Наприклад, файл, який зазвичай встановлюється у /opt/local/lib/libfoo.a, може спочатку бути встановлений у /tmp/stage/opt/local/lib/libfoo.a під час етапу destroot, зберігаючи ту саму структуру директорій.[65]
Для hashcat це виконується через команду make install, де один із аргументів (DESTDIR) визначає місце тимчасового збереження файлів.
Зверніть увагу, що у більшості випадків на комп’ютері користувача виконуються лише етапи, наведені нижче. Це пов’язано з тим, що бінарні файли для портів попередньо зібрані, тому немає потреби збирати їх із вихідного коду локально.[66][67]
Install
Файли, підготовлені на етапі destroot, архівуються. Оскільки ці файли ще не активовані, це дозволяє зберігати кілька різних версій одного й того самого порту без взаємного конфлікту.[68]
Activate
Під час активації порту файли з директорії destroot переміщуються у свої остаточні місця. Це робить їх доступними для користувача та завершує процес встановлення.[57]
Якщо користувач хоче спробувати іншу версію порту, він може деактивувати поточну версію та активувати нову. При цьому стара версія не видаляється, оскільки її можна легко знову активувати з архівованих файлів.[68][11]
Під час оновлення порту MacPorts деактивує, але не видаляє поточну версію як захисний механізм. Це дозволяє користувачеві легко повернутися до старої версії, якщо оновлення спричинить несумісні зміни.[69]


Пакунки перебувають у відповідальності окремих супроводжувачів (maintainers), які зазначені в portfile. Від них очікується оновлення порту та виправлення помилок за потреби. Будь-хто, хто хоче змінити portfile, повинен повідомити супроводжувача перед внесенням змін, хоча для незначних модифікацій це не завжди є обов’язковим.[71][72]
Будь-хто може зробити внесок у MacPorts, зазвичай через pull request. Після достатнього досвіду роботи як супроводжувача учасники можуть подати заявку на отримання прав на прямі коміти до репозиторію.[73] Команда учасників MacPorts, відома як менеджери проєкту (project managers), допомагає керувати та координувати розвиток проєкту.[74]
Починаючи з 2016 року, зустрічі іноді проводяться раз на рік.[75] Зазвичай вони проходять у Словенії та дають можливість учасникам MacPorts працювати над подальшим розвитком проєкту.[70]
За замовчуванням MacPorts не збирає жодної статистики. Однак користувачі можуть за бажанням надсилати інформацію, виконавши команду sudo port install mpstats . Ця команда раз на тиждень надсилає інформацію про встановлені порти, а також про різні властивості системи. Потім ця інформація використовується для визначення того, яке обладнання підтримувати, та для розуміння того, як швидко впроваджуються нові випуски MacPorts. [76]. Користувачі можуть переглядати аналітичні дані на вебсайті MacPorts. [77]
- Fink
- Gentoo/Alt
- Homebrew
- Nix
- pkgsrc
- Порти FreeBSD
- Колекція портів
- ↑ MacPortsHistory. Архів оригіналу за 18 травня 2018. Процитовано 24 серпня 2015.
- ↑ Mark Weinem, ред. (17 жовтня 2007). Jordan K. Hubbard: The invention of the FreeBSD Ports system, its drawbacks and the merits of MacPorts. 10 years of pkgsrc — pkgsrc and the concepts of package management 1997-2007 (part 1). NetBSD. Архів оригіналу за 21 квітня 2014. Процитовано 7 серпня 2019.
- ↑ DarwinPorts project announces New Hosting and New Name. darwinports.opendarwin.org (archived). 7 серпня 2006. Архів оригіналу за 22 лютого 2007. Процитовано 5 березня 2007.
- ↑ Mac OS X:Build from source:MacPorts[[:Шаблон:Dash]]Gramps. www.gramps-project.org. Архів оригіналу за 6 серпня 2021. Процитовано 6 серпня 2021.
{{cite web}}: Назва URL містить вбудоване вікіпосилання (довідка) - ↑ MacPorts[[:Шаблон:Dash]]2020[[:Шаблон:Dash]]Google Summer of Code Archive. summerofcode.withgoogle.com (англ.). Архів оригіналу за 6 березня 2020. Процитовано 6 серпня 2021.
{{cite web}}: Назва URL містить вбудоване вікіпосилання (довідка) - ↑ Does MacPorts work on Apple Silicon?[[:Шаблон:Dash]]Does It ARM. doesitarm.com (англ.). Архів оригіналу за 6 серпня 2021. Процитовано 6 серпня 2021.
{{cite web}}: Назва URL містить вбудоване вікіпосилання (довідка) - ↑ Install and Testing MacPorts on an M1 Mac. RickMakes (амер.). 17 грудня 2020. Архів оригіналу за 6 серпня 2021. Процитовано 6 серпня 2021.
- ↑ Migrating a MacPorts install to a new major OS version or CPU architecture. MacPorts. Архів оригіналу за 9 листопада 2020. Процитовано 27 травня 2013.
- ↑ а б 3.1.3. port sync. guide.macports.org. Архів оригіналу за 6 серпня 2021. Процитовано 6 серпня 2021.
- ↑ а б 3.1.2. port selfupdate. guide.macports.org. Архів оригіналу за 6 серпня 2021. Процитовано 6 серпня 2021.
- ↑ а б в Rider, Stephen. MacPorts Cheat Sheet. kapeli.com. Архів оригіналу за 19 жовтня 2021. Процитовано 6 серпня 2021.
- ↑ 3.1.18. port upgrade. guide.macports.org. Архів оригіналу за 6 серпня 2021. Процитовано 6 серпня 2021.
- ↑ 3.3.3. Upgrading Outdated Ports. guide.macports.org. Архів оригіналу за 6 серпня 2021. Процитовано 6 серпня 2021.
- ↑ а б Parker, Shawn (14 липня 2009). Excluding packages from MacPorts operations. The Gippy Pages (амер.). Архів оригіналу за 6 серпня 2021. Процитовано 6 серпня 2021.
- ↑ 3.1.7. port search. guide.macports.org. Архів оригіналу за 6 серпня 2021. Процитовано 6 серпня 2021.
- ↑ 3.1.11. port install. guide.macports.org. Архів оригіналу за 6 серпня 2021. Процитовано 6 серпня 2021.
- ↑ Using MacPorts. University of MichiganШаблон:DashKnowledge Base (англ.). 27 травня 2020. Архів оригіналу за 6 серпня 2021. Процитовано 6 серпня 2021.
- ↑ 4.4. Port Variants. guide.macports.org. Архів оригіналу за 6 серпня 2021. Процитовано 6 серпня 2021.
- ↑ youtube-dl | MacPorts. ports.macports.org. Архів оригіналу за 6 серпня 2021. Процитовано 6 серпня 2021.
- ↑ а б macports-ports/Portfile at master · macports/macports-ports. GitHub (англ.). Архів оригіналу за 6 серпня 2021. Процитовано 6 серпня 2021.
- ↑ а б 3.2. Port Variants. guide.macports.org. Архів оригіналу за 6 серпня 2021. Процитовано 6 серпня 2021.
- ↑ а б Ports | MacPorts. ports.macports.org. Архів оригіналу за 5 серпня 2021. Процитовано 6 серпня 2021.
- ↑ а б Blog, Arjun Salyan's. GSoC'19: Wrapping up the Project. arjunsalyan.com (англ.). Архів оригіналу за 8 серпня 2021. Процитовано 8 серпня 2021.
- ↑ а б Blog, Arjun Salyan's. Google Summer of Code 2020. arjunsalyan.com (англ.). Архів оригіналу за 8 серпня 2021. Процитовано 8 серпня 2021.
- ↑ Miklavec, Mojca (19 липня 2021). New ports.macports.org website. Архів оригіналу за 8 серпня 2021. Процитовано 8 серпня 2021.
- ↑ Api Root[[:Шаблон:Dash]]Django REST framework. ports.macports.org. Архів оригіналу за 8 серпня 2021. Процитовано 8 серпня 2021.
{{cite web}}: Назва URL містить вбудоване вікіпосилання (довідка) - ↑ The MacPorts Project[[:Шаблон:Dash]]Home. www.macports.org. Архів оригіналу за 6 лютого 2021. Процитовано 8 серпня 2021.
{{cite web}}: Назва URL містить вбудоване вікіпосилання (довідка) - ↑ а б 10 years of pkgsrc[[:Шаблон:Dash]]pkgsrc and the concepts of package management 1997-2007 (part 1). www.netbsd.org. Архів оригіналу за 5 серпня 2021. Процитовано 7 серпня 2021.
{{cite web}}: Назва URL містить вбудоване вікіпосилання (довідка) - ↑ Cao (24 лютого 2017). The Mac Observer Interview with Jordan Hubbard. FreeBSDNews.com (амер.). Архів оригіналу за 7 серпня 2021. Процитовано 7 серпня 2021.
- ↑ а б MacPortsHistory – MacPorts. trac.macports.org. Архів оригіналу за 18 травня 2018. Процитовано 6 серпня 2021.
- ↑ MacPorts 101. www.astrobetter.com. Архів оригіналу за 6 серпня 2021. Процитовано 6 серпня 2021.
- ↑ Mac OS Forge. Архів оригіналу за 20 серпня 2010. Процитовано 17 серпня 2010.
- ↑ MacPorts. GitHub (англ.). Архів оригіналу за 10 серпня 2021. Процитовано 5 серпня 2021.
- ↑ Schmidt, Ryan (19 серпня 2016). Goodbye Mac OS Forge, hello GitHub. lists.macports.org. Архів оригіналу за 2 грудня 2021. Процитовано 7 серпня 2021.
- ↑ Markus Weissmann (28 квітня 2005). DarwinPorts v1.0. darwinports.opendarwin.org (archived). Архів оригіналу за 29 червня 2006. Процитовано 5 березня 2007.
- ↑ 3000 ports landmark. darwinports.opendarwin.org (archived). 17 грудня 2005. Архів оригіналу за 29 червня 2006. Процитовано 5 березня 2007.
- ↑ Joshua Root (22 липня 2011). MacPorts 2.0.0 has been released. MacPorts-announce (Список розсилки). Архів оригіналу за 8 липня 2019. Процитовано 17 серпня 2019.
- ↑ Joshua Root (11 травня 2012). Prebuilt archives available for Lion. MacPorts-announce (Список розсилки). Архів оригіналу за 16 лютого 2019. Процитовано 1 березня 2019.
- ↑ Search ports | MacPorts. Архів оригіналу за 5 серпня 2021. Процитовано 5 серпня 2021.
- ↑ The MacPorts Project[[:Шаблон:Dash]]Contact Us. www.macports.org. Архів оригіналу за 5 серпня 2021. Процитовано 5 серпня 2021.
{{cite web}}: Назва URL містить вбудоване вікіпосилання (довідка) - ↑ Mailman 3 [Linux-SIG] Draft PEP: Graceful cooperation between external and Python package managers[[:Шаблон:Dash]]Linux-sig[[:Шаблон:Dash]]python.org. mail.python.org (англ.). Архів оригіналу за 6 серпня 2021. Процитовано 6 серпня 2021.
{{cite web}}: Назва URL містить вбудоване вікіпосилання (довідка) - ↑ Chapter 4. Installing Applications: Packages and Ports. Архів оригіналу за 22 вересня 2021. Процитовано 7 вересня 2021.
- ↑ 5.2. Global Variables. guide.macports.org. Архів оригіналу за 26 вересня 2021. Процитовано 6 серпня 2021.
- ↑ Install MacPorts. guide.macports.org. Архів оригіналу за 12 червня 2018. Процитовано 6 серпня 2021.
- ↑ FAQ – MacPorts. trac.macports.org. Архів оригіналу за 5 серпня 2021. Процитовано 6 серпня 2021.
- ↑ Fink[[:Шаблон:Dash]]Home. www.finkproject.org. Архів оригіналу за 22 лютого 2023. Процитовано 6 серпня 2021.
{{cite web}}: Назва URL містить вбудоване вікіпосилання (довідка) - ↑ Package Management. Ubuntu (англ.). Архів оригіналу за 22 лютого 2023. Процитовано 8 серпня 2021.
- ↑ Bottles (Binary Packages). Homebrew Documentation. Архів оригіналу за 8 серпня 2021. Процитовано 8 серпня 2021.
- ↑ All Builds | MacPorts. ports.macports.org. Архів оригіналу за 8 серпня 2021. Процитовано 8 серпня 2021.
- ↑ а б 3.4.1. Binary Archives. guide.macports.org. Архів оригіналу за 12 червня 2018. Процитовано 8 серпня 2021.
- ↑ Bharati, Rajdeep (26 серпня 2019). MacPorts-Buildbot GSoC Report. Medium (англ.). Архів оригіналу за 8 серпня 2021. Процитовано 8 серпня 2021.
- ↑ 4.8. MacPorts' buildbot. guide.macports.org. Архів оригіналу за 6 серпня 2021. Процитовано 8 серпня 2021.
- ↑ Buildbot. build.macports.org. Архів оригіналу за 8 серпня 2021. Процитовано 8 серпня 2021.
- ↑ Chapter 4. Portfile Development. guide.macports.org. Архів оригіналу за 6 серпня 2021. Процитовано 6 серпня 2021.
- ↑ PKGBUILD[[:Шаблон:Dash]]ArchWiki. wiki.archlinux.org. Архів оригіналу за 6 серпня 2021. Процитовано 6 серпня 2021.
{{cite web}}: Назва URL містить вбудоване вікіпосилання (довідка) - ↑ Formula Cookbook. Homebrew Documentation. Архів оригіналу за 6 серпня 2021. Процитовано 6 серпня 2021.
- ↑ а б в г д 5.3. Port Phases. guide.macports.org. Архів оригіналу за 26 вересня 2021. Процитовано 6 серпня 2021.
- ↑ ESO[[:Шаблон:Dash]]Using the MacPorts Pipeline Repository. www.eso.org. Архів оригіналу за 7 серпня 2021. Процитовано 7 серпня 2021.
{{cite web}}: Назва URL містить вбудоване вікіпосилання (довідка) - ↑ 3.1.8. port info. guide.macports.org. Архів оригіналу за 12 червня 2018. Процитовано 7 серпня 2021.
- ↑ 5.9.2. PortGroup github. guide.macports.org. Архів оригіналу за 6 серпня 2021. Процитовано 6 серпня 2021.
- ↑ 4.5.2. Creating Source Code Patches. guide.macports.org. Архів оригіналу за 6 серпня 2021. Процитовано 6 серпня 2021.
- ↑ macports-ports/Portfile at 388977d9088455ede9fe4cc3a13af48e9c3ab067 · macports/macports-ports. GitHub (англ.). Архів оригіналу за 6 серпня 2021. Процитовано 6 серпня 2021.
- ↑ 5.3.7. Configure Phase Keywords. guide.macports.org. Архів оригіналу за 6 серпня 2021. Процитовано 6 серпня 2021.
- ↑ macports-ports/Portfile at a4fb1ec6494bd176876b1637fa9f000e08615f96 · macports/macports-ports. GitHub (англ.). Архів оригіналу за 6 серпня 2021. Процитовано 6 серпня 2021.
- ↑ DESTDIR (GNU Coding Standards). www.gnu.org. Архів оригіналу за 4 серпня 2021. Процитовано 6 серпня 2021.
- ↑ 3.4. Port Binaries. guide.macports.org. Архів оригіналу за 26 вересня 2021. Процитовано 7 серпня 2021.
- ↑ MacOS – How to download pre-built binaries from MacPorts without installing – iTecTec. itectec.com. Архів оригіналу за 7 серпня 2021. Процитовано 7 серпня 2021.
- ↑ а б 6.3. Port Images. guide.macports.org. Архів оригіналу за 30 грудня 2021. Процитовано 6 серпня 2021.
- ↑ 3.3.4. Removing Inactive Version(s) of Upgraded Port(s). guide.macports.org. Архів оригіналу за 6 серпня 2021. Процитовано 6 серпня 2021.
- ↑ а б Meetings/MacPortsMeeting2019 – MacPorts. trac.macports.org. Архів оригіналу за 6 серпня 2021. Процитовано 8 серпня 2021.
- ↑ NewCommittersGuide – MacPorts. trac.macports.org. Архів оригіналу за 20 квітня 2021. Процитовано 7 серпня 2021.
- ↑ 4.2. Creating a Portfile. guide.macports.org. Архів оригіналу за 12 червня 2018. Процитовано 7 серпня 2021.
- ↑ 7.6. MacPorts Membership. guide.macports.org. Архів оригіналу за 12 червня 2018. Процитовано 7 серпня 2021.
- ↑ The MacPorts Project Team. trac.macports.org. Архів оригіналу за 5 серпня 2021. Процитовано 7 серпня 2021.
- ↑ Meetings – MacPorts. trac.macports.org. Архів оригіналу за 6 серпня 2021. Процитовано 8 серпня 2021.
- ↑ FAQ[[:Шаблон:Dash]]Statistics | MacPorts. ports.macports.org. Архів оригіналу за 5 серпня 2021. Процитовано 5 серпня 2021.
{{cite web}}: Назва URL містить вбудоване вікіпосилання (довідка) - ↑ Statistics | MacPorts. ports.macports.org. Архів оригіналу за 5 серпня 2021. Процитовано 5 серпня 2021.

