Как да използвате Pkg Package Manager на FreeBSD 12

Въведение

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

В това ръководство ще научите за управлението на пакети във FreeBSD 12.

Портове срещу пакети

Във FreeBSD имаме два различни начина за инсталиране на допълнителен софтуер: чрез колекцията от портове или портове и чрез предварително конфигурирани пакети за инсталиране и управление на софтуер.

Ports е система за изграждане на допълнителен софтуер във FreeBSD. С Ports вие започвате със суровия изходен код, предоставен от доставчика на софтуер, и изграждате софтуера точно по начина, от който се нуждаете, като активирате и деактивирате функции, както ви е необходимо.

Пакетите са предварително компилиран софтуер и са резултат от изграждане на портове, като се използват опциите, които поддържачът на порта смята, че ще бъдат най-полезни за най-голямо разнообразие от хора и ги обединява в пакет, за да ги направи лесно инсталирани. Пакетите ви позволяват бързо да инсталирате, деинсталирате и надстройвате допълнителен софтуер. Системата за пакетиране на FreeBSD се нарича пакет или 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
# . . .
# . . .

You can see a lot of useful information like the version of the software, the time of software installation, software license, compile-time flags and more. Check the pkg-info man page for the complete details.

Removing packages

To uninstall binary packages use the pkg delete subcommand. It’s also available as pkg remove:

pkg delete nginx
# or
pkg remove nginx

You will get a list of packages to be removed and how much space this will free up.

If you remove a package that other packages depend on, pkg removes the depending packages as well.

Locking packages

There may be a time when you want a package on your server to never upgrade. When you lock a package, pkg won’t upgrade, downgrade, uninstall or reinstall it. It applies the same rules to the package’s dependencies and the programs it depends on.

Използвайте 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 Ports Collection, за инсталиране от източник и пакети, за инсталиране от предварително изградени двоични файлове. Тъй като FreeBSD насочва системата по-решително към универсално управление на пакети, опитайте се да управлявате софтуера на трети страни pkgдоколкото е възможно. Избягвайте да използвате портове, освен ако софтуерът, който искате, няма пакетирана версия или ако трябва да персонализирате опциите за време на компилиране.


Как да инсталирате Tiny Tiny RSS Reader на FreeBSD 11 FAMP VPS

Как да инсталирате Tiny Tiny RSS Reader на FreeBSD 11 FAMP VPS

Използване на различна система? Tiny Tiny RSS Reader е безплатен четец и агрегатор с отворен код, самостоятелно хостван уеб базиран новинарски канал (RSS/Atom), предназначен да

Как да инсталирате Wiki.js на FreeBSD 11

Как да инсталирате Wiki.js на FreeBSD 11

Използване на различна система? Wiki.js е безплатно и модерно уики приложение с отворен код, изградено на Node.js, MongoDB, Git и Markdown. Изходният код на Wiki.js е публичен

Как да инсталирате Pagekit 1.0 CMS на FreeBSD 11 FAMP VPS

Как да инсталирате Pagekit 1.0 CMS на FreeBSD 11 FAMP VPS

Използване на различна система? Pagekit 1.0 CMS е красива, модулна, разширяема и лека, безплатна система за управление на съдържанието (CMS) с отворен код с

Как да инсталирате MODX Revolution на FreeBSD 11 FAMP VPS

Как да инсталирате MODX Revolution на FreeBSD 11 FAMP VPS

Използване на различна система? MODX Revolution е бърза, гъвкава, мащабируема система за управление на съдържанието (CMS) от корпоративен клас, написана на PHP. То и

Настройка на OpenBSD 5.5 64-битов

Настройка на OpenBSD 5.5 64-битов

Тази статия ви превежда през настройката на OpenBSD 5.5 (64-битов) на KVM с Vultr VPS. Стъпка 1. Влезте в контролния панел на Vultr. Стъпка 2. Щракнете върху РАЗГРАЖДАНЕ

Как да инсталирате osTicket на FreeBSD 12

Как да инсталирате osTicket на FreeBSD 12

Използване на различна система? osTicket е система за билети за поддръжка на клиенти с отворен код. Изходният код на osTicket се хоства публично на Github. В този урок

Как да инсталирате Flarum Forum на FreeBSD 12

Как да инсталирате Flarum Forum на FreeBSD 12

Използване на различна система? Flarum е безплатен софтуер за форуми от следващо поколение с отворен код, който прави онлайн дискусията забавна. Изходният код на Flarum се хоства o

Как да активирате TLS 1.3 в Nginx на FreeBSD 12

Как да активирате TLS 1.3 в Nginx на FreeBSD 12

Използване на различна система? TLS 1.3 е версия на протокола за сигурност на транспортния слой (TLS), който беше публикуван през 2018 г. като предложен стандарт в RFC 8446

Инсталирайте WordPress на OpenBSD 6.2

Инсталирайте WordPress на OpenBSD 6.2

Въведение WordPress е доминиращата система за управление на съдържанието в интернет. Той захранва всичко от блогове до сложни уебсайтове с динамично съдържание

Как да инсталирате Subrion 4.1 CMS на FreeBSD 11 FAMP VPS

Как да инсталирате Subrion 4.1 CMS на FreeBSD 11 FAMP VPS

Използване на различна система? Subrion 4.1 CMS е мощна и гъвкава система за управление на съдържанието (CMS) с отворен код, която носи интуитивно и ясно съдържание

Как да конфигурирате DJBDNS на FreeBSD

Как да конфигурирате DJBDNS на FreeBSD

