Hur man använder Pkg Package Manager på FreeBSD 12

Introduktion

FreeBSD är ett Unix-liknande operativsystem med öppen källkod som används för att driva moderna servrar, stationära datorer och inbäddade plattformar. Jättar som Netflix, Yahoo!, WhatsApp, BBC och Sony använder FreeBSD i någon form. FreeBSD-systemet är inte så allmänt känt som Linux, till stor del för att Linux i många år har fokuserat på skrivbordet och FreeBSD-projektet har tenderat att vara mer serverbaserat.

I den här guiden kommer du att lära dig om pakethantering på FreeBSD 12.

Portar kontra paket

På FreeBSD har vi två olika sätt att installera tilläggsprogramvara: via Ports Collection , eller Ports , och via förkonfigurerade paket för att installera och hantera programvara.

Ports är ett system för att bygga ytterligare programvara på FreeBSD. Med Ports börjar du med den råa källkoden som tillhandahålls av programvaruleverantören och bygger programvaran på precis det sätt du behöver, aktiverar och inaktiverar funktioner som du behöver.

Paket är förkompilerad programvara, och de är resultatet av att bygga portar, använda de alternativ som porthållaren tror kommer att vara mest användbara för de flesta människor och bunta ihop dem i ett paket för att göra dem lätta att installera. Med paket kan du snabbt installera, avinstallera och uppgradera tilläggsprogramvara. FreeBSD:s paketeringssystem kallas package , eller pkg. Paketinformation lagras i en SQLite-databas som du kan fråga om paketdata.

En annan viktig sak med FreeBSD-pakethantering är placeringen av paketbinärer. Paket installerar binärer under /usr/local, och de flesta konfigurationsfiler hamnar i /usr/local/etcsnarare än /etc. Om du kommer från Linux-världen kan du tycka att detta är mycket ovanligt.

FreeBSD-pakethanteraren, pkg

Nästa generations ersättning för de traditionella FreeBSD-pakethanteringsverktygen är pkg. Att erbjuda många funktioner som gör hanteringen av binära paket snabbare och enklare, pkgär det enklaste sättet att installera programvara som inte redan är inkluderad i FreeBSDs bassystem. Det är ett enda program med många underkommandon som du kommer att använda för nästan varje operation på paket som att installera, ta bort och undersöka paket. Alla paketoperationer och ändringar måste köras som rooteller via sudo.

Så här installerar du curlpaketet på FreeBSD:

pkg install curl

Du kan mata kommandot med för -yatt undvika Proceed with this action? [y/N]:frågan när du installerar programvara eller så kan du konfigurera pkgatt alltid anta -yi en konfigurationsfil.

För att ta bort paketet använder du delete:

pkg delete curl

Som du kan se är det väldigt enkelt och intuitivt.

Använd pkg helpför en snabbreferens om tillgängliga underkommandon eller för pkg help <subcommand>att visa manualsidan för ett visst underkommando:

pkg help
pkg help install
pkg help delete

Installerar pkg

Lagerversionen av FreeBSD levereras inte med pkgpakethanteraren installerad. Första gången du försöker installera något paket pkguppmanas du att installera pakethanteringsverktyget. Låt oss till exempel säga att det första paketet du vill installera på din nya FreeBSD är wget, och du kommer att se följande prompt i din terminal:

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

Du kommer att trycka Yoch ENTERoch installationen av pakethanteringsverktyget startar. När det är på plats kommer det ursprungliga programpaketet som du ville installera ( wget) att installeras.

Du kan också installera paketeringssystemet på egen hand, utan att lägga till andra paket, genom att köra pkg bootstrap. Dessutom pkgvet hur man installerar och uppdaterar sig själv och andra paket.

OBS: Vultr-instanser har pkginstallerats som standard, så du behöver inte installera det.

Konfigurerar pkg

Det pkgProgrammet är utformat för att vara mycket flexibel, där varje underkommando har många alternativ. Du kan skapa anpassat men konsekvent beteende för de flesta program med den systemomfattande konfigurationsfilen för pkg, som finns i /usr/local/etc/pkg.conf.

