Uvod
Portovi u odnosu na pakete
Upravitelj paketa FreeBSD, pkg
Instalacija paketa
Konfiguriranje pkg
Pronalaženje paketa
Instaliranje paketa
Dobivanje informacija o instaliranim paketima
Uklanjanje paketa
Zaključavanje paketa
Spremišta paketa
Primjer pkg podnaredbi
Važne datoteke i direktorije
Sažetak
Uvod
FreeBSD je open source operativni sustav sličan Unixu koji se koristi za napajanje modernih poslužitelja, stolnih računala i ugrađenih platformi. Divovi kao što su Netflix, Yahoo!, WhatsApp, BBC i Sony koriste FreeBSD u nekom obliku. Sustav FreeBSD nije tako široko poznat kao Linux, uglavnom zato što se Linux dugi niz godina fokusirao na stolna računala, a FreeBSD projekt je bio više baziran na poslužitelju.
U ovom vodiču ćete naučiti o upravljanju paketima na FreeBSD 12.
Portovi u odnosu na pakete
Na FreeBSD-u imamo dva različita načina za instaliranje dodatnog softvera: preko zbirke portova ili portova i putem unaprijed konfiguriranih paketa za instalaciju i upravljanje softverom.
Portovi su sustav za izgradnju dodatnog softvera na FreeBSD-u. S Portovima počinjete s sirovim izvornim kodom koji vam daje dobavljač softvera i gradite softver na točno način na koji trebate, omogućavajući i onemogućujući značajke prema potrebi.
Paketi su unaprijed kompajlirani softver i rezultat su izgradnje portova, koristeći opcije za koje održavatelj porta smatra da će biti najkorisnije najširem broju ljudi i spajajući ih u paket kako bi se lako instalirali. Paketi vam omogućuju brzu instalaciju, deinstaliranje i nadogradnju dodatnog softvera. FreeBSD-ov sustav pakiranja naziva se paket ili pkg. Informacije o paketu pohranjuju se u SQLite bazi podataka koju možete pitati o podacima paketa.
Još jedna važna stvar kod upravljanja paketima FreeBSD je lokacija binarnih datoteka paketa. Paketi instaliraju binarne datoteke pod /usr/local, a većina konfiguracijskih datoteka završi u /usr/local/etcumjesto /etc. Ako dolazite iz svijeta Linuxa, ovo vam može biti vrlo neuobičajeno.
Upravitelj paketa FreeBSD, pkg
Sljedeća generacija zamjena za tradicionalne alate za upravljanje paketima FreeBSD je pkg. Nudeći mnoge značajke koje čine rad s binarnim paketima bržim i lakšim, pkgnajlakši je način za instaliranje softvera koji još nije uključen u osnovni sustav FreeBSD-a. To je jedan program s mnogo podnaredbi koje ćete koristiti za gotovo svaku operaciju na paketima kao što je instaliranje, uklanjanje i istraživanje paketa. Sve operacije i promjene paketa moraju se izvoditi kao rootili putem sudo.
Evo kako biste instalirali curlpaket na FreeBSD:
pkg install curl
Možete unijeti naredbu s -ykako biste izbjegli Proceed with this action? [y/N]:pitanje prilikom instaliranja softvera ili možete konfigurirati pkgda uvijek pretpostavlja -yu konfiguracijskoj datoteci.
Da biste uklonili paket, trebali biste upotrijebiti delete:
pkg delete curl
Kao što vidite, vrlo je jednostavan i intuitivan.
Koristite pkg helpza brzu referencu o dostupnim podnaredbama ili pkg help <subcommand>za prikaz stranice priručnika za određenu podnaredbu:
pkg help
pkg help install
pkg help delete
Instaliranje pkg
Standardna verzija FreeBSD-a ne dolazi s pkginstaliranim upraviteljem paketa. Kada prvi put pokušate instalirati neki paket, od pkgvas se traži da instalirate alat za upravljanje paketima. Na primjer, recimo da je prvi paket koji želite instalirati na vaš svježi FreeBSD wgeti vidjet ćete sljedeću prompt u svom terminalu:
The package management tool is not yet installed on your system.
Do you want to fetch and install it now? [y/N]: y
Pritisnite Yi ENTERi instalacija alata za upravljanje paketima će započeti. Nakon što bude postavljen, wgetbit će instaliran početni softverski paket koji ste željeli instalirati ( ).
Sustav pakiranja možete instalirati i samostalno, bez dodavanja drugih paketa, pokretanjem pkg bootstrap. Osim toga, pkgzna instalirati i ažurirati sebe i druge pakete.
NAPOMENA: Vultr instance su pkginstalirane prema zadanim postavkama, tako da ga ne morate instalirati.
Konfiguriranje pkg
pkgProgram je osmišljen kako bi se vrlo fleksibilan, uz svaki subcommand ima mnogo opcija. Možete uspostaviti prilagođeno, ali dosljedno ponašanje za većinu programa pomoću konfiguracijske datoteke za cijeli sustav za pkg, koja se nalazi u /usr/local/etc/pkg.conf.
Datoteka sadrži komentirane zadane postavke za pkg. Čitanjem te datoteke možete naučiti puno o tome kako se pkgponaša. Konfiguracija je napisana u univerzalnom konfiguracijskom jeziku (UCL) i postoji mnogo komentiranih opcija konfiguracije i dosta aliasa. Varijable se mogu postaviti na cijeli broj, niz ili Booleovu vrijednost:
#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;
. . .
Možete definirati aliase za pkgpodnaredbe u pkg.conf. Na dnu pkg.conf, naći ćete odjeljak s oznakom ALIAS. Kada zateknete da neprestano izvodite složene naredbe, trebali biste dodati pseudonime.
Za više informacija o formatu datoteke i opcijama, možete pogledati pkg.conf(5)man stranicu:
man pkg.conf
Pronalaženje paketa
Sada kada imate instaliran upravitelj paketa, možete instalirati pakete. Ako ste sys-admin, upoznati ste s činjenicom da različiti operativni sustavi daju različita imena pakiranim verzijama istog softvera. Paket za Apache web poslužitelj na FreeBSD-u, na primjer, imat će potpuno drugačiji naziv od pakiranog Apachea na različitim distribucijama Linuxa. Dakle, prije nego što možete bilo što instalirati, morat ćete shvatiti kako se zove paket koji želite instalirati.
FreeBSD Project nudi nekoliko skupova paketa u javnom repozitoriju, a oni se ažuriraju svakih nekoliko dana. Trenutno ima preko 25.000 paketa.
Na primjer, pokušajmo potražiti Apache web poslužitelj:
pkg search apache
# apache24-2.4.38 Version 2.4.x of Apache web server
Pronaći će sve pakete s apachenjihovim nazivima. Ovo će vratiti dugačak popis, ali ono što tražite je apache24paket. Postoji kratak opis svakog paketa. Ovo bi vam trebalo pomoći pri odlučivanju koji paket instalirati, ali nije uvijek jednostavno.
Neka pretraživanja mogu generirati stotine rezultata. Morat ćete koristiti različite opcije naredbenog retka za obrezivanje ili podešavanje rezultata pretraživanja. Posjetite pkg-searchstranicu priručnika ili stranicu pomoći pkg help searchkako biste saznali više o uobičajenim opcijama pretraživanja.
Ako niste sigurni je li paket ono što zaista želite, možete upotrijebiti sljedeću naredbu za traženje pojedinosti o paketu:
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"
# . . .
# . . .
Ova naredba će vam dati puno korisnih informacija o paketu.
Instaliranje paketa
Za instaliranje softvera upotrijebite installpodnaredbu i naziv paketa za instalaciju:
pkg install apache24
Kada instalirate pakete s pkg install, pkgpregledajte lokalni katalog paketa, a zatim preuzimate traženi paket iz spremišta na pkg.FreeBSD.org. Nakon što je paket instaliran, registriran je u SQLite bazi podataka koja se čuva u /var/db/pkg/local.sqlite. Pazite da ne izbrišete ovu datoteku, inače će vaš sustav izgubiti trag o tome koji su paketi instalirani. Ako softver ima ovisnosti, pkgshvatit će ih i instalirati zajedno s osnovnim paketom. Paketi instalirani kao ovisnosti nazivaju se automatskim paketima.
Upravitelj paketa ima mogućnost samo preuzimanja paketa putem interneta i spremanja na jedno mjesto na disku. To vam omogućuje da ih instalirate u neko drugo vrijeme. Možete koristiti pkg fetchnaredbu za preuzimanje paketa bez njegove instalacije:
pkg fetch nginx
Ova naredba će dohvatiti samo Nginx bez njegovih ovisnosti. Možete koristiti -dzastavu da zgrabite sve ovisnosti kao i imenovani paket:
pkg fetch -d nginx
Paketi se preuzimaju u direktorij predmemorije paketa /var/cache/pkg. Nakon što ste dohvatili pakete, pkgdodat će ih u ovaj direktorij. Možete navesti datoteke da vidite što sadrži:
ls /var/cache/pkg
Sada, da biste instalirali preuzeti paket nakon dohvaćanja, pokrenite pkg installnormalno. Proces instalacije koristi datoteke u predmemoriji, a ne preuzete.
S vremenom, direktorij predmemorije paketa može narasti. pkg cleanNaredba uklanja sve spremljene pakete koji su zamijenjeni novijim verzijama, kao i bilo koji paket datoteke koje više nisu u repozitoriju:
pkg clean
Ako želite ukloniti sve predmemorirane pakete, upotrijebite -azastavicu:
pkg clean -a
Ako želite automatski očistiti predmemoriju paketa nakon svake instalacije ili nadogradnje paketa, postavite pkg.confopciju AUTOCLEANna true.
Ako zaboravite koje ste pakete instalirali na sustav, možete upotrijebiti pkg infoda dobijete potpuni popis instaliranog softvera:
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
# . . .
# . . .
Ako želite više informacija o instaliranom paketu, koristite pkg infoi naziv paketa. Ovo prikazuje pojedinosti o instalaciji paketa u izvješću prilagođenom ljudima:
pkg info nginx
# nginx-1.14.2_3,2
# Name : nginx
# Version : 1.14.2_3,2
# . . .
# . . .
Možete vidjeti puno korisnih informacija kao što su verzija softvera, vrijeme instalacije softvera, softverska licenca, oznake vremena kompajliranja i još mnogo toga. Provjerite pkg-infoman stranicu za potpune detalje.
Uklanjanje paketa
Za deinstaliranje binarnih paketa koristite pkg deletepodnaredbu. Također je dostupan kao pkg remove:
pkg delete nginx
# or
pkg remove nginx
Dobit ćete popis paketa koje treba ukloniti i koliko prostora će to osloboditi.
Ako uklonite paket o kojem ovise drugi paketi, pkguklanjaju se i ovisni paketi.
Zaključavanje paketa
Može doći vrijeme kada želite da se paket na vašem poslužitelju nikada ne nadogradi. Kada zaključate paket, pkgnećete ga nadograditi, vratiti, deinstalirati ili ponovno instalirati. Primjenjuje ista pravila na ovisnosti paketa i programe o kojima ovisi.
Koristite pkg lockza zaključavanje paketa:
pkg lock openssl
Ovaj opensslpaket je sada zaključan.
Za popis svih trenutno zaključanih paketa na sustavu koristite -lzastavicu:
pkg lock -l
Za uklanjanje zaključavanja koristite pkg unlocknaredbu:
pkg unlock openssl
Za zaključavanje ili otključavanje svih paketa na sustavu odjednom, koristite -azastavicu:
pkg lock -a
pkg unlock -a
Spremišta paketa
Repozitorija paketa podržava pkg, koji su imenovane zbirke paketa. Možete dodati, ukloniti, omogućiti i onemogućiti spremišta. Trebali biste konfigurirati svako spremište u vlastitoj datoteci koristeći UCL format. Službena FreeBSD spremišta pripadaju /etc/pkgdirektoriju. FreeBSD se isporučuje s omogućenim repo "FreeBSD". Naći ćete njegovu konfiguracijsku datoteku u /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
}
Po potrebi možete dodavati i uklanjati spremišta. Kao što /etc/pkgje rezervirano za službena FreeBSD spremišta, trebat će vam još jedan direktorij. Tradicionalna lokacija je /usr/local/etc/pkg/repos. Ako želite koristiti drugi imenik, morat ćete postaviti lokaciju pkg.confs REPO_DIRSopcijom. Direktorij lokalnog spremišta ne postoji prema zadanim postavkama, pa ćete ga morati stvoriti s mkdir -p /usr/local/etc/pkg/repos. Stavite svoje vlastite konfiguracije spremišta u taj direktorij.
Primjeri pkgpodnaredbi
Ovaj odjeljak će navesti neke od najčešće korištenih podnaredbi koje ćete najvjerojatnije koristiti kada administrirate FreeBSD poslužitelj:
# 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
Važne datoteke i direktorije
pkgKonfiguracijska datoteka -/usr/local/etc/pkg.conf
- Direktorij rezerviran za službena FreeBSD spremišta -
/etc/pkg
- FreeBSD datoteka spremišta -
/etc/pkg/FreeBSD.conf
- Tradicionalna lokacija za prilagođena spremišta -
/usr/local/etc/pkg/repos
- Direktorij predmemorije paketa -
/var/cache/pkg
- SQLite baza podataka -
/var/db/pkg/local.sqlite
Sažetak
FreeBSD pruža dvije komplementarne tehnologije za instaliranje softvera treće strane: FreeBSD Ports Collection, za instalaciju iz izvora i paketa, za instalaciju iz unaprijed izgrađenih binarnih datoteka. Kako FreeBSD odlučnije usmjerava sustav prema univerzalnom upravljanju paketima, pokušajte upravljati softverom trećih strana pkgu najvećoj mogućoj mjeri. Izbjegavajte korištenje portova osim ako softver koji želite nema pakiranu verziju ili ako trebate prilagoditi opcije vremena prevođenja.