Sådan bruger du Pkg Package Manager på FreeBSD 12

Introduktion

FreeBSD er et open source Unix-lignende operativsystem, der bruges til at drive moderne servere, desktops og indlejrede platforme. Giganter som Netflix, Yahoo!, WhatsApp, BBC og Sony bruger FreeBSD i en eller anden form. FreeBSD-systemet er ikke så almindeligt kendt som Linux, hovedsageligt fordi Linux i mange år har fokuseret på skrivebordet, og FreeBSD-projektet har haft en tendens til at være mere serverbaseret.

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

Porte vs. pakker

På FreeBSD har vi to forskellige måder at installere tilføjelsessoftware på: via Ports Collection , eller Ports , og via prækonfigurerede pakker til at installere og administrere software.

Ports er et system til at bygge ekstra software på FreeBSD. Med Ports starter du med den rå kildekode leveret af softwareleverandøren og bygger softwaren på præcis den måde, du har brug for, og aktiverer og deaktiverer funktioner efter behov.

Pakker er præ-kompileret software, og de er resultatet af at bygge porte, ved at bruge de muligheder, som portvedligeholderen mener vil være mest nyttige for den bredeste række af mennesker og samle dem i en pakke for at gøre dem nemme at installere. Pakker giver dig mulighed for hurtigt at installere, afinstallere og opgradere tilføjelsessoftware. FreeBSD's pakkesystem kaldes package , eller pkg. Pakkeoplysninger bliver gemt i en SQLite-database, som du kan forespørge om pakkedata.

En anden vigtig ting ved FreeBSD-pakkehåndtering er placeringen af ​​pakkebinære filer. Pakker installerer binære filer under /usr/local, og de fleste konfigurationsfiler ender i /usr/local/etcstedet for /etc. Hvis du kommer fra Linux-verdenen, kan du finde dette meget ualmindeligt.

FreeBSD-pakkehåndteringen, pkg

Den næste generations erstatning for de traditionelle FreeBSD-pakkehåndteringsværktøjer er pkg. At tilbyde mange funktioner, der gør håndtering af binære pakker hurtigere og nemmere, pkger den nemmeste måde at installere software på, som ikke allerede er inkluderet i FreeBSDs basissystem. Det er et enkelt program med mange underkommandoer, som du vil bruge til stort set alle handlinger på pakker, såsom installation, fjernelse og undersøgelse af pakker. Alle pakkehandlinger og ændringer skal køres som rooteller via sudo.

Sådan installerer du curlpakken på FreeBSD:

pkg install curl

Du kan fodre kommandoen med for -yat undgå Proceed with this action? [y/N]:spørgsmålet, når du installerer software, eller du kan konfigurere pkgtil altid at antage -yi en konfigurationsfil.

For at fjerne pakken skal du bruge delete:

pkg delete curl

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

Bruges pkg helptil en hurtig reference til de tilgængelige underkommandoer eller pkg help <subcommand>til at vise manualsiden for en bestemt underkommando:

pkg help
pkg help install
pkg help delete

Installerer pkg

Lagerversionen af ​​FreeBSD leveres ikke med pkgpakkehåndteringen installeret. Første gang du prøver at installere en pakke, bliver du pkgbedt om at installere pakkehåndteringsværktøjet. Lad os for eksempel sige, at den første pakke, du vil installere på din friske FreeBSD, er wget, og du vil se følgende 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 vil trykke Yog ENTERog installationen af ​​pakkehåndteringsværktøjet starter. Når den er på plads, vil den oprindelige softwarepakke, som du ønskede at installere ( wget), blive installeret.

Du kan også installere pakkesystemet alene, uden at tilføje andre pakker, ved at køre pkg bootstrap. Derudover pkgved, hvordan man installerer og opdaterer sig selv og andre pakker.

BEMÆRK: Vultr-instanser er pkginstalleret som standard, så du behøver ikke at installere det.

Konfigurerer pkg

Det pkgprogram er designet til at være meget fleksible, med hver underkommandoen have mange muligheder. Du kan etablere tilpasset, men ensartet adfærd for de fleste programmer med den systemdækkende konfigurationsfil for pkg, placeret i /usr/local/etc/pkg.conf.

