Как использовать менеджер пакетов Pkg во FreeBSD 12

Вступление

FreeBSD - это Unix-подобная операционная система с открытым исходным кодом, используемая для питания современных серверов, настольных компьютеров и встроенных платформ. Гиганты, такие как Netflix, Yahoo !, WhatsApp, BBC и Sony, используют FreeBSD в той или иной форме. Система FreeBSD не так широко известна, как Linux, в основном потому, что Linux много лет фокусировалась на настольных компьютерах, а проект FreeBSD, как правило, основывался на серверах.

В этом руководстве вы узнаете об управлении пакетами во FreeBSD 12.

Порты против Пакетов

Во FreeBSD у нас есть два разных способа установки дополнительного программного обеспечения: с помощью Коллекции портов или Портов и с помощью предварительно настроенных пакетов для установки и управления программным обеспечением.

Ports - это система для сборки дополнительного программного обеспечения на FreeBSD. С портами вы начинаете с исходного кода, предоставленного поставщиком программного обеспечения, и строите программное обеспечение именно так, как вам нужно, включая и отключая функции по мере необходимости.

Пакеты представляют собой предварительно скомпилированное программное обеспечение, и они являются результатом построения портов с использованием параметров, которые, по мнению сопровождающего порта, будут наиболее полезны для самого широкого круга людей, и объединение их в пакет для облегчения их установки. Пакеты позволяют быстро устанавливать, удалять и обновлять дополнительное программное обеспечение. Система упаковки FreeBSD называется package , или pkg. Информация о пакете хранится в базе данных SQLite, которую вы можете запросить о данных пакета.

Еще одна важная вещь в управлении пакетами FreeBSD - это расположение бинарных файлов. Пакеты установки бинарных файлов под /usr/local, и большинство конфигурационных файлов в конечном итоге , в /usr/local/etcчем /etc. Если вы пришли из мира Linux, вы можете найти это очень необычным.

Менеджер пакетов FreeBSD, pkg

Следующее поколение заменяет традиционные инструменты управления пакетами FreeBSD pkg. Предлагая множество функций, которые делают работу с бинарными пакетами быстрее и проще, pkgэто самый простой способ установить программное обеспечение, которое еще не включено в базовую систему FreeBSD. Это отдельная программа со многими подкомандами, которую вы будете использовать практически для каждой операции с пакетами, такой как установка, удаление и исследование пакетов. Все операции с пакетами и изменения должны выполняться как rootили через sudo.

Вот как вы должны установить curlпакет на FreeBSD:

pkg install curl

Вы можете передать команду с помощью, -yчтобы избежать Proceed with this action? [y/N]:вопроса при установке программного обеспечения, или вы можете настроить, pkgчтобы всегда предполагать -yв файле конфигурации.

Чтобы удалить пакет, вы должны использовать delete:

pkg delete curl

Как видите, все очень просто и интуитивно понятно.

Используйте pkg helpдля быстрого ознакомления с доступными подкомандами или pkg help <subcommand>для отображения страницы руководства для конкретной подкоманды:

pkg help
pkg help install
pkg help delete

Установка pkg

Стандартная версия FreeBSD не поставляется с pkgустановленным менеджером пакетов. При первой попытке установить какой-либо пакет pkgвам будет предложено установить инструмент управления пакетами. Например, скажем, пе��вый пакет, который вы хотите установить на свой свежий FreeBSD, - wgetи вы увидите следующее приглашение в вашем терминале:

The package management tool is not yet installed on your system.
Do you want to fetch and install it now? [y/N]: y

Вы нажмете, Yи ENTERначнется установка инструмента управления пакетами. После его установки wgetбудет установлен исходный программный пакет, который вы хотели установить ( ).

Вы также можете установить систему упаковки самостоятельно, без добавления других пакетов, запустив ее pkg bootstrap. Кроме того, pkgумеет устанавливать и обновлять себя и другие пакеты.

ПРИМЕЧАНИЕ. Экземпляры Vultr pkgустановлены по умолчанию, поэтому вам не нужно их устанавливать.

