Hvordan bruke Pkg Package Manager på FreeBSD 12

Introduksjon

FreeBSD er et åpen kildekode Unix-lignende operativsystem som brukes til å drive moderne servere, skrivebord og innebygde plattformer. Giganter som Netflix, Yahoo!, WhatsApp, BBC og Sony bruker FreeBSD i en eller annen form. FreeBSD-systemet er ikke så kjent som Linux, hovedsakelig fordi Linux i mange år har fokusert på skrivebordet og FreeBSD-prosjektet har hatt en tendens til å være mer serverbasert.

I denne veiledningen vil du lære om pakkehåndtering på FreeBSD 12.

Porter vs. pakker

På FreeBSD har vi to forskjellige måter å installere tilleggsprogramvare på: via Ports Collection , eller Ports , og via forhåndskonfigurerte pakker for å installere og administrere programvare.

Ports er et system for å bygge tilleggsprogramvare på FreeBSD. Med Ports starter du med den rå kildekoden levert av programvareleverandøren og bygger programvaren på akkurat den måten du trenger, aktiverer og deaktiverer funksjoner etter behov.

Pakker er forhåndskompilert programvare, og de er et resultat av å bygge porter, ved å bruke alternativene portvedlikeholderen tror vil være mest nyttige for det bredeste utvalget av mennesker og samle dem sammen i en pakke for å gjøre dem enkle å installere. Pakker lar deg raskt installere, avinstallere og oppgradere tilleggsprogramvare. FreeBSDs pakkesystem kalles pakke , eller pkg. Pakkeinformasjon blir lagret i en SQLite-database som du kan spørre om pakkedata.

En annen viktig ting med FreeBSD-pakkehåndtering er plasseringen av pakkebinærfiler. Pakker installerer binærfiler under /usr/local, og de fleste konfigurasjonsfiler ender i /usr/local/etcstedet for /etc. Hvis du kommer fra Linux-verdenen, kan det hende du finner dette svært uvanlig.

FreeBSD-pakkebehandleren, pkg

Neste generasjons erstatning for de tradisjonelle FreeBSD-pakkehåndteringsverktøyene er pkg. Å tilby mange funksjoner som gjør håndtering av binære pakker raskere og enklere, pkger den enkleste måten å installere programvare som ikke allerede er inkludert i basissystemet til FreeBSD. Det er et enkelt program med mange underkommandoer som du vil bruke for omtrent alle operasjoner på pakker som å installere, fjerne og undersøke pakker. Alle pakkeoperasjoner og endringer må kjøres som rooteller via sudo.

Slik vil du installere curlpakken på FreeBSD:

pkg install curl

Du kan mate kommandoen med for -yå unngå Proceed with this action? [y/N]:spørsmålet når du installerer programvare, eller du kan konfigurere pkgtil alltid å anta -yi en konfigurasjonsfil.

For å fjerne pakken, bruker du delete:

pkg delete curl

Som du kan se, er det veldig enkelt og intuitivt.

Bruk pkg helpfor en hurtigreferanse på de tilgjengelige underkommandoene, eller for pkg help <subcommand>å vise manualsiden for en bestemt underkommando:

pkg help
pkg help install
pkg help delete

Installerer pkg

Lagerversjonen av FreeBSD leveres ikke med pkgpakkebehandlingen installert. Første gang du prøver å installere en pakke, blir du pkgbedt om å installere pakkebehandlingsverktøyet. La oss for eksempel si at den første pakken du vil installere på din ferske FreeBSD er wget, og du vil se følgende ledetekst i terminalen din:

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

Du vil trykke Yog ENTERog installasjonen av pakkeadministrasjonsverktøyet starter. Etter at den er på plass, vil den første programvarepakken du ønsket å installere ( wget) bli installert.

Du kan også installere pakkesystemet på egen hånd, uten å legge til andre pakker, ved å kjøre pkg bootstrap. I tillegg pkgvet hvordan du installerer og oppdaterer seg selv og andre pakker.

MERK: Vultr-forekomster er pkginstallert som standard, så du trenger ikke å installere det.

Konfigurerer pkg

Den pkger utviklet for å være svært fleksibel, med hver -delkommandoen ha mange alternativer. Du kan etablere tilpasset, men konsistent oppførsel for de fleste programmer med den systemomfattende konfigurasjonsfilen for pkg, som ligger i /usr/local/etc/pkg.conf.