Filen indeholder kommenterede standarder for pkg. Bare ved at læse den fil, kan du lære meget om, hvordan den pkgopfører sig. Konfigurationen er skrevet i universal configuration language (UCL), og der er masser af kommenterede konfigurationsmuligheder og en del aliaser. Variabler kan indstilles til et heltal, en streng eller en boolsk værdi:

#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. I bunden af pkg.conffinder du en sektion mærket ALIAS. Når du oplever, at du gentagne gange kører komplekse kommandoer, bør du tilføje aliaser.

For mere information om filformatet og mulighederne, kan du henvise til pkg.conf(5)man-siden:

man pkg.conf

At finde pakker

Nu hvor du har installeret en pakkehåndtering, kan du installere pakker. Hvis du er sys-admin, er du bekendt med, at forskellige operativsystemer tildeler forskellige navne til pakkede versioner af den samme software. En pakke til Apache-webserver på FreeBSD vil for eksempel have et helt andet navn end den pakkede Apache på forskellige Linux-distributioner. Så før du kan installere noget, skal du finde ud af, hvad navnet på den pakke, du vil installere, er.

FreeBSD-projektet tilbyder flere sæt pakker i et offentligt lager, og de opdateres med få dages mellemrum. Der er i øjeblikket over 25.000 pakker.

Lad os for eksempel prøve at søge efter Apache-webserver:

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

Det vil finde alle pakker med apachei deres navne. Dette vil returnere en lang liste, men det, du leder efter, er apache24pakken. Der er en kort beskrivelse af hver pakke. Dette burde hjælpe dig, når du beslutter dig for, hvilken pakke du skal installere, men det er ikke altid nemt.

Nogle søgninger kan generere hundredvis af resultater. Du bliver nødt til at bruge forskellige kommandolinjeindstillinger for at trimme eller justere søgeresultaterne. Se pkg-searchman-siden eller hjælpesiden for pkg help searchat lære mere om almindelige søgemuligheder.

Hvis du ikke er sikker på, om en pakke er, hvad du virkelig ønsker, kan du bruge følgende kommando til at finde 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 kommando vil give dig en masse nyttig information om pakken.

Installation af pakker

For at installere software skal du bruge installunderkommandoen og navnet på en pakke til at installere:

pkg install apache24

Når du installerer pakker med pkg install, pkgkonsulterer du det lokale pakkekatalog og downloader derefter den anmodede pakke fra lageret på pkg.FreeBSD.org. Når pakken er installeret, registreres den i en SQLite-database, der opbevares i /var/db/pkg/local.sqlite. Pas på ikke at slette denne fil, ellers vil dit system miste overblikket over, hvilke pakker der er blevet installeret. Hvis softwaren har afhængigheder, pkgvil du finde ud af dem og installere dem sammen med basispakken. Pakker installeret som afhængigheder kaldes automatiske pakker.

Pakkemanageren har mulighed for blot at downloade pakker over internettet og gemme dem ét sted på disken. Dette giver dig mulighed for at installere dem på et andet tidspunkt. Du kan bruge pkg fetchkommandoen til at downloade pakken uden at installere den:

pkg fetch nginx

Denne kommando henter kun Nginx uden dens afhængigheder. Du kan bruge -dflaget til at få fat i alle afhængigheder såvel som den navngivne pakke:

pkg fetch -d nginx

Pakkerne downloades til pakkecache-biblioteket /var/cache/pkg. Når du har hentet pakker, pkgtilføjer du dem til denne mappe. Du kan liste filer for at se, hvad de indeholder:

ls /var/cache/pkg

Nu, for at installere en downloadet pakke efter en hentning, skal du køre pkg installnormalt. Installationsprocessen bruger de cachelagrede filer i stedet for de downloadede.

Over tid kan pakkecache-biblioteket vokse sig stort. Den pkg cleankommando fjerner eventuelle cachede pakker, der er blevet erstattet af nyere versioner, samt eventuelle pakke filer, der ikke længere er i lageret:

pkg clean

Hvis du vil fjerne alle cachelagrede pakker, skal du bruge -aflaget:

pkg clean -a

Hvis du vil rense pakkecachen automatisk efter hver pakkeinstallation eller -opgradering, skal du indstille pkg.confindstillingen AUTOCLEANtil true.

Indhentning af oplysninger om installerede pakker