Настройка pkg

pkgПрограмма предназначена для высокой гибкости, с каждой подкомандой , имеющей много вариантов. Вы можете установить настраиваемое, но согласованное поведение для большинства программ с помощью общесистемного файла конфигурации для pkg, расположенного в /usr/local/etc/pkg.conf.

Файл содержит закомментированные значения по умолчанию для pkg. Просто прочитав этот файл, вы сможете многое узнать о том, как pkgведет себя. Конфигурация написана на универсальном языке конфигурации (UCL), и есть много закомментированных опций конфигурации и довольно много псевдонимов. Переменные могут быть установлены в целое число, строку или логическое значение:

#PKG_DBDIR = "/var/db/pkg";
#PKG_CACHEDIR = "/var/cache/pkg";
#PORTSDIR = "/usr/ports";
#INDEXDIR = "";
#INDEXFILE = "INDEX-10";        # Autogenerated
#HANDLE_RC_SCRIPTS = false;
#DEFAULT_ALWAYS_YES = false;
#ASSUME_ALWAYS_YES = false;
. . .

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

Для получения дополнительной информации о формате файла и опциях, вы можете обратиться к pkg.conf(5)странице справочника :

man pkg.conf

Поиск пакетов

Теперь, когда у вас установлен менеджер пакетов, вы можете устанавливать пакеты. Если вы являетесь системным администратором, вы знакомы с тем фактом, что разные операционные системы присваивают разные имена упакованным версиям одного и того же программного обеспечения. Например, пакет для веб-сервера Apache во FreeBSD будет иметь совершенно другое имя, чем пакетный Apache в разных дистрибутивах Linux. Поэтому, прежде чем вы сможете что-либо установить, вам нужно выяснить, какое имя пакета вы хотите установить.

Проект FreeBSD предлагает несколько наборов пакетов в общедоступном репозитории, и они обновляются каждые несколько дней. В настоящее время существует более 25 000 пакетов.

Например, давайте попробуем найти веб-сервер Apache:

pkg search apache
# apache24-2.4.38                Version 2.4.x of Apache web server

Он найдет все пакеты с apacheих именами. Это вернет длинный список, но вы ищете apache24пакет. Существует краткое описание каждой упаковки. Это должно помочь вам при выборе пакета для установки, но это не всегда просто.

Некоторые поиски могут дать сотни результатов. Вам нужно будет использовать различные параметры командной строки, чтобы обрезать или настроить результаты поиска. Обратитесь к pkg-searchстранице справки или странице справки, pkg help searchчтобы узнать больше об общих параметрах поиска.

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

pkg search -R apache24

# name: "apache24"
# origin: "www/apache24"
# version: "2.4.38"
# comment: "Version 2.4.x of Apache web server"
# maintainer: "[email protected]"
# www: "https://httpd.apache.org/"
# abi: "FreeBSD:12:amd64"
# arch: "freebsd:12:x86:64"
# prefix: "/usr/local"
# . . .
# . . .

Эта команда даст вам много полезной информации о пакете.

Установка пакетов

Для установки программного обеспечения используйте installподкоманду и имя устанавливаемого пакета:

pkg install apache24

При установке пакетов с pkg install, pkgконсультируется с локальным каталогом пакетов, затем загружает запрошенный пакет из хранилища по адресу pkg.FreeBSD.org. После того, как пакет установлен, он зарегистрирован в базе данных SQLite, которая хранится в /var/db/pkg/local.sqlite. Старайтесь не удалять этот файл, иначе ваша система потеряет информацию о том, какие пакеты были установлены. Если у программного обеспечения есть зависимости, pkgвыясним их и установим вместе с базовым пакетом. Пакеты, установленные как зависимости, называются автоматическими пакетами.

Менеджер пакетов имеет возможность просто загружать пакеты через Интернет и сохранять их в одном месте на диске. Это позволяет установить их в другое время. Вы можете использовать pkg fetchкоманду для загрузки пакета без его установки:

pkg fetch nginx

Эта команда будет извлекать только Nginx без его зависимостей. Вы можете использовать -dфлаг для получения всех зависимостей, а также именованного пакета:

pkg fetch -d nginx

Пакеты загружаются в каталог кэша пакетов /var/cache/pkg. После того, как вы получили пакеты, pkgдобавьте их в этот каталог. Вы можете перечислить файлы, чтобы увидеть, что он содержит:

ls /var/cache/pkg

Теперь, чтобы установить загруженный пакет после получения, запустите его pkg installкак обычно. В процессе установки используются кэшированные файлы, а не загруженные.

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

pkg clean

Если вы хотите удалить все кэшированные пакеты, используйте -aфлаг:

pkg clean -a

Если вы хотите очищать кэш пакета автоматически после каждой установки или обновления пакета, установите для этого pkg.confпараметра AUTOCLEANзначение true.

Получение информации об установленных пакетах

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

pkg info
# atk-2.28.1                     GNOME accessibility toolkit (ATK)
# avahi-app-0.7_2                Service discovery on a local network
# ca_root_nss-3.42.1             Root certificate bundle from the Mozilla Project
# . . .
# . . .

Если вам нужна дополнительная информация об установленном пакете, используйте pkg infoи имя пакета. Это показывает детали установки пакета в удобном для человека отчете:

pkg info nginx
# nginx-1.14.2_3,2
# Name           : nginx
# Version        : 1.14.2_3,2
# . . .
# . . .

Вы можете увидеть много полезной информации, такой как версия программного обеспечения, время установки программного обеспечения, лицензия на программное обеспечение, флаги времени компиляции и многое другое. Проверьте pkg-infoman-страницу для получения полной информации.

Удаление пакетов

Для удаления бинарных пакетов используйте pkg deleteподкоманду. Это также доступно как pkg remove:

pkg delete nginx
# or
pkg remove nginx

Вы получите список пакетов, которые нужно удалить, и сколько места это освободит.

Если вы удаляете пакет, от которого зависят другие пакеты, pkgудаляются также и другие пакеты.

Блокировка пакетов

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

Используйте pkg lockдля блокировки пакета:

pkg lock openssl

Этот opensslпакет сейчас заблокирован.

Чтобы вывести список всех заблокированных на данный момент пакетов в системе, используйте -lфлаг:

pkg lock -l

Чтобы снять блокировку, используйте pkg unlockкоманду:

pkg unlock openssl

Чтобы заблокировать или разблокировать все пакеты в системе одновременно, используйте -aфлаг:

pkg lock -a
pkg unlock -a

Репозитории пакетов

Поддерживаются репозитории пакетов pkg, которые называются коллекциями пакетов. Вы можете добавлять, удалять, включать и отключать репозитории. Вы должны настроить каждый репозиторий в своем собственном файле, используя формат UCL. Официальные репозитории FreeBSD входят в /etc/pkgкаталог. FreeBSD поставляется с включенным репо «FreeBSD». Вы найдете его файл конфигурации в /etc/pkg/FreeBSD.conf:

FreeBSD: {
  url: "pkg+http://pkg.FreeBSD.org/${ABI}/quarterly",
  mirror_type: "srv",
  signature_type: "fingerprints",
  fingerprints: "/usr/share/keys/pkg",
  enabled: yes
}

Вы можете добавлять и удалять репозитории по мере необходимости. Как /etc/pkgзарезервировано для официальных репозиториев FreeBSD, вам понадобится другой каталог. Традиционное расположение /usr/local/etc/pkg/repos. Если вы хотите использовать другой каталог, вам нужно указать местоположение pkg.confс помощью REPO_DIRSопции. Локальный каталог репозитория не существует по умолчанию, поэтому вам нужно создать его с помощью mkdir -p /usr/local/etc/pkg/repos. Поместите свои собственные конфигурации репозитория в этот каталог.

Пример pkgподкоманд