Filen innehåller kommenterade standardinställningar för pkg. Bara genom att läsa den filen kan du lära dig mycket om hur det pkgbeter sig. Konfigurationen är skriven i universal configuration language (UCL) och det finns gott om kommenterade konfigurationsalternativ och en hel del alias. Variabler kan ställas in till ett heltal, en sträng eller ett booleskt värde:

#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;
. . .

Du kan definiera alias för pkgunderkommandon i pkg.conf. Längst ner på pkg.confhittar du en sektion märkt ALIAS. När du kommer på att du upprepade gånger kör komplexa kommandon bör du lägga till alias.

För mer information om filformatet och alternativen kan du se pkg.conf(5)man-sidan:

man pkg.conf

Hitta paket

Nu när du har en pakethanterare installerad kan du installera paket. Om du är en sys-admin är du bekant med det faktum att olika operativsystem tilldelar olika namn till paketerade versioner av samma programvara. Ett paket för Apache webbserver på FreeBSD, till exempel, kommer att ha ett helt annat namn än den paketerade Apache på olika Linux-distributioner. Så innan du kan installera något måste du ta reda på vad paketet du vill installera heter.

FreeBSD-projektet erbjuder flera uppsättningar paket i ett offentligt arkiv, och de uppdateras med några dagars mellanrum. Det finns för närvarande över 25 000 paket.

Låt oss till exempel försöka söka efter Apache webbserver:

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

Den kommer att hitta alla paket med apachei deras namn. Detta kommer att returnera en lång lista, men det du letar efter är apache24paketet. Det finns en kort beskrivning av varje paket. Detta borde hjälpa dig när du bestämmer dig för vilket paket du ska installera, men det är inte alltid enkelt.

Vissa sökningar kan generera hundratals resultat. Du måste använda olika kommandoradsalternativ för att trimma eller justera sökresultaten. Konsultera pkg-searchman-sidan eller hjälpsidan för pkg help searchatt lära dig mer om vanliga sökalternativ.

Om du inte är säker på om ett paket är vad du verkligen vill ha kan du använda följande kommando för att leta upp detaljer om paketet:

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"
# . . .
# . . .

Detta kommando ger dig mycket användbar information om paketet.

Installerar paket

För att installera programvara, använd installunderkommandot och namnet på ett paket för att installera:

pkg install apache24

När du installerar paket med pkg install, pkgkonsulterar den lokala paketkatalogen och laddar sedan ned det begärda paketet från förvaret på pkg.FreeBSD.org. När paketet är installerat, registreras det i en SQLite-databas som förvaras i /var/db/pkg/local.sqlite. Var noga med att inte ta bort den här filen, annars kommer ditt system att förlora koll på vilka paket som har installerats. Om programvaran har beroenden, pkgkommer du att ta reda på dem och installera dem tillsammans med baspaketet. Paket installerade som beroenden kallas automatiska paket.

Pakethanteraren har möjlighet att bara ladda ner paket över internet och spara dem på en plats på disken. Detta gör att du kan installera dem vid ett annat tillfälle. Du kan använda pkg fetchkommandot för att ladda ner paketet utan att installera det:

pkg fetch nginx

Detta kommando hämtar bara Nginx utan dess beroenden. Du kan använda -dflaggan för att ta alla beroenden såväl som det namngivna paketet:

pkg fetch -d nginx

Paketen laddas ner till paketets cachekatalog /var/cache/pkg. När du har hämtat paket pkgkommer du att lägga till dem i den här katalogen. Du kan lista filer för att se vad den innehåller:

ls /var/cache/pkg

Nu, för att installera ett nedladdat paket efter en hämtning, kör pkg installnormalt. Installationsprocessen använder de cachade filerna snarare än de nedladdade.

Med tiden kan paketets cachekatalog växa sig stor. Det pkg cleankommando tar bort alla cachade paket som har ersatts av nyare versioner, samt eventuella paketfiler som inte längre i förvaret:

pkg clean

Om du vill ta bort alla cachade paket, använd -aflaggan:

pkg clean -a

Om du vill rensa paketcachen automatiskt efter varje paketinstallation eller uppgradering, ställ in pkg.confalternativet AUTOCLEANtrue.

Få information om installerade paket

Om du glömmer vilka paket du har installerat på ett system kan du använda för pkg infoatt få en komplett lista över installerad programvara:

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
# . . .
# . . .