Hvis du glemmer, hvilke pakker du har installeret på et system, kan du bruge pkg infotil at få en komplet liste over installeret software:

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 ønsker mere information om en installeret pakke, skal du bruge pkg infoog pakkenavnet. Dette viser pakkeinstallationsdetaljerne i en menneskevenlig rapport:

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

Du kan se en masse nyttige oplysninger såsom versionen af ​​softwaren, tidspunktet for softwareinstallation, softwarelicens, kompileringstidsflag og mere. Tjek pkg-infoman-siden for alle detaljer.

Fjernelse af pakker

Brug pkg deleteunderkommandoen for at afinstallere binære pakker . Den er også tilgængelig som pkg remove:

pkg delete nginx
# or
pkg remove nginx

Du får en liste over pakker, der skal fjernes, og hvor meget plads dette vil frigøre.

Hvis du fjerner en pakke, som andre pakker er afhængige af, pkgfjerner du også de afhængige pakker.

Låsning af pakker

Der kan være et tidspunkt, hvor du ønsker, at en pakke på din server aldrig skal opgradere. Når du låser en pakke, pkgvil den ikke opgradere, nedgradere, afinstallere eller geninstallere den. Den anvender de samme regler for pakkens afhængigheder og de programmer, den afhænger af.

Bruges pkg locktil at låse en pakke:

pkg lock openssl

Denne opensslpakke er nu låst.

For at liste alle aktuelt låste pakker på systemet, brug -lflaget:

pkg lock -l

For at fjerne låsen, brug pkg unlockkommandoen:

pkg unlock openssl

For at låse eller låse op for alle pakker på systemet på én gang, brug -aflaget:

pkg lock -a
pkg unlock -a

Pakkelager

Pakkelager understøttes af pkg, som kaldes samlinger af pakker. Du kan tilføje, fjerne, aktivere og deaktivere depoter. Du bør konfigurere hvert lager i sin egen fil ved hjælp af UCL-format. Officielle FreeBSD-depoter hører hjemme i /etc/pkgmappen. FreeBSD sendes med repoen "FreeBSD" aktiveret. Du finder dens 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 tilføje og fjerne depoter efter behov. Som det /etc/pkger reserveret til officielle FreeBSD-depoter, har du brug for en anden mappe. Den traditionelle placering er /usr/local/etc/pkg/repos. Hvis du vil bruge en anden mappe, skal du angive en placering pkg.confmed REPO_DIRSmuligheden. Det lokale lagerbibliotek eksisterer ikke som standard, så du bliver nødt til at oprette det med mkdir -p /usr/local/etc/pkg/repos. Læg dine egne lagerkonfigurationer i den mappe.

Eksempel på pkgunderkommandoer

Denne sektion vil liste nogle af de mest brugte underkommandoer, som du højst sandsynligt vil bruge, 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

Vigtige filer og mapper

  • Den pkgkonfigurationsfil -/usr/local/etc/pkg.conf
  • Katalog reserveret til officielle FreeBSD-depoter - /etc/pkg
  • FreeBSD repository fil - /etc/pkg/FreeBSD.conf
  • Traditionel placering for brugerdefinerede depoter - /usr/local/etc/pkg/repos
  • Pakke cache mappe - /var/cache/pkg
  • SQLite database - /var/db/pkg/local.sqlite

Resumé

FreeBSD leverer to komplementære teknologier til installation af tredjepartssoftware: FreeBSD Ports Collection, til installation fra kilde og pakker, til installation fra forudbyggede binære filer. Da FreeBSD flytter systemet mere beslutsomt mod universel pakkehåndtering, så prøv at administrere tredjepartssoftware med pkgi det omfang det er muligt. Undgå at bruge porte, medmindre den software, du ønsker, ikke har en pakket version, eller du skal tilpasse mulighederne for kompilering.


Sådan installeres Tiny Tiny RSS Reader på en FreeBSD 11 FAMP VPS

Sådan installeres Tiny Tiny RSS Reader på en FreeBSD 11 FAMP VPS

Bruger du et andet system? Tiny Tiny RSS Reader er en gratis og open source selv-hostet webbaseret nyhedsfeed (RSS/Atom) læser og aggregator, designet til at allo

How to Install Wiki.js on FreeBSD 11

How to Install Wiki.js on FreeBSD 11