В этом разделе перечислены некоторые из наиболее часто используемых подкоманд, которые вы, скорее всего, будете использовать при администрировании сервера FreeBSD:

# Installs a package without asking any questions
pkg install -y package

# Makes a backup of the local package database
pkg backup

# Lists all installed packages
pkg info

# Shows extended information for a package
pkg info package

# Searches package repository
pkg search -i package

# Shows packages with known security vulnerabilities
pkg audit -F

# Shows which package owns the named file
pkg which file

# Removes unused packages
pkg autoremove

# Uninstalls a package
pkg delete package

# Removes cached packages from /var/cache/pkg 
pkg clean -ay

# Updates local copy of the package catalog
pkg update

# Upgrades installed packages to their latest version
pkg upgrade

# Checks the integrity of all your packages
pkg check -saq

# Verifies that a package's files are unaltered
pkg check -s nginx

# Shows what files came with the package
pkg info -l nginx

# Lists non-automatic packages
pkg prime-list

Важные файлы и каталоги

  • pkgКонфигурационный файл -/usr/local/etc/pkg.conf
  • Каталог, зарезервированный для официальных репозиториев FreeBSD - /etc/pkg
  • Файл репозитория FreeBSD - /etc/pkg/FreeBSD.conf
  • Традиционное место для пользовательских репозиториев - /usr/local/etc/pkg/repos
  • Каталог кеша пакетов - /var/cache/pkg
  • База данных SQLite - /var/db/pkg/local.sqlite

Резюме

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



Leave a Comment

Изучение 26 методов анализа больших данных: часть 1

Изучение 26 методов анализа больших данных: часть 1

Изучение 26 методов анализа больших данных: часть 1

6 невероятных фактов о Nintendo Switch

6 невероятных фактов о Nintendo Switch

Многие из вас знают Switch, который выйдет в марте 2017 года, и его новые функции. Для тех, кто не знает, мы подготовили список функций, которые делают «Switch» обязательным гаджетом.

Технические обещания, которые все еще не выполнены

Технические обещания, которые все еще не выполнены

Вы ждете, когда технологические гиганты выполнят свои обещания? проверить, что осталось недоставленным.

Функциональные возможности уровней эталонной архитектуры больших данных

Функциональные возможности уровней эталонной архитектуры больших данных

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

Как ИИ может вывести автоматизацию процессов на новый уровень?

Как ИИ может вывести автоматизацию процессов на новый уровень?

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

CAPTCHA: как долго она может оставаться жизнеспособным методом различения между человеком и ИИ?

CAPTCHA: как долго она может оставаться жизнеспособным методом различения между человеком и ИИ?

CAPTCHA стало довольно сложно решать пользователям за последние несколько лет. Сможет ли он оставаться эффективным в обнаружении спама и ботов в ближайшем будущем?

Технологическая сингулярность: далекое будущее человеческой цивилизации?

Технологическая сингулярность: далекое будущее человеческой цивилизации?

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

Телемедицина и удаленное здравоохранение: будущее уже здесь

Телемедицина и удаленное здравоохранение: будущее уже здесь

Что такое телемедицина, дистанционное здравоохранение и их влияние на будущее поколение? Это хорошее место или нет в ситуации пандемии? Прочтите блог, чтобы узнать мнение!

Вы когда-нибудь задумывались, как хакеры зарабатывают деньги?

Вы когда-нибудь задумывались, как хакеры зарабатывают деньги?

Возможно, вы слышали, что хакеры зарабатывают много денег, но задумывались ли вы когда-нибудь о том, как они зарабатывают такие деньги? Давайте обсудим.

Обновление дополнения к macOS Catalina 10.15.4 вызывает больше проблем, чем решает

Обновление дополнения к macOS Catalina 10.15.4 вызывает больше проблем, чем решает

Недавно Apple выпустила macOS Catalina 10.15.4, дополнительное обновление для исправления проблем, но похоже, что это обновление вызывает больше проблем, приводящих к поломке компьютеров Mac. Прочтите эту статью, чтобы узнать больше