Om du vill ha mer information om ett installerat paket, använd pkg infooch paketnamnet. Detta visar paketinstallationsdetaljerna i en människovänlig rapport:

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

Du kan se mycket användbar information som versionen av programvaran, tidpunkten för programvaruinstallation, mjukvarulicens, kompileringstidsflaggor och mer. Kontrollera pkg-infoman-sidan för fullständig information.

Ta bort paket

Använd pkg deleteunderkommandot för att avinstallera binära paket . Den finns även som pkg remove:

pkg delete nginx
# or
pkg remove nginx

Du kommer att få en lista över paket som ska tas bort och hur mycket utrymme detta kommer att frigöra.

Om du tar bort ett paket som andra paket är beroende av, pkgtas de beroende paketen också bort.

Låsa paket

Det kan finnas en tid då du vill att ett paket på din server aldrig ska uppgradera. När du låser ett paket pkgkommer du inte att uppgradera, nedgradera, avinstallera eller installera om det. Den tillämpar samma regler för paketets beroenden och de program det beror på.

Använd för pkg lockatt låsa ett paket:

pkg lock openssl

Detta opensslpaket är nu låst.

För att lista alla för närvarande låsta paket på systemet, använd -lflaggan:

pkg lock -l

För att ta bort låset använd pkg unlockkommandot:

pkg unlock openssl

För att låsa eller låsa upp alla paket på systemet samtidigt, använd -aflaggan:

pkg lock -a
pkg unlock -a

Paketförråd

Paketförråd stöds av pkg, som kallas samlingar av paket. Du kan lägga till, ta bort, aktivera och inaktivera förråd. Du bör konfigurera varje arkiv i sin egen fil med UCL-format. Officiella FreeBSD-förråd hör hemma i /etc/pkgkatalogen. FreeBSD skickas med repet "FreeBSD" aktiverat. Du hittar dess konfigurationsfil i /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
}

Du kan lägga till och ta bort arkiv efter behov. Eftersom det /etc/pkgär reserverat för officiella FreeBSD-förråd, behöver du en annan katalog. Den traditionella platsen är /usr/local/etc/pkg/repos. Om du vill använda en annan katalog måste du ange en plats pkg.confmed REPO_DIRSalternativet. Den lokala arkivkatalogen finns inte som standard, så du måste skapa den med mkdir -p /usr/local/etc/pkg/repos. Lägg in dina egna förvarskonfigurationer i den katalogen.

Exempel på pkgunderkommandon

Det här avsnittet kommer att lista några av de mest använda underkommandona som du med största sannolikhet kommer att använda när du administrerar en FreeBSD-server:

# 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

Viktiga filer och kataloger

  • Den pkgkonfigurationsfilen -/usr/local/etc/pkg.conf
  • Katalog reserverad för officiella FreeBSD-förråd - /etc/pkg
  • FreeBSD arkivfil - /etc/pkg/FreeBSD.conf
  • Traditionell plats för anpassade förråd - /usr/local/etc/pkg/repos
  • Paketcachekatalog - /var/cache/pkg
  • SQLite databas - /var/db/pkg/local.sqlite

Sammanfattning

FreeBSD tillhandahåller två kompletterande teknologier för att installera programvara från tredje part: FreeBSD Ports Collection, för installation från källkod och paket, för installation från förbyggda binärer. Eftersom FreeBSD flyttar systemet mer beslutsamt mot universell pakethantering, försök att hantera programvara från tredje part med så pkglångt det är möjligt. Undvik att använda portar om inte programvaran du vill ha någon paketerad version eller om du behöver anpassa kompileringsalternativen.


Hur man installerar Tiny Tiny RSS Reader på en FreeBSD 11 FAMP VPS

Hur man installerar Tiny Tiny RSS Reader på en FreeBSD 11 FAMP VPS

Använder du ett annat system? Tiny Tiny RSS Reader är en gratis och öppen källkod, webbaserat nyhetsflöde (RSS/Atom) läsare och aggregator, utformad för att

Hur man installerar Wiki.js på FreeBSD 11

Hur man installerar Wiki.js på FreeBSD 11

Använder du ett annat system? Wiki.js är en gratis och öppen källkod, modern wiki-app byggd på Node.js, MongoDB, Git och Markdown. Wiki.js källkod är offentlig