Using a Different System? Wiki.js is a free and open source, modern wiki app built on Node.js, MongoDB, Git and Markdown. Wiki.js source code is publicl

Sådan installeres Pagekit 1.0 CMS på en FreeBSD 11 FAMP VPS

Sådan installeres Pagekit 1.0 CMS på en FreeBSD 11 FAMP VPS

Bruger du et andet system? Pagekit 1.0 CMS er et smukt, modulært, udvideligt og let, gratis og open source Content Management System (CMS) med

Sådan installeres MODX Revolution på en FreeBSD 11 FAMP VPS

Sådan installeres MODX Revolution på en FreeBSD 11 FAMP VPS

Bruger du et andet system? MODX Revolution er et hurtigt, fleksibelt, skalerbart, open source, enterprise-grade Content Management System (CMS) skrevet i PHP. Det jeg

Opsætning af OpenBSD 5.5 64-bit

Opsætning af OpenBSD 5.5 64-bit

Denne artikel guider dig gennem opsætning af OpenBSD 5.5 (64-bit) på KVM med en Vultr VPS. Trin 1. Log ind på Vultr kontrolpanelet. Trin 2. Klik på DEPLAY

Sådan installeres osTicket på FreeBSD 12

Sådan installeres osTicket på FreeBSD 12

Bruger du et andet system? osTicket er et open source kundesupport billetsystem. osTicket-kildekoden er offentligt hostet på Github. I denne tutorial

Sådan installeres Flarum Forum på FreeBSD 12

Sådan installeres Flarum Forum på FreeBSD 12

Bruger du et andet system? Flarum er en gratis og open source næste generations forumsoftware, der gør online diskussion sjov. Flarum kildekode er hostet o

Sådan aktiveres TLS 1.3 i Nginx på FreeBSD 12

Sådan aktiveres TLS 1.3 i Nginx på FreeBSD 12

Bruger du et andet system? TLS 1.3 er en version af Transport Layer Security (TLS) protokollen, der blev offentliggjort i 2018 som en foreslået standard i RFC 8446

Installer WordPress på OpenBSD 6.2

Installer WordPress på OpenBSD 6.2

Introduktion WordPress er det dominerende content management system på internettet. Det driver alt fra blogs til komplekse websteder med dynamisk indhold

Sådan installeres Subrion 4.1 CMS på en FreeBSD 11 FAMP VPS

Sådan installeres Subrion 4.1 CMS på en FreeBSD 11 FAMP VPS

Bruger du et andet system? Subrion 4.1 CMS er et kraftfuldt og fleksibelt open source Content Management System (CMS), der bringer et intuitivt og klart indhold

Sådan konfigureres DJBDNS på FreeBSD

Sådan konfigureres DJBDNS på FreeBSD

Denne vejledning viser dig, hvordan du konfigurerer en DNS-tjeneste, der er nem at vedligeholde, nem at konfigurere, og som generelt er mere sikker end den klassiske BIN

Sådan installeres Nginx, MySQL og PHP (FEMP) Stack på FreeBSD 12.0

Sådan installeres Nginx, MySQL og PHP (FEMP) Stack på FreeBSD 12.0

En FEMP-stak, som kan sammenlignes med en LEMP-stak på Linux, er en samling open source-software, der typisk installeres sammen for at aktivere en FreeBS

Installation af MongoDB på FreeBSD 10

Installation af MongoDB på FreeBSD 10

MongoDB er en NoSQL-database i verdensklasse, der ofte bruges i nyere webapplikationer. Det giver højtydende forespørgsler, sharding og replikering

Sådan installeres Monica på FreeBSD 12

Sådan installeres Monica på FreeBSD 12

