Увод
Портови наспрам пакета
ФрееБСД менаџер пакета, пкг
Инсталирање пакета
Конфигурисање пкг
Проналажење пакета
Инсталирање пакета
Добијање информација о инсталираним пакетима
Уклањање пакета
Закључавање пакета
Спремишта пакета
Пример пкг подкоманди
Важне датотеке и директоријуми
Резиме
Увод
ФрееБСД је оперативни систем отвореног кода сличан Уник-у који се користи за напајање модерних сервера, десктопа и уграђених платформи. Дивови као што су Нетфлик, Иахоо!, ВхатсАпп, ББЦ и Сони користе ФрееБСД у неком облику. ФрееБСД систем није тако широко познат као Линук, углавном због тога што се Линук годинама фокусирао на радну површину и ФрееБСД пројекат је имао тенденцију да буде више базиран на серверима.
У овом водичу ћете научити о управљању пакетима на ФрееБСД 12.
Портови наспрам пакета
На ФрееБСД-у имамо два различита начина за инсталирање додатног софтвера: преко колекције портова или портова и преко унапред конфигурисаних пакета за инсталирање и управљање софтвером.
Портови су систем за прављење додатног софтвера на ФрееБСД-у. Са портовима почињете са сировим изворним кодом који обезбеђује произвођач софтвера и градите софтвер тачно онако како вам је потребно, омогућавајући и онемогућавајући функције по потреби.
Пакети су унапред компајлирани софтвер и резултат су изградње портова, користећи опције за које одржавалац порта сматра да ће бити најкорисније најширем спектру људи и спајајући их у пакет како би се лако инсталирали. Пакети вам омогућавају да брзо инсталирате, деинсталирате и надоградите додатни софтвер. ФрееБСД-ов систем паковања се зове пакет или pkg. Информације о пакету се чувају у СКЛите бази података коју можете питати о подацима о пакету.
Још једна важна ствар у вези са управљањем ФрееБСД пакетима је локација бинарних датотека пакета. Пакети инсталирати бинарне под /usr/local, а већина цонфигуратион филес завршити у /usr/local/etcнего /etc. Ако долазите из Линук света, ово вам може бити веома неуобичајено.
ФрееБСД менаџер пакета, pkg
Следећа генерација замена за традиционалне ФрееБСД алате за управљање пакетима је pkg. Нудећи многе функције које чине рад са бинарним пакетима бржим и лакшим, pkgје најлакши начин за инсталирање софтвера који већ није укључен у основни систем ФрееБСД-а. То је један програм са много поднаредби које ћете користити за скоро сваку операцију на пакетима као што је инсталирање, уклањање и истраживање пакета. Све операције и промене пакета морају бити покренуте као rootили преко sudo.
Ево како бисте инсталирали curlпакет на ФрееБСД:
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
Стандардна верзија ФрееБСД-а се не испоручује са pkgинсталираним менаџером пакета. Када први пут покушате да инсталирате неки пакет, pkgтражи од вас да инсталирате алатку за управљање пакетима. На пример, рецимо да је први пакет који желите да инсталирате на ваш нови ФрееБСД 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зна како да инсталира и ажурира себе и друге пакете.
НАПОМЕНА: Вултр инстанце су pkgинсталиране по подразумеваној вредности, тако да не морате да их инсталирате.
Конфигурисање pkg
pkgПрограм је дизајниран да буде веома флексибилан, са сваким подопција има много опција. Можете успоставити прилагођено, али доследно понашање за већину програма помоћу конфигурационе датотеке за цео систем за pkg, која се налази у /usr/local/etc/pkg.conf.
Датотека садржи коментарисане подразумеване вредности за pkg. Читајући ту датотеку, можете научити много о томе како pkgсе понаша. Конфигурација је написана на универзалном конфигурационом језику (УЦЛ) и постоји много опција за конфигурисање са коментарима и доста алијаса. Променљиве се могу подесити на цео број, стринг или логичку вредност:
#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
Проналажење пакета
Сада када имате инсталиран менаџер пакета, можете инсталирати пакете. Ако сте сис-админ, упознати сте са чињеницом да различити оперативни системи додељују различита имена упакованим верзијама истог софтвера. Пакет за Апацхе веб сервер на ФрееБСД-у, на пример, имаће потпуно другачије име од упакованог Апацхе-а на различитим Линук дистрибуцијама. Дакле, пре него што можете било шта да инсталирате, мораћете да схватите како се зове пакет који желите да инсталирате.
ФрееБСД пројекат нуди неколико сетова пакета у јавном спремишту и они се ажурирају сваких неколико дана. Тренутно има преко 25.000 пакета.
На пример, хајде да покушамо да потражимо Апацхе веб сервер:
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: "apache@FreeBSD.org"
# 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. Када се пакет инсталира, он се региструје у СКЛите бази података која се чува у /var/db/pkg/local.sqlite. Водите рачуна да не избришете ову датотеку, иначе ће ваш систем изгубити траг о томе који су пакети инсталирани. Ако софтвер има зависности, pkgоткриће их и инсталирати заједно са основним пакетом. Пакети инсталирани као зависности називају се аутоматски пакети.
Менаџер пакета има могућност да само преузме пакете преко интернета и сачува их на једној локацији на диску. Ово вам омогућава да их инсталирате у неко друго време. Можете користити pkg fetchнаредбу да преузмете пакет без инсталирања:
pkg fetch 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, који су именоване колекције пакета. Можете додати, уклонити, омогућити и онемогућити спремишта. Требало би да конфигуришете свако спремиште у сопственој датотеци користећи УЦЛ формат. Званична ФрееБСД спремишта припадају /etc/pkgдиректоријуму. ФрееБСД се испоручује са омогућеним репо "ФрееБСД". Његову конфигурациону датотеку ћете пронаћи у /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је резервисано за званична ФрееБСД спремишта, требаће вам још један директоријум. Традиционална локација је /usr/local/etc/pkg/repos. Ако желите да користите други директоријум, мораћете да подесите локацију pkg.confпомоћу REPO_DIRSопције. Директоријум локалног спремишта подразумевано не постоји, тако да ћете морати да га креирате са mkdir -p /usr/local/etc/pkg/repos. Ставите своје сопствене конфигурације спремишта у тај директоријум.
Пример pkgподкоманди
Овај одељак ће навести неке од најчешће коришћених подкоманди које ћете највероватније користити када администрирате ФрееБСД сервер:
# 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
- Директоријум резервисан за званична ФрееБСД спремишта -
/etc/pkg
- ФрееБСД датотека спремишта -
/etc/pkg/FreeBSD.conf
- Традиционална локација за прилагођена спремишта -
/usr/local/etc/pkg/repos
- Директоријум кеш меморије пакета -
/var/cache/pkg
- СКЛите база података -
/var/db/pkg/local.sqlite
Резиме
ФрееБСД обезбеђује две комплементарне технологије за инсталирање софтвера треће стране: ФрееБСД Портс Цоллецтион, за инсталацију из извора и пакета, за инсталацију из унапред изграђених бинарних датотека. Како ФрееБСД одлучније помера систем ка универзалном управљању пакетима, покушајте да управљате софтвером треће pkgстране колико је то могуће. Избегавајте коришћење портова осим ако софтвер који желите нема упаковану верзију или ако морате да прилагодите опције времена компајлирања.