Filen inneholder kommenterte standardinnstillinger for pkg. Bare ved å lese den filen, kan du lære mye om hvordan pkgoppfører seg. Konfigurasjonen er skrevet i universal configuration language (UCL) og det er mange kommenterte konfigurasjonsalternativer og ganske mange aliaser. Variabler kan settes til et heltall, en streng eller en boolsk verdi:

#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 definere aliaser for pkgunderkommandoer i pkg.conf. Nederst i pkg.conffinner du en seksjon merket ALIAS. Når du finner deg selv gjentatte ganger kjører komplekse kommandoer, bør du legge til aliaser.

For mer informasjon om filformatet og alternativene, kan du se pkg.conf(5)man-siden:

man pkg.conf

Finne pakker

Nå som du har installert en pakkebehandling, kan du installere pakker. Hvis du er en sys-admin, er du kjent med det faktum at forskjellige operativsystemer tildeler forskjellige navn til pakkede versjoner av samme programvare. En pakke for Apache webserver på FreeBSD, for eksempel, vil ha et helt annet navn enn den pakkede Apache på forskjellige Linux-distribusjoner. Så før du kan installere noe, må du finne ut hva navnet på pakken du vil installere er.

FreeBSD-prosjektet tilbyr flere sett med pakker i et offentlig depot, og de oppdateres med noen få dagers mellomrom. Det er for tiden over 25 000 pakker.

La oss for eksempel prøve å søke etter Apache-nettserver:

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

Den vil finne alle pakker med apachei navnene deres. Dette vil returnere en lang liste, men det du ser etter er apache24pakken. Det er en kort beskrivelse av hver pakke. Dette bør hjelpe deg når du bestemmer deg for hvilken pakke du skal installere, men det er ikke alltid enkelt.

Noen søk kan generere hundrevis av resultater. Du må bruke forskjellige kommandolinjealternativer for å trimme eller justere søkeresultatene. Se pkg-searchman-siden eller hjelpesiden for pkg help searchå lære mer om vanlige søkealternativer.

Hvis du ikke er sikker på om en pakke er det du virkelig vil ha, kan du bruke følgende kommando for å finne detaljer om pakken:

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

Denne kommandoen vil gi deg mye nyttig informasjon om pakken.

Installerer pakker

For å installere programvare, bruk installunderkommandoen og navnet på en pakke for å installere:

pkg install apache24

Når du installerer pakker med pkg install, pkgkonsulterer du den lokale pakkekatalogen og laster deretter ned den forespurte pakken fra depotet på pkg.FreeBSD.org. Når pakken er installert, blir den registrert i en SQLite-database som holdes i /var/db/pkg/local.sqlite. Pass på at du ikke sletter denne filen, ellers vil systemet ditt miste oversikten over hvilke pakker som er installert. Hvis programvaren har avhengigheter, pkgvil finne dem ut og installere dem sammen med basispakken. Pakker installert som avhengigheter kalles automatiske pakker.

Pakkebehandlingen har muligheten til å bare laste ned pakker over internett og lagre dem på ett sted på disken. Dette lar deg installere dem på et annet tidspunkt. Du kan bruke pkg fetchkommandoen til å laste ned pakken uten å installere den:

pkg fetch nginx

Denne kommandoen henter bare Nginx uten dens avhengigheter. Du kan bruke -dflagget til å fange alle avhengighetene i tillegg til den navngitte pakken:

pkg fetch -d nginx

Pakkene lastes ned til pakkebufferkatalogen /var/cache/pkg. Etter at du har hentet pakker, pkglegger du dem til i denne katalogen. Du kan liste filer for å se hva den inneholder:

ls /var/cache/pkg

Nå, for å installere en nedlastet pakke etter en henting, kjør pkg installnormalt. Installasjonsprosessen bruker de hurtigbufrede filene i stedet for de nedlastede.

Over tid kan pakkebufferkatalogen vokse seg stor. Den pkg cleankommandoen fjerner alle bufrede pakker som har blitt erstattet av nyere versjoner, samt eventuelle pakkefiler som ikke lenger er i depotet:

pkg clean

Hvis du vil fjerne alle bufrede pakker, bruk -aflagget:

