Вопрос или проблема
Как в операционной системе FreeBSD загрузить один порт из коллекции портов FreeBSD, вместо того чтобы загружать всю коллекцию портов?
Вы можете установить отдельный пакет, используя команду pkg_add
, например так:
pkg_add -r <package>
Опция -r
указывает pkg_add
загрузить пакет через сеть. Например, для установки bash
:
pkg_add -r bash
Как и многие вещи в FreeBSD, это описано в руководстве FreeBSD, в частности в разделе под названием Использование системы пакетов. Это стоит прочитать, особенно если вы используете версию -release
FreeBSD.
Используйте SVN, чтобы получить только нужный вам каталог. Например, вам нужно загрузить ТОЛЬКО multimedia/vlc — тогда используйте эту команду:
svn co https://svn0.us-east.FreeBSD.org/ports/head/multimedia/vlc /usr/ports/multimedia/vlc
Конечно, место назначения может быть любым, каким вы захотите, например, /home/user/vlc и т.д.
Ответ или решение
Для того чтобы скачать отдельный порт из коллекции портов FreeBSD, важно понимать, что в рамках FreeBSD существует два основных метода управления программным обеспечением: через систему пакетов и через систему портов. Когда речь идет именно о коллекции портов, мы имеем дело с системой, которая позволяет компилировать и устанавливать программное обеспечение из исходников, предоставляя множество гибких возможностей для настройки. Однако скачивать всю коллекцию портов целиком может быть нежелательно или неразумно, особенно если вам требуется только один конкретный порт.
Теория: Понимание системы портов FreeBSD
Коллекция портов FreeBSD действительно представляет собой большое дерево, содержащее Makefile’ы, патчи и метаданные, необходимые для сборки программного обеспечения. Полная коллекция насчитывает более 30 тысяч портов и занимает значительное количество дискового пространства. Порты обычно обновляются регулярно, что также требует постоянного внимания, если вы используете полную коллекцию.
Загружать всю коллекцию целиком зачастую необязательно и избыточно, если вы хотите установить всего одну программу. Существует несколько методов, позволяющих извлечь только необходимый порт.
Пример: Использование svn
для извлечения одного порта
Существует подход, который позволяет вам скачать определенный порт без необходимости загружать всю коллекцию. Для этого можно использовать svn
(Subversion) для выбора конкретного каталога порта из репозитория. Это позволит вам сэкономить время и пространство на вашем устройстве.
Предположим, вы хотите скачать и установить порт для программы VLC, которая является популярным медиапроигрывателем. Для этого вы можете выполнить следующую команду:
svn co https://svn0.us-east.FreeBSD.org/ports/head/multimedia/vlc /usr/ports/multimedia/vlc
В этой команде:
svn co
обозначает Subversion checkout, что означает загрузку кода из удаленного репозитория.https://svn0.us-east.FreeBSD.org/ports/head/multimedia/vlc
– это URL, указывающий на конкретное местоположение порта VLC в структуре коллекции портов FreeBSD./usr/ports/multimedia/vlc
— это путь назначения, куда будет скачан порт. По желанию, вы можете заменить его на любой другой предпочтительный каталог, например,/home/user/vlc
.
Применение: Шаги для скачивания и установки отдельного порта
-
Убедитесь, что у вас установлен клиент Subversion. Обычно он доступен в базовой установке FreeBSD. Если нет, установите его командой
pkg install subversion
. -
Выберите и найдите порт в коллекции. Посетите официальную веб-страницу портов FreeBSD для поиска нужного вам порта и просмотра его пути в структуре коллекции.
-
Используйте команду
svn co
для скачивания. Пример команды уже был продемонстрирован выше. Вам просто нужно заменить путь на тот, который определен для нужного вам порта. -
Скомпилируйте и установите порт. Переместитесь в каталог, куда вы скачали порт, и выполните команду
make install clean
. Это автоматически скачает все необходимые зависимости, соберет и установит программу на вашем компьютере. -
Обслуживание и обновления. Регулярно проверяйте наличие обновлений для скачанного порта, чтобы поддерживать его актуальность относительно более широких изменений в коллекции портов.
Дополнительные замечания:
- Хотя использование системы портов даёт больше гибкости, чем установка бинарных пакетов, это может занять больше времени из-за необходимости компиляции.
- Первоначально загрузка конкретного порта через Subversion требует настройки доступа к интернету, и должна быть выполнена в системе, где уже имеется базовая инфраструктура для управления портами (например, установлен
make
и другие инструменты разработки).
Этот способ предоставляет большой контроль над версиями и параметрами сборки программ, но если вам не требуется особая кастомизация, возможно, удобнее воспользоваться системой пакетов, использующей бинарные файлы. Для установки программ этого типа можно использовать команду: pkg install <название_пакета>
, что предоставит более быстрый способ установки без необходимости компиляции. Однако, если ваш порт требует специфических патчей или конфигурации, использование коллекции портов остается предпочтительным подходом.