Този урок ще ви покаже как да конфигурирате DNS услуга, която е лесна за поддръжка, лесна за конфигуриране и която като цяло е по-сигурна от класическия BIN

Как да инсталирате стека Nginx, MySQL и PHP (FEMP) на FreeBSD 12.0

Как да инсталирате стека Nginx, MySQL и PHP (FEMP) на FreeBSD 12.0

FEMP стек, който е сравним с LEMP стек в Linux, е колекция от софтуер с отворен код, който обикновено се инсталира заедно, за да даде възможност на FreeBS

Инсталиране на MongoDB на FreeBSD 10

Инсталиране на MongoDB на FreeBSD 10

MongoDB е NoSQL база данни от световна класа, която често се използва в по-новите уеб приложения. Той осигурява заявки с висока производителност, разделяне и репликация

Как да инсталирате Monica на FreeBSD 12

Как да инсталирате Monica на FreeBSD 12

Използване на различна система? Monica е система за управление на лични взаимоотношения с отворен код. Мислете за него като за CRM (популярен инструмент, използван от търговските екипи в th

OpenBSD като решение за електронна търговия с PrestaShop и Apache

OpenBSD като решение за електронна търговия с PrestaShop и Apache

Въведение Този урок демонстрира OpenBSD като решение за електронна търговия, използващо PrestaShop и Apache. Apache е необходим, тъй като PrestaShop има сложен UR

Инсталиране на Fork CMS на FreeBSD 12

Инсталиране на Fork CMS на FreeBSD 12

Използване на различна система? Fork е CMS с отворен код, написан на PHP. Изходният код на Forks се хоства на GitHub. Това ръководство ще ви покаже как да инсталирате Fork CM

Как да инсталирате Directus 6.4 CMS на FreeBSD 11 FAMP VPS

Как да инсталирате Directus 6.4 CMS на FreeBSD 11 FAMP VPS

Използване на различна система? Directus 6.4 CMS е мощна и гъвкава, безплатна и с отворен код Headless Content Management System (CMS), която предоставя на разработчиците

Повишаване на сигурността за FreeBSD с помощта на IPFW и SSHGuard

Повишаване на сигурността за FreeBSD с помощта на IPFW и SSHGuard

VPS сървърите често са насочени от натрапници. Често срещан тип атака се появява в системните регистрационни файлове като стотици неоторизирани опити за влизане в ssh. Настройвам

Настройте httpd в OpenBSD

Настройте httpd в OpenBSD

Въведение OpenBSD 5.6 въведе нов демон, наречен httpd, който поддържа CGI (чрез FastCGI) и TLS. Не е необходима допълнителна работа за инсталиране на новия http

Настройте iRedMail на FreeBSD 10

Настройте iRedMail на FreeBSD 10

Този урок ще ви покаже как да инсталирате груповия софтуер iRedMail на нова инсталация на FreeBSD 10. Трябва да използвате сървър с поне един гигабайт o

Възходът на машините: Реални приложения на AI

Възходът на машините: Реални приложения на AI

Изкуственият интелект не е в бъдещето, тук е точно в настоящето. В този блог Прочетете как приложенията за изкуствен интелект са повлияли на различни сектори.

DDOS атаки: кратък преглед

DDOS атаки: кратък преглед

Вие също сте жертва на DDOS атаки и сте объркани относно методите за превенция? Прочетете тази статия, за да разрешите вашите запитвания.

Чудили ли сте се как хакерите печелят пари?

Чудили ли сте се как хакерите печелят пари?

Може би сте чували, че хакерите печелят много пари, но чудили ли сте се някога как печелят такива пари? нека обсъдим.

Революционни изобретения на Google, които ще улеснят живота ви.

Революционни изобретения на Google, които ще улеснят живота ви.

Искате ли да видите революционни изобретения на Google и как тези изобретения промениха живота на всяко човешко същество днес? След това прочетете в блога, за да видите изобретенията на Google.

Friday Essential: Какво се случи с колите, задвижвани от изкуствен интелект?

Friday Essential: Какво се случи с колите, задвижвани от изкуствен интелект?

Концепцията за самоуправляващи се автомобили да тръгват по пътищата с помощта на изкуствен интелект е мечта, която имаме от известно време. Но въпреки няколкото обещания, те не се виждат никъде. Прочетете този блог, за да научите повече…

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

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

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

Еволюция на съхранението на данни – инфографика

Еволюция на съхранението на данни – инфографика

Методите за съхранение на данните може да се развиват от раждането на данните. Този блог обхваща развитието на съхранението на данни на базата на инфографика.

Функционалности на референтните архитектурни слоеве за големи данни

Функционалности на референтните архитектурни слоеве за големи данни

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

6 невероятни предимства от наличието на интелигентни домашни устройства в живота ни

6 невероятни предимства от наличието на интелигентни домашни устройства в живота ни

В този дигитално задвижван свят устройствата за интелигентен дом се превърнаха в решаваща част от живота. Ето няколко невероятни предимства на интелигентните домашни устройства за това как те правят живота ни струващ и по-опростен.

Актуализацията на допълнението на macOS Catalina 10.15.4 причинява повече проблеми, отколкото решава

Актуализацията на допълнението на macOS Catalina 10.15.4 причинява повече проблеми, отколкото решава

Наскоро Apple пусна macOS Catalina 10.15.4 допълнителна актуализация за отстраняване на проблеми, но изглежда, че актуализацията причинява повече проблеми, водещи до блокиране на mac машини. Прочетете тази статия, за да научите повече