pkg clean -a

Hvis du vil rense pakkebufferen automatisk etter hver pakkeinstallasjon eller -oppgradering, sett pkg.confalternativet AUTOCLEANtil true.

Innhenting av informasjon om installerte pakker

Hvis du glemmer hvilke pakker du har installert på et system, kan du bruke for pkg infoå få en komplett liste over installert programvare:

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

Hvis du vil ha mer informasjon om en installert pakke, bruk pkg infoog pakkenavnet. Dette viser pakkeinstallasjonsdetaljene i en menneskevennlig rapport:

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.

Bruk for pkg lockå låse en pakke:

pkg lock openssl

Denne opensslpakken er nå låst.

For å liste opp alle låste pakker på systemet, bruk -lflagget:

pkg lock -l

For å fjerne låsen, bruk pkg unlockkommandoen:

pkg unlock openssl

For å låse eller låse opp alle pakker på systemet samtidig, bruk -aflagget:

pkg lock -a
pkg unlock -a

Pakkelager

Pakkelager støttes av pkg, som kalles samlinger av pakker. Du kan legge til, fjerne, aktivere og deaktivere depoter. Du bør konfigurere hvert depot i sin egen fil ved å bruke UCL-format. Offisielle FreeBSD-depoter hører hjemme i /etc/pkgkatalogen. FreeBSD sendes med repoen "FreeBSD" aktivert. Du finner konfigurasjonsfilen 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 legge til og fjerne depoter etter behov. Som /etc/pkger reservert for offisielle FreeBSD-depoter, trenger du en annen katalog. Den tradisjonelle plasseringen er /usr/local/etc/pkg/repos. Hvis du vil bruke en annen katalog, må du angi en plassering pkg.confmed REPO_DIRSalternativet. Den lokale depotkatalogen eksisterer ikke som standard, så du må opprette den med mkdir -p /usr/local/etc/pkg/repos. Sett dine egne depotkonfigurasjoner i den katalogen.

Eksempel på pkgunderkommandoer

Denne delen vil liste noen av de mest brukte underkommandoene som du mest sannsynlig vil bruke når du administrerer 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

Viktige filer og kataloger

  • Den pkgkonfigurasjonsfil -/usr/local/etc/pkg.conf
  • Katalog reservert for offisielle FreeBSD-depoter - /etc/pkg
  • FreeBSD arkivfil - /etc/pkg/FreeBSD.conf
  • Tradisjonell plassering for tilpassede depoter - /usr/local/etc/pkg/repos
  • Pakkebufferkatalog - /var/cache/pkg
  • SQLite database - /var/db/pkg/local.sqlite

Sammendrag

FreeBSD tilbyr to komplementære teknologier for å installere tredjepartsprogramvare: FreeBSD Ports Collection, for installasjon fra kilde og pakker, for installasjon fra forhåndsbygde binærfiler. Ettersom FreeBSD flytter systemet mer avgjørende mot universell pakkeadministrasjon, prøv å administrere tredjepartsprogramvare med så langt pkgdet er mulig. Unngå å bruke porter med mindre programvaren du ønsker ikke har noen pakket versjon eller du må tilpasse kompileringstidsalternativer.


Hvordan installere Tiny Tiny RSS-leser på en FreeBSD 11 FAMP VPS

Hvordan installere Tiny Tiny RSS-leser på en FreeBSD 11 FAMP VPS

Bruker du et annet system? Tiny Tiny RSS Reader er en gratis og åpen kildekode selvhostet nettbasert nyhetsfeed (RSS/Atom) leser og aggregator, designet for å allo

Hvordan installere Wiki.js på FreeBSD 11

Hvordan installere Wiki.js på FreeBSD 11

Bruker du et annet system? Wiki.js er en gratis og åpen kildekode, moderne wiki-app bygget på Node.js, MongoDB, Git og Markdown. Wiki.js kildekode er offentlig

Hvordan installere Pagekit 1.0 CMS på en FreeBSD 11 FAMP VPS

Hvordan installere Pagekit 1.0 CMS på en FreeBSD 11 FAMP VPS

Bruker du et annet system? Pagekit 1.0 CMS er et vakkert, modulært, utvidbart og lett, gratis og åpen kildekode Content Management System (CMS) med

Hvordan installere MODX Revolution på en FreeBSD 11 FAMP VPS

