Используя FreeBSD, софт я устанавливаю именно из системы портов. Дерево портов расположено в каталоге /usr/ports
В каталоге портов, кроме самого дерева портов, находятся следующие файлы:
- CHANGES - перечислены изменения, произведенные в инфраструктуре "портов" FreeBSD
- COPYRIGHT - содержит информацию о лицензировании для коллекции "портов" в целом
- GIDs - содержит перечень всех числовых групповых идентификаторов (GID), используемых программным обеспечением в коллекции "портов" (чтобы избежать путаницы и порты не использовали одну и туже учетную запись для разных целей)
- KNOBS - содержит перечень всех параметров настройки, доступных в коллекции "портов"
- LEGAL - содержит список всех правовых ограничений в программном обеспечении, включенном в коллекцию "портов"
- MOVED - содержит список "портов", которые были перемещены из одной категории в другую
- Makefile - содержит высокоуровневые инструкции для всей коллекции "портов" в целом
- каталог Mk - содержит подробные низкоуровневые инструкции для всей коллекции "портов" в целом
- README - содержит описание верхнего уровня организации коллекции "портов"
- каталог Templates - содержит заготовки файлов, используемые другими разделами коллекции портов
- каталог Tools - содержит программы, сценарии и другие средства автоматизации, которые в основном используются разработчиками "портов"
- UIDs - содержит перечень всех числовых идентификаторов пользователей (UID), используемых программным обеспечением в коллекции "портов"
- UPDATING - содержит примечания, используемые при обновлении программного обеспечения
- каталог distfiles - содержит исходный код программного обеспечения, устанавливаемого из "портов"
- INDEX-x - содержит список всех "портов" в алфавитном порядке
Для загрузки, а также поддержания дерева портов в актуальном состоянии используется утилита portsnap.
Поиск определенного порта можно выполнить несколькими способами.
Если полностью известно имя порта, можно воспользоваться коммандой whereis:
# whereis apache24
apache24: /usr/ports/www/apache24 |
Более расширенный поиск по портам можно выполнить, находясь в каталоге /usr/ports:
# cd /usr/ports
# make search name=apache24
# make search key=apache24
|
Отличие между этими коммандами в том, что name ищет вхождение только в названии порта, а key - в именах портов, комментариях, описаниях и зависимостях.
Можно собрать в один html-файл список всех установленных портов с зависимостями и т.д., ссылки на справочные материалы, etc. Для этого нужно выполнить в каталоге /usr/ports такую комманду:
Чтобы установить определенный порт, мы выполняем в его каталоге комманду make install clean. Однако не все так просто. FreeBSD после этой комманды выполняет последовательно следующие этапы:
- make config - задание или изменение текущих настроек
- make fetch - после настройки "порта" система отыскивает предопределенный список сайтов Интернета, откуда можно получить исходный код и выполняет его загрузку
- make checksum - подтверждает, что цифровая подпись файла distfile соответствует подписи из файла distinfo "порта"
- make extract - разворачивает и извлекает скачанный код
- make patch - накладывает на исходный код в рабочем каталоге все патчи, имеющиеся в составе "порта"
- make depends - проверяется зависимость "порта" от любых других программ
- make configure - проверяет необходимость запуска сценария configure. Это отдельный этап, отличный от make config
- make build - происходит компиляция проверенного, извлеченного и исправленного программного кода
- make install - устанавливается программа, а ее наличие регистрируется в /var/db/pkg
Также могут пригодится следующие опции комманды make, которые необходимо выполнять находять в каталоге порта:
- make showconfig — показать текущие опции сборки порта
- make rmconfig — удалить все текущие настройки для порта
- make showconfig-recursive — показать настройки для текущего порта и всех зависимостей
- make config-recursive — задать настройки для текущего порта и всех зависимостей
- make rmconfig-recursive — удалить настройки для текущего порта и всех зависимостей
- make config-conditional — пропустить задание опций для портов, у которых уже были заданы требуемые опции
- make print-index — удобный для чтения индекс
- make deinstall - удаление порта
- make reinstall - выполняет повторную установку порта
- make clean - очистка собранного порта
- make distclean - удалит ненужные distfiles текущего "порта" вместе со всеми зависимостями.
Re: FreeBSD - как работает система портов
>Если полностью известно имя порта, можно воспользоваться коммандой
cd /usr/ports/*/apache24