Bruger du et andet system? Monica er et open source system til styring af personlige relationer. Tænk på det som et CRM (et populært værktøj, der bruges af salgsteams i th

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

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

Introduktion Denne tutorial demonstrerer OpenBSD som en e-handelsløsning, der bruger PrestaShop og Apache. Apache er påkrævet, fordi PrestaShop har kompleks UR

Installation af Fork CMS på FreeBSD 12

Installation af Fork CMS på FreeBSD 12

Bruger du et andet system? Fork er et open source CMS skrevet i PHP. Forks kildekode er hostet på GitHub. Denne vejledning viser dig, hvordan du installerer Fork CM

Sådan installeres Directus 6.4 CMS på en FreeBSD 11 FAMP VPS

Sådan installeres Directus 6.4 CMS på en FreeBSD 11 FAMP VPS

Bruger du et andet system? Directus 6.4 CMS er et kraftfuldt og fleksibelt, gratis og open source Headless Content Management System (CMS), der giver udviklere

Forbedring af sikkerheden for FreeBSD ved hjælp af IPFW og SSHGuard

Forbedring af sikkerheden for FreeBSD ved hjælp af IPFW og SSHGuard

VPS-servere er ofte målrettet af ubudne gæster. En almindelig type angreb dukker op i systemlogfiler som hundredvis af uautoriserede ssh-loginforsøg. Sætte op

Opsæt httpd i OpenBSD

Opsæt httpd i OpenBSD

Introduktion OpenBSD 5.6 introducerede en ny dæmon kaldet httpd, som understøtter CGI (via FastCGI) og TLS. Der kræves ikke yderligere arbejde for at installere den nye http

Konfigurer iRedMail på FreeBSD 10

Konfigurer iRedMail på FreeBSD 10

Denne vejledning viser dig, hvordan du installerer groupware iRedMail på en ny installation af FreeBSD 10. Du bør bruge en server med mindst é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 lige i nuet I denne blog Læs, hvordan kunstig intelligens-applikationer har påvirket forskellige sektorer.

DDOS-angreb: et kort overblik

DDOS-angreb: et kort overblik

Er du også et offer for DDOS-angreb og forvirret over forebyggelsesmetoderne? Læs denne artikel for at løse dine spørgsmål.

Har du nogensinde spekuleret på, hvordan tjener hackere penge?

Har du nogensinde spekuleret på, hvordan tjener hackere penge?

Du har måske hørt, at hackere tjener mange penge, men har du nogensinde spekuleret på, hvordan tjener de den slags penge? lad os diskutere.

Revolutionære opfindelser fra Google, der vil gøre dit liv lettere.

Revolutionære opfindelser fra Google, der vil gøre dit liv lettere.

Vil du se revolutionerende opfindelser fra Google, og hvordan disse opfindelser ændrede livet for ethvert menneske i dag? Læs derefter til bloggen for at se opfindelser fra Google.

Fredag ​​Essential: Hvad skete der med AI-drevne biler?

Fredag ​​Essential: Hvad skete der med AI-drevne biler?

Konceptet med selvkørende biler til at køre på vejene ved hjælp af kunstig intelligens er en drøm, vi har haft i et stykke tid nu. Men på trods af flere løfter er de ingen steder at se. Læs denne blog for at lære mere...

Teknologisk singularitet: En fjern fremtid for menneskelig civilisation?

Teknologisk singularitet: En fjern fremtid for menneskelig civilisation?

Efterhånden som videnskaben udvikler sig i et hurtigt tempo og overtager en stor del af vores indsats, stiger risikoen for at udsætte os selv for en uforklarlig Singularitet. Læs, hvad singularitet kunne betyde for os.

Udvikling af datalagring – Infografik

Udvikling af datalagring – Infografik

Opbevaringsmetoderne for dataene har været under udvikling, kan være siden fødslen af ​​dataene. Denne blog dækker udviklingen af ​​datalagring på basis af en infografik.

Funktioner af Big Data Reference Architecture Layers

Funktioner af Big Data Reference Architecture Layers

Læs bloggen for at kende forskellige lag i Big Data-arkitekturen og deres funktionaliteter på den enkleste måde.

6 fantastiske fordele ved at have smarte hjemmeenheder i vores liv

6 fantastiske fordele ved at have smarte hjemmeenheder i vores liv

I denne digitalt drevne verden er smarte hjemmeenheder blevet en afgørende del af livet. Her er et par fantastiske fordele ved smarte hjemmeenheder om, hvordan de gør vores liv værd at leve og enklere.

macOS Catalina 10.15.4-tillægsopdatering forårsager flere problemer end at løse

macOS Catalina 10.15.4-tillægsopdatering forårsager flere problemer end at løse

For nylig udgav Apple macOS Catalina 10.15.4 en supplerende opdatering for at løse problemer, men det ser ud til, at opdateringen forårsager flere problemer, hvilket fører til mursten af ​​mac-maskiner. Læs denne artikel for at lære mere