Hvordan installere MODX Revolution på en FreeBSD 11 FAMP VPS

Bruker du et annet system? MODX Revolution er et raskt, fleksibelt, skalerbart, åpen kildekode, enterprise-grade Content Management System (CMS) skrevet i PHP. Det jeg

Sett opp OpenBSD 5.5 64-bit

Sett opp OpenBSD 5.5 64-bit

Denne artikkelen leder deg gjennom å sette opp OpenBSD 5.5 (64-bit) på KVM med en Vultr VPS. Trinn 1. Logg på Vultr-kontrollpanelet. Trinn 2. Klikk på DEPLOY

Hvordan installere osTicket på FreeBSD 12

Hvordan installere osTicket på FreeBSD 12

Bruker du et annet system? osTicket er et åpen kildekode kundestøtte billettsystem. osTicket-kildekoden er offentlig vert på Github. I denne opplæringen

Hvordan installere Flarum Forum på FreeBSD 12

Hvordan installere Flarum Forum på FreeBSD 12

Bruker du et annet system? Flarum er en gratis og åpen kildekode neste generasjons forumprogramvare som gjør nettdiskusjoner morsomme. Flarum kildekode er vert for o

Slik aktiverer du TLS 1.3 i Nginx på FreeBSD 12

Slik aktiverer du TLS 1.3 i Nginx på FreeBSD 12

Bruker du et annet system? TLS 1.3 er en versjon av Transport Layer Security (TLS)-protokollen som ble publisert i 2018 som en foreslått standard i RFC 8446

Installer WordPress på OpenBSD 6.2

Installer WordPress på OpenBSD 6.2

Introduksjon WordPress er det dominerende innholdsstyringssystemet på internett. Den driver alt fra blogger til komplekse nettsteder med dynamisk innhold

Hvordan installere Subrion 4.1 CMS på en FreeBSD 11 FAMP VPS

Hvordan installere Subrion 4.1 CMS på en FreeBSD 11 FAMP VPS

Bruker du et annet system? Subrion 4.1 CMS er et kraftig og fleksibelt innholdsstyringssystem (CMS) med åpen kildekode som gir et intuitivt og tydelig innhold

Hvordan konfigurere DJBDNS på FreeBSD

Hvordan konfigurere DJBDNS på FreeBSD

Denne opplæringen viser deg hvordan du konfigurerer en DNS-tjeneste som er enkel å vedlikeholde, enkel å konfigurere og som generelt er sikrere enn den klassiske BIN-en.

Slik installerer du Nginx, MySQL og PHP (FEMP) Stack på FreeBSD 12.0

Slik installerer du Nginx, MySQL og PHP (FEMP) Stack på FreeBSD 12.0

En FEMP-stack, som kan sammenlignes med en LEMP-stack på Linux, er en samling åpen kildekode-programvare som vanligvis installeres sammen for å aktivere en FreeBS

Installere MongoDB på FreeBSD 10

Installere MongoDB på FreeBSD 10

MongoDB er en NoSQL-database i verdensklasse som brukes ofte i nyere webapplikasjoner. Det gir høyytelsesspørringer, sharding og replikering

Hvordan installere Monica på FreeBSD 12

Hvordan installere Monica på FreeBSD 12

