Bevezetés
											
										
																			
											
												Portok kontra csomagok
											
										
																			
											
												A FreeBSD csomagkezelő, pkg
											
										
																			
											
												A pkg telepítése
											
										
																			
											
												A pkg beállítása
											
										
																			
											
												Csomagok keresése
											
										
																			
											
												Csomagok telepítése
											
										
																			
											
												Információk beszerzése a telepített csomagokról
											
										
																			
											
												Csomagok eltávolítása
											
										
																			
											
												Csomagok lezárása
											
										
																			
											
												Csomagtárak
											
										
																			
											
												Pkg alparancsok példája
											
										
																			
											
												Fontos fájlok és könyvtárak
											
										
																			
											
												Összegzés
											
										
																	
												
Bevezetés
A FreeBSD egy nyílt forráskódú Unix-szerű operációs rendszer, amelyet modern szerverek, asztali számítógépek és beágyazott platformok működtetésére használnak. Az olyan óriások, mint a Netflix, a Yahoo!, a WhatsApp, a BBC és a Sony, valamilyen formában használják a FreeBSD-t. A FreeBSD rendszer nem olyan széles körben ismert, mint a Linux, főként azért, mert a Linux sok éven át az asztalra összpontosít, és a FreeBSD projekt inkább szerver alapú.
Ebben az útmutatóban megismerheti a FreeBSD 12 csomagkezelését.
Portok kontra csomagok
A FreeBSD-n kétféle módon telepíthetünk kiegészítő szoftvereket: a Portgyűjtemény vagy a Portok segítségével , illetve előre konfigurált csomagok segítségével a szoftverek telepítéséhez és kezeléséhez.
A Ports egy rendszer további szoftverek készítésére a FreeBSD-n. A Ports segítségével a szoftvergyártó által biztosított nyers forráskóddal kezdi, és pontosan úgy építi fel a szoftvert, ahogyan szüksége van rá, és szükség szerint engedélyezi és letiltja a funkciókat.
A csomagok előre összeállított szoftverek, és a portok felépítésének eredményeként jönnek létre, a portok karbantartója szerint a legkülönfélébb emberek számára leghasznosabb lehetőségek felhasználásával, és egy csomagba csomagolva, hogy könnyen telepíthetőek legyenek. A csomagok segítségével gyorsan telepíthet, eltávolíthat és frissíthet kiegészítő szoftvereket. A FreeBSD csomagolórendszerét package , vagy pkg. A csomaginformációkat egy SQLite adatbázis tárolja, amelyből lekérdezheti a csomagadatokat.
Egy másik fontos dolog a FreeBSD csomagkezeléssel kapcsolatban a bináris csomagok helye. Csomagok telepítéséhez binárisok /usr/local, és a legtöbb konfigurációs fájl végén a /usr/local/etchelyett /etc. Ha a Linux világból érkezel, ezt nagyon szokatlannak találhatod.
A FreeBSD csomagkezelő, pkg
A hagyományos FreeBSD csomagkezelő eszközök következő generációja a pkg. A bináris csomagok kezelését gyorsabbá és egyszerűbbé tevő számos szolgáltatás pkga legegyszerűbb módja olyan szoftverek telepítésének, amelyek még nem szerepelnek a FreeBSD alaprendszerében. Ez egyetlen program sok alparancsot tartalmaz, amelyet szinte minden csomaggal kapcsolatos művelethez használni fog, például csomagok telepítéséhez, eltávolításához és vizsgálatához. Minden csomagműveletet és -módosítást -ként rootvagy ezen keresztül kell futtatni sudo.
Így telepítheti a curlcsomagot FreeBSD-re:
pkg install curl
Megadhatja a parancsot, -yhogy elkerülje a Proceed with this action? [y/N]:kérdést a szoftver telepítésekor, vagy beállíthatja, pkghogy mindig feltételezze -ya konfigurációs fájlban.
A csomag eltávolításához használja a következőket delete:
pkg delete curl
Amint látja, nagyon egyszerű és intuitív.
Használja pkg helpa rendelkezésre álló alparancsok gyors áttekintésére, vagy pkg help <subcommand>egy adott alparancs kézi oldalának megjelenítésére:
pkg help
pkg help install
pkg help delete
Telepítés pkg
A FreeBSD törzsverziója nem pkgtelepített csomagkezelővel érkezik. Amikor először próbál meg valamilyen csomagot telepíteni, a rendszer pkgfelszólítja a csomagkezelő eszköz telepítésére. Tegyük fel például, hogy a friss FreeBSD-re telepíteni kívánt első csomag a wget, és a következő prompt fog megjelenni a terminálon:
The package management tool is not yet installed on your system.
Do you want to fetch and install it now? [y/N]: y
Megnyomja a Yés gombot, ENTERés elindul a csomagkezelő eszköz telepítése. Miután a helyére került, a telepíteni kívánt kezdeti szoftvercsomag ( wget) települ.
A csomagolórendszert önállóan, más csomagok hozzáadása nélkül is telepítheti a pkg bootstrap. Ezenkívül pkgtudja, hogyan telepítheti és frissítheti magát és más csomagokat.
MEGJEGYZÉS: A  Vultr példányok pkgalapértelmezés szerint telepítve vannak , így nem kell telepítenie.
Konfigurálás pkg
A pkgprogramot rendkívül rugalmasra tervezték, minden alparancsnak számos opciója van. Testreszabott, de konzisztens viselkedést állíthat be a legtöbb programhoz a rendszerszintű konfigurációs fájllal pkg, amely a következő helyen található: /usr/local/etc/pkg.conf.
A fájl megjegyzésekkel ellátott alapértelmezéseket tartalmaz a következőhöz: pkg. Ha elolvassa ezt a fájlt, sok mindent megtudhat a pkgviselkedéséről. A konfiguráció univerzális konfigurációs nyelven (UCL) készült, és rengeteg megjegyzéssel ellátott konfigurációs lehetőség és jónéhány álnév található. A változók beállíthatók egész számra, karakterláncra vagy logikai értékre:
#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;
. . .
Megadhat álneveket az pkgalparancsokhoz a -ban pkg.conf. A lap alján pkg.conftalál egy szakaszt a felirattal ALIAS. Ha azon kapja magát, hogy ismételten összetett parancsokat futtat, álneveket kell hozzáadnia.
A fájlformátummal és a beállításokkal kapcsolatos további információkért tekintse meg a pkg.conf(5)man oldalt:
man pkg.conf
Csomagok keresése
Most, hogy telepítve van a csomagkezelő, telepítheti a csomagokat. Ha Ön sys-admin, ismeri azt a tényt, hogy a különböző operációs rendszerek különböző neveket rendelnek ugyanazon szoftver csomagolt verzióihoz. A FreeBSD-n futó Apache webszerverhez készült csomag például teljesen más nevet kap, mint a csomagolt Apache a különböző Linux disztribúciókon. Tehát mielőtt bármit is telepíthetne, ki kell találnia, hogy mi a telepíteni kívánt csomag neve.
A FreeBSD Project több csomagkészletet kínál nyilvános adattárban, és ezek néhány naponta frissülnek. Jelenleg több mint 25 000 csomag van.  
Például próbáljunk meg rákeresni az Apache webszerverre:
pkg search apache
# apache24-2.4.38                Version 2.4.x of Apache web server
Megtalálja az összes olyan csomagot, amelyeknek apachea neve szerepel. Ez egy hosszú listát ad vissza, de amit keres, az a apache24csomag. Minden csomagról van egy rövid leírás. Ez segíteni fog a telepítendő csomag eldöntésében, de ez nem mindig egyszerű.
Egyes keresések több száz találatot eredményezhetnek. Különféle parancssori beállításokat kell használnia a keresési eredmények vágásához vagy módosításához. A gyakori keresési lehetőségekről a kézikönyv pkg-searchvagy a súgóoldalon pkg help searchtájékozódhat.
Ha nem biztos abban, hogy egy csomag valóban az, amit szeretne, a következő paranccsal megkeresheti a csomag részleteit:
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"
# . . .
# . . .
Ez a parancs sok hasznos információt ad a csomagról.
Csomagok telepítése
A szoftver telepítéséhez használja az installalparancsot és a telepítendő csomag nevét:
pkg install apache24
Amikor csomagokat telepít a -val pkg install, pkgakkor megkeresi a helyi csomagkatalógust, majd letölti a kért csomagot a címen található lerakatból pkg.FreeBSD.org. A csomag telepítése után regisztrálásra kerül egy SQLite adatbázisban, amelyet a -ban tárolnak /var/db/pkg/local.sqlite. Ügyeljen arra, hogy ne törölje ezt a fájlt, különben a rendszer elveszíti nyomon követését, hogy mely csomagok lettek telepítve. Ha a szoftvernek vannak függőségei, pkgkitalálja azokat, és az alapcsomaggal együtt telepíti őket. A függőségként telepített csomagokat automatikus csomagoknak nevezzük .
A csomagkezelő képes csomagokat egyszerűen letölteni az interneten keresztül, és elmenteni egy helyre a lemezen. Ez lehetővé teszi, hogy máskor is telepítse őket. A pkg fetchparanccsal letöltheti a csomagot telepítés nélkül:
pkg fetch nginx
Ez a parancs csak az Nginxet fogja letölteni, annak függőségei nélkül. A -dzászló segítségével megragadhatja az összes függőséget, valamint a megnevezett csomagot:
pkg fetch -d nginx
A csomagok letöltődnek a csomag-gyorsítótár könyvtárába /var/cache/pkg. Miután lekérte a csomagokat, pkghozzáadja őket ebbe a könyvtárba. Felsorolhatja a fájlokat, hogy megnézze, mit tartalmaz:
ls /var/cache/pkg
Most, hogy a letöltött csomagot lekérés után telepítse, futtassa a pkg installszokásos módon. A telepítési folyamat a letöltöttek helyett a gyorsítótárazott fájlokat használja.
Idővel a csomag-gyorsítótár könyvtára nagyra nőhet. A pkg cleanparancs eltávolítja a gyorsítótárazott csomagokat, amelyeket újabb verziókra cseréltek, valamint minden olyan csomagfájlt, amely már nincs a tárban:
pkg clean
Ha el szeretné távolítani az összes gyorsítótárazott csomagot, használja a -ajelzőt:
pkg clean -a
Ha azt szeretnénk, hogy tisztítsa meg a csomagot cache után automatikusan minden csomag telepítéséhez vagy frissítéséhez állítsa a pkg.confbeállítást AUTOCLEAN, hogy true.
Ha elfelejti, hogy mely csomagokat telepítette egy rendszerre, akkor pkg infoa telepített szoftverek teljes listáját lekérheti:
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
# . . .
# . . .
Ha további információra van szüksége egy telepített csomagról, használja a pkg infoés a csomag nevét. Ez egy emberbarát jelentésben mutatja a csomag telepítési részleteit:
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 lockCsomag zárolásához használja :
pkg lock openssl
Ez a opensslcsomag most zárolva van.
A rendszer összes jelenleg zárolt csomagjának listázásához használja a -lzászlót:
pkg lock -l
A zár eltávolításához használja a következő pkg unlockparancsot:
pkg unlock openssl
A rendszer összes csomagjának egyidejű zárolásához vagy feloldásához használja a -ajelzőt:
pkg lock -a
pkg unlock -a
Csomagtárak
A csomagtárolókat támogatja pkg, amelyek a csomagok gyűjteményei. Adattárakat hozzáadhat, eltávolíthat, engedélyezhet és letilthat. Minden adattárat a saját fájljában kell konfigurálnia UCL formátum használatával. A hivatalos FreeBSD adattárak a /etc/pkgkönyvtárban találhatók. A FreeBSD a "FreeBSD" repo engedélyezve van. A konfigurációs fájlját itt találja /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
}
Szükség szerint hozzáadhat és eltávolíthat adattárakat. Mivel /etc/pkga hivatalos FreeBSD-tárolók számára fenntartva, szükséged lesz egy másik könyvtárra. A hagyományos helyszín /usr/local/etc/pkg/repos. Ha másik könyvtárat szeretne használni, be kell állítania egy helyet pkg.confaz REPO_DIRSopcióval. A helyi lerakatkönyvtár alapértelmezés szerint nem létezik, ezért a következővel kell létrehoznia mkdir -p /usr/local/etc/pkg/repos. Helyezze el a saját lerakatkonfigurációit ebbe a könyvtárba.
Példa pkgalparancsokra
Ez a rész felsorol néhány leggyakrabban használt alparancsot, amelyeket valószínűleg a FreeBSD szerver adminisztrálásakor fog használni:
# 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
Fontos fájlok és könyvtárak
- A pkgkonfigurációs fájl -/usr/local/etc/pkg.conf
- Hivatalos FreeBSD tárolók számára fenntartott könyvtár - /etc/pkg
- FreeBSD tárolófájl - /etc/pkg/FreeBSD.conf
- Hagyományos hely az egyéni adattárak számára - /usr/local/etc/pkg/repos
- Csomag gyorsítótár könyvtára - /var/cache/pkg
- SQLite adatbázis - /var/db/pkg/local.sqlite
Összegzés
A FreeBSD két egymást kiegészítő technológiát biztosít harmadik féltől származó szoftverek telepítéséhez: a FreeBSD Portgyűjteményt a forrásból és a csomagokból történő telepítéshez, valamint az előre beépített binárisokból történő telepítéshez. Mivel a FreeBSD határozottabban az univerzális csomagkezelés felé tolja el a rendszert, próbálja pkgmeg a lehető legnagyobb mértékben kezelni a harmadik féltől származó szoftvereket . Kerülje a portok használatát, kivéve, ha a kívánt szoftvernek nincs csomagolt verziója, vagy ha testre kell szabnia a fordítási idő beállításait.