Hur man installerar Pagekit 1.0 CMS på en FreeBSD 11 FAMP VPS

Hur man installerar Pagekit 1.0 CMS på en FreeBSD 11 FAMP VPS

Använder du ett annat system? Pagekit 1.0 CMS är ett vackert, modulärt, utbyggbart och lätt, gratis och öppen källkod Content Management System (CMS) med

Hur man installerar MODX Revolution på en FreeBSD 11 FAMP VPS

Hur man installerar MODX Revolution på en FreeBSD 11 FAMP VPS

Använder du ett annat system? MODX Revolution är ett snabbt, flexibelt, skalbart, öppen källkod, Enterprise-grade Content Management System (CMS) skrivet i PHP. Det jag

Installera OpenBSD 5.5 64-bitars

Installera OpenBSD 5.5 64-bitars

Den här artikeln leder dig genom att ställa in OpenBSD 5.5 (64-bitars) på KVM med en Vultr VPS. Steg 1. Logga in på Vultr kontrollpanelen. Steg 2. Klicka på DEPLOY

Hur man installerar osTicket på FreeBSD 12

Hur man installerar osTicket på FreeBSD 12

Använder du ett annat system? osTicket är ett biljettsystem för kundsupport med öppen källkod. osTicket källkod är offentligt värd på Github. I denna handledning

Hur man installerar Flarum Forum på FreeBSD 12

Hur man installerar Flarum Forum på FreeBSD 12

Använder du ett annat system? Flarum är en gratis och öppen källkod nästa generations forummjukvara som gör diskussioner online roliga. Flarum källkod är värd o

Hur man aktiverar TLS 1.3 i Nginx på FreeBSD 12

Hur man aktiverar TLS 1.3 i Nginx på FreeBSD 12

Använder du ett annat system? TLS 1.3 är en version av TLS-protokollet (Transport Layer Security) som publicerades 2018 som en föreslagen standard i RFC 8446

Installera WordPress på OpenBSD 6.2

Installera WordPress på OpenBSD 6.2

Inledning WordPress är det dominerande innehållshanteringssystemet på internet. Det driver allt från bloggar till komplexa webbplatser med dynamiskt innehåll

Hur man installerar Subrion 4.1 CMS på en FreeBSD 11 FAMP VPS

Hur man installerar Subrion 4.1 CMS på en FreeBSD 11 FAMP VPS

Använder du ett annat system? Subrion 4.1 CMS är ett kraftfullt och flexibelt innehållshanteringssystem (CMS) med öppen källkod som ger ett intuitivt och tydligt innehåll

Hur man konfigurerar DJBDNS på FreeBSD

Hur man konfigurerar DJBDNS på FreeBSD

Denna handledning visar dig hur du konfigurerar en DNS-tjänst som är lätt att underhålla, lätt att konfigurera och som i allmänhet är säkrare än den klassiska BIN

Hur man installerar Nginx, MySQL och PHP (FEMP) Stack på FreeBSD 12.0

Hur man installerar Nginx, MySQL och PHP (FEMP) Stack på FreeBSD 12.0

En FEMP-stack, som är jämförbar med en LEMP-stack på Linux, är en samling programvara med öppen källkod som vanligtvis installeras tillsammans för att möjliggöra en FreeBS

Installerar MongoDB på FreeBSD 10

Installerar MongoDB på FreeBSD 10

MongoDB är en NoSQL-databas i världsklass som ofta används i nyare webbapplikationer. Det ger högpresterande frågor, skärning och replikering

Hur man installerar Monica på FreeBSD 12

Hur man installerar Monica på FreeBSD 12

Använder du ett annat system? Monica är ett personligt relationshanteringssystem med öppen källkod. Se det som ett CRM (ett populärt verktyg som används av säljteam i th

OpenBSD som en e-handelslösning med PrestaShop och Apache

OpenBSD som en e-handelslösning med PrestaShop och Apache

Introduktion Denna handledning visar OpenBSD som en e-handelslösning som använder PrestaShop och Apache. Apache krävs eftersom PrestaShop har komplex UR

Installera Fork CMS på FreeBSD 12

Installera Fork CMS på FreeBSD 12

Använder du ett annat system? Fork är ett CMS med öppen källkod skrivet i PHP. Forks källkod finns på GitHub. Den här guiden visar hur du installerar Fork CM

Hur man installerar Directus 6.4 CMS på en FreeBSD 11 FAMP VPS

Hur man installerar Directus 6.4 CMS på en FreeBSD 11 FAMP VPS

Använder du ett annat system? Directus 6.4 CMS är ett kraftfullt och flexibelt, gratis och öppen källkod Headless Content Management System (CMS) som tillhandahåller utvecklare

Förbättra säkerheten för FreeBSD med hjälp av IPFW och SSHGuard

Förbättra säkerheten för FreeBSD med hjälp av IPFW och SSHGuard

VPS-servrar riktas ofta mot inkräktare. En vanlig typ av attack dyker upp i systemloggar som hundratals obehöriga ssh-inloggningsförsök. Installation

Ställ in httpd i OpenBSD

Ställ in httpd i OpenBSD

Inledning OpenBSD 5.6 introducerade en ny demon som heter httpd, som stöder CGI (via FastCGI) och TLS. Inget ytterligare arbete behövs för att installera den nya http

Ställ in iRedMail på FreeBSD 10

Ställ in iRedMail på FreeBSD 10

Denna handledning kommer att visa dig hur du installerar groupware iRedMail på en ny installation av FreeBSD 10. Du bör använda en server med minst en gigabyte o

The Rise of Machines: Real World Applications of AI

The Rise of Machines: Real World Applications of AI

Artificiell intelligens är inte i framtiden, det är här i nuet I den här bloggen Läs hur Artificiell intelligens-applikationer har påverkat olika sektorer.

DDOS-attacker: En kort översikt

DDOS-attacker: En kort översikt

Är du också ett offer för DDOS-attacker och förvirrad över de förebyggande metoderna? Läs den här artikeln för att lösa dina frågor.

Har du någonsin undrat hur hackare tjänar pengar?

Har du någonsin undrat hur hackare tjänar pengar?

Du kanske har hört att hackare tjänar mycket pengar, men har du någonsin undrat hur de tjänar den typen av pengar? låt oss diskutera.

Revolutionerande uppfinningar från Google som gör ditt liv lätt.

Revolutionerande uppfinningar från Google som gör ditt liv lätt.

Vill du se revolutionerande uppfinningar av Google och hur dessa uppfinningar förändrade livet för varje människa idag? Läs sedan till bloggen för att se uppfinningar av Google.

Fredag ​​Essential: Vad hände med AI-drivna bilar?

Fredag ​​Essential: Vad hände med AI-drivna bilar?

Konceptet med att självkörande bilar ska ut på vägarna med hjälp av artificiell intelligens är en dröm vi har ett tag nu. Men trots flera löften finns de ingenstans att se. Läs den här bloggen för att lära dig mer...

Technological Singularity: A Distant Future of Human Civilization?

Technological Singularity: A Distant Future of Human Civilization?

När vetenskapen utvecklas i snabb takt och tar över en hel del av våra ansträngningar, ökar också riskerna för att utsätta oss för en oförklarlig singularitet. Läs, vad singularitet kan betyda för oss.

Utveckling av datalagring – Infographic

Utveckling av datalagring – Infographic

Lagringsmetoderna för data har utvecklats kan vara sedan födelsen av data. Den här bloggen tar upp utvecklingen av datalagring på basis av en infografik.

Funktioner för Big Data Reference Architecture Layers

Funktioner för Big Data Reference Architecture Layers

Läs bloggen för att känna till olika lager i Big Data Architecture och deras funktionaliteter på enklaste sätt.

6 fantastiska fördelar med att ha smarta hemenheter i våra liv

6 fantastiska fördelar med att ha smarta hemenheter i våra liv

I denna digitala värld har smarta hemenheter blivit en avgörande del av livet. Här är några fantastiska fördelar med smarta hemenheter om hur de gör vårt liv värt att leva och enklare.

macOS Catalina 10.15.4 tilläggsuppdatering orsakar fler problem än att lösa

macOS Catalina 10.15.4 tilläggsuppdatering orsakar fler problem än att lösa

Nyligen släppte Apple macOS Catalina 10.15.4, en tilläggsuppdatering för att åtgärda problem, men det verkar som om uppdateringen orsakar fler problem som leder till att mac-datorer blir murade. Läs den här artikeln för att lära dig mer