Bruker du et annet system? Monica er et åpen kildekodesystem for personlig relasjonsstyring. Tenk på det som et CRM (et populært verktøy som brukes av salgsteam i th

OpenBSD som en e-handelsløsning med PrestaShop og Apache

OpenBSD som en e-handelsløsning med PrestaShop og Apache

Introduksjon Denne opplæringen demonstrerer OpenBSD som en e-handelsløsning som bruker PrestaShop og Apache. Apache er nødvendig fordi PrestaShop har kompleks UR

Installere Fork CMS på FreeBSD 12

Installere Fork CMS på FreeBSD 12

Bruker du et annet system? Fork er et åpen kildekode CMS skrevet i PHP. Forks kildekode er vert på GitHub. Denne guiden viser deg hvordan du installerer Fork CM

Hvordan installere Directus 6.4 CMS på en FreeBSD 11 FAMP VPS

Hvordan installere Directus 6.4 CMS på en FreeBSD 11 FAMP VPS

Bruker du et annet system? Directus 6.4 CMS er et kraftig og fleksibelt, gratis og åpen kildekode Headless Content Management System (CMS) som gir utviklere

Forbedre sikkerheten for FreeBSD ved å bruke IPFW og SSHGuard

Forbedre sikkerheten for FreeBSD ved å bruke IPFW og SSHGuard

VPS-servere er ofte målrettet av inntrengere. En vanlig type angrep dukker opp i systemlogger som hundrevis av uautoriserte ssh-påloggingsforsøk. Setter opp

Sett opp httpd i OpenBSD

Sett opp httpd i OpenBSD

Introduksjon OpenBSD 5.6 introduserte en ny demon kalt httpd, som støtter CGI (via FastCGI) og TLS. Ingen ekstra arbeid er nødvendig for å installere den nye http

Sett opp iRedMail på FreeBSD 10

Sett opp iRedMail på FreeBSD 10

Denne opplæringen viser deg hvordan du installerer gruppevaren iRedMail på en ny installasjon av FreeBSD 10. Du bør bruke en server med minst én gigabyte o

The Rise of Machines: Real World Applications of AI

The Rise of Machines: Real World Applications of AI

Kunstig intelligens er ikke i fremtiden, det er her akkurat i nåtiden I denne bloggen Les hvordan kunstig intelligens-applikasjoner har påvirket ulike sektorer.

DDOS-angrep: en kort oversikt

DDOS-angrep: en kort oversikt

Er du også et offer for DDOS-angrep og forvirret over forebyggingsmetodene? Les denne artikkelen for å løse spørsmålene dine.

Har du noen gang lurt på hvordan hackere tjener penger?

Har du noen gang lurt på hvordan hackere tjener penger?

Du har kanskje hørt at hackere tjener mye penger, men har du noen gang lurt på hvordan tjener de den slags penger? la oss diskutere.

Revolusjonerende oppfinnelser fra Google som vil gjøre livet ditt enkelt.

Revolusjonerende oppfinnelser fra Google som vil gjøre livet ditt enkelt.

Vil du se revolusjonerende oppfinnelser fra Google og hvordan disse oppfinnelsene forandret livet til alle mennesker i dag? Les deretter til bloggen for å se oppfinnelser fra Google.

Fredag ​​Essential: Hva skjedde med AI-drevne biler?

Fredag ​​Essential: Hva skjedde med AI-drevne biler?

Konseptet med selvkjørende biler som skal ut på veiene ved hjelp av kunstig intelligens er en drøm vi har hatt en stund nå. Men til tross for flere løfter, er de ingen steder å se. Les denne bloggen for å lære mer...

Teknologisk singularitet: en fjern fremtid for menneskelig sivilisasjon?

Teknologisk singularitet: en fjern fremtid for menneskelig sivilisasjon?

Ettersom vitenskapen utvikler seg raskt og tar over mye av innsatsen vår, øker også risikoen for å utsette oss for en uforklarlig singularitet. Les hva singularitet kan bety for oss.

Evolusjon av datalagring – infografikk

Evolusjon av datalagring – infografikk

Lagringsmetodene for dataene har vært i utvikling kan være siden fødselen av dataene. Denne bloggen dekker utviklingen av datalagring på grunnlag av en infografikk.

Funksjonaliteter til Big Data Reference Architecture Layers

Funksjonaliteter til Big Data Reference Architecture Layers

Les bloggen for å kjenne ulike lag i Big Data Architecture og deres funksjoner på den enkleste måten.

6 fantastiske fordeler ved å ha smarte hjemmeenheter i livene våre

6 fantastiske fordeler ved å ha smarte hjemmeenheter i livene våre

I denne digitaldrevne verden har smarthusenheter blitt en avgjørende del av livet. Her er noen fantastiske fordeler med smarthusenheter om hvordan de gjør livet vårt verdt å leve og enklere.

macOS Catalina 10.15.4 tilleggsoppdatering forårsaker flere problemer enn å løse

macOS Catalina 10.15.4 tilleggsoppdatering forårsaker flere problemer enn å løse

Nylig lanserte Apple macOS Catalina 10.15.4 en tilleggsoppdatering for å fikse problemer, men det ser ut til at oppdateringen forårsaker flere problemer som fører til muring av mac-maskiner. Les denne artikkelen for å lære mer