Benutzer-Werkzeuge

Webseiten-Werkzeuge


freebsd:freebsd_-_pkg

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
freebsd:freebsd_-_pkg [2024-02-10 23:35:28] manfredfreebsd:freebsd_-_pkg [2025-08-09 23:02:52] (aktuell) manfred
Zeile 1: Zeile 1:
 +====== FreeBSD - PKG ======
 +
 +  * [[https://wiki.freebsd.org/pkgng|pkgng]]
 +  * [[https://wiki.freebsd.org/PkgPrimer]]
 +  * **[[https://docs.freebsd.org/en/books/handbook/ports/#ports-using]]**
 +  * [[https://www.youtube.com/watch?v=4Hxq7AHZ27I]]
 +  * [[https://docs.freebsd.org/de_DE.ISO8859-1/books/handbook/pkgng-intro.html|4.4. Benutzen von pkg zur Verwaltung von Binärpaketen]]
 +  * [[https://www.bsdforen.de/threads/freebsd-pkgng-tester-gesucht.27444/|[FreeBSD] pkgng: Tester gesucht!]]
 +  * [[https://www.codeflow.site/de/article/how-to-manage-packages-on-freebsd-10-1-with-pkg|So verwalten Sie Pakete unter FreeBSD 10.1 mit Pkg]]
 +  * [[::freebsd:FreeBSD - Update]]
 +  * [[::freebsd:FreeBSD - Upgrade]]
 +  * [[::freebsd:FreeBSD - Ports-Tree]]
 +  * **[[::freebsd:FreeBSD - PortMaster]]** //verwendet nur Werkzeuge, die bereits im Basissystem vorhanden sind//
 +  * [[::freebsd:FreeBSD - PortUpgrade]]
 +
 +Das Management von Binärpaketen unter FreeBSD, ist derzeit suboptimal. Es hat viele Gründe, aber hauptsächlich zu nennen sind dort 2:
 +  - Die Paketdatenbank in ''/var/db/pkg'' speichert nicht alle notwendigen Informationen, sie ist langsam, ineffizient und fehleranfällig.
 +  - Die im Basissystem enthaltenen ''pkg_*'' Tools sind ebenso fehlerhaft und bieten nicht genug Funktionen.
 +
 +In der Vergangenheit gab es mehrere Versuche um beide Nachteile herumzufrickeln. Reine Port-Tools wie Portmaster wurden erweitert, um auch Binärpakete verwalten zu können. Portupgrade implementierte seine eigene Datenbank. Dennoch erreicht man nie die Klasse, die Nutzer von Linuxdistributionen gewohnt sind. Aus diesem Grund wurde in den letzten Monaten der Binärpaketmanager **''pkgng''** geschrieben.
 +Die Designziele waren:
 +  - Ersetze ''/var/db/pkg'' durch eine neue Datenbank, die schneller und robuster als die derzeitige Struktur ist. Die Wahl fiel auf eine sqlite-Datenbank.
 +  - Erlaube weitere Metadaten und verändere das Paketformat so, dass es diese Metadaten speichern kann. Diese Metadaten werden nun in Form von YAML-Dateien gespeichert, denn dieses Format ist problemlos von Menschen lesbar und auch maschinell leicht zu handhaben.
 +  - Entkoppele das Basissystem von den Ports. So wie ich es verstanden habe, soll ''pkgng'' nicht mehr Teil des Basisystems werden, viel mehr ein integraler Bestandteil der Ports. Es muss im Rahmen der Installation des Portstree installiert werden. Vielleicht kann hier noch jemand etwas zu sagen, der mit der Materie vertrauter ist.
 +  - Stelle ein Interface bereit, was sich an gängigen Linux-Paketmanagern orientiert. ''pkgng'' ist daher ein Hybrid geworden, der Funktionen aus ''apt'', ''yum'', ''packman'' und einigen anderen Tools aus der Linuxwelt kombiniert.
 +
 +BITTE BEACHTET: Die Paketdatenbank muss konvertiert werden! Ein Weg zurück zu den bisherigen pkg_* Tools, ist nicht möglich!
 +
 +alle installierten Pakete zählen:
 +  > pkg -N
 +  pkg: 854 packages installed
 +
 +die explizit installierten Pakte, ohne Abhängigkeiten, auflisten:
 +  > pkg prime-list
 +  > pkg prime-origins
 +
 +pkg-lock(8) wird verwendet, um Pakete gegen Neuinstallation, Änderung oder Löschung zu sperren. pkg-unlock(8) entsperrt die genannten Pakete. Beide Varianten wirken sich nur auf aktuell installierte Pakete aus. Folglich ist es unmöglich, die Installation eines neuen Pakets mit diesem Mechanismus zu blockieren, es sei denn, eine solche Installation erfordert die Aktualisierung eines gesperrten Pakets.
 +  > pkg lock nginx-lite
 +  > pkg unlock nginx-lite
 +
 +alle bekannten Sicherheitslücken der installierten Pakete auflisten:
 +  > pkg audit -F
 +  ...
 +  
 +  cyrus-sasl-2.1.27_2 is vulnerable:
 +    cyrus-sasl -- Fix off by one error
 +    CVE: CVE-2019-19906
 +    WWW: https://vuxml.FreeBSD.org/freebsd/a80c6273-988c-11ec-83ac-080027415d17.html
 +  
 +  46 problem(s) in 24 installed package(s) found.
 +
 +alle Kommentare, von einem bestimmten installierten Paket (FFmpeg), anzeigen
 +  > pkg info ffmpeg
 +
 +aus den Kommentaren nur den TAG "FreeBSD_version" anzeigen
 +  > pkg annotate -S ffmpeg FreeBSD_version
 +  ffmpeg-6.0,1: Tag: FreeBSD_version Value: 1302001
 +
 +von allen installierten Paketen den TAG "FreeBSD_version" anzeigen
 +  > pkg annotate -aS FreeBSD_version
 +  ...
 +  ffmpeg-6.0,1: Tag: FreeBSD_version Value: 1302001
 +  ...
 +
 +Paket-Name suchen:
 +  > pkg search exiftool
 +  p5-Image-ExifTool-12.00        Perl module for getting EXIF data from image files
 +  p5-Image-ExifTool-devel-10.66  Perl module for getting EXIF data from image files
 +
 +Versionsunabhängigen Paket-Name suchen:
 +  > pkg search -o exiftool
 +  graphics/p5-Image-ExifTool     Perl module for getting EXIF data from image files
 +  graphics/p5-Image-ExifTool-devel Perl module for getting EXIF data from image files
 +
 +Paket installieren:
 +  > pkg install graphics/p5-Image-ExifTool
 +
 +Informationen über das Paket auslesen:
 +  > pkg info graphics/p5-Image-ExifTool
 +  p5-Image-ExifTool-12.00
 +  Name           : p5-Image-ExifTool
 +  Version        : 12.00
 +  Installed on   : Sat Apr 10 13:26:31 2021 CEST
 +  Origin         : graphics/p5-Image-ExifTool
 +  Architecture   : FreeBSD:13:*
 +  Prefix         : /usr/local
 +  Categories     : perl5 graphics
 +  Licenses       : GPLv1+, ART10
 +  Maintainer     : devin@sevenlayer.studio
 +  WWW            : https://sno.phy.queensu.ca/~phil/exiftool/
 +  Comment        : Perl module for getting EXIF data from image files
 +  ...
 +
 +Statistikwerte über das Paket auslesen:
 +  > pkg stats graphics/p5-Image-ExifTool
 +  Local package database:
 +          Installed packages: 592
 +          Disk space occupied: 6 GiB
 +  
 +  Remote package database(s):
 +          Number of repositories: 1
 +          Packages available: 29890
 +          Unique packages: 29890
 +          Total size of packages: 86 GiB
 +
 +ermitteln, welches Paket dieses Programm installiert hat:
 +  > pkg which /usr/local/bin/exiftool
 +  /usr/local/bin/exiftool was installed by package p5-Image-ExifTool-12.00
 +  
 +  > pkg which -o /usr/local/bin/exiftool
 +  /usr/local/bin/exiftool was installed by package graphics/p5-Image-ExifTool
 +
 +
 +alle installierten Pakete anzeigen:
 +  root@FreeBSD10:~ # pkg info -a
 +  ...
 +  bash-5.1.4                     GNU Project's Bourne Again SHell
 +  ...
 +  
 +  root@FreeBSD10:~ # pkg info -ao
 +  ...
 +  bash-5.1.4                     shells/bash
 +  ...
 +
 +  root@FreeBSD10:~ # pkg info -l shells/bash
 +  bash-5.1.4:
 +          /usr/local/bin/bash
 +          /usr/local/bin/bashbug
 +          /usr/local/bin/rbash
 +  ...
 +
 +Ein Paket als "automatisch installiert" markieren:
 +  > pkg set -A 1 lang/gcc12
 +  Mark gcc12-12.2.0_6 as automatically installed? [y/N]: y
 +
 +Abhängigkeiten, von denen dieses Paket abhängt, anzeigen:
 +  root@FreeBSD10:~ # pkg info -d shells/bash
 +  bash-4.3.42:
 +          indexinfo-0.2.4
 +          gettext-runtime-0.19.6
 +
 +Abhängigkeiten, die von diesem Paket abhängen, anzeigen:
 +  root@FreeBSD10:~ # pkg info -r shells/bash
 +  bash-4.3.33:
 +
 +Abhängigkeiten überprüfen und ggf. reparieren:
 +  # pkg check -d
 +  Checking all packages: 100%
 +
 +das Quell-Paket zu einer Datei finden:
 +  root@FreeBSD10:~ # pkg which /usr/local/bin/mp4box
 +  /usr/local/bin/mp4box was installed by package gpac-mp4box-0.5.0
 +
 +alle installierten Dateien von einem Paket anzeigen:
 +  root@FreeBSD10:~ # pkg info -ol shells/bash
 +  bash-4.3.33
 +  Origin         : shells/bash
 +  Files          :
 +          /usr/local/bin/bash
 +          /usr/local/bin/bashbug
 +          /usr/local/bin/rbash
 +          /usr/local/info/bash.info
 +          /usr/local/man/man1/bash.1.gz
 +          ...
 +
 +Meta-Daten eines Paketes ausgeben:
 +  root@FreeBSD10:~ # pkg info bash
 +  bash-4.3.33
 +  Name           : bash
 +  Version        : 4.3.33
 +  Installed on   : Thu Mar 19 20:59:38 UTC 2015
 +  Origin         : shells/bash
 +  Architecture   : freebsd:10:x86:64
 +  Prefix         : /usr/local
 +  Categories     : shells
 +  Licenses       : GPLv3
 +  Maintainer     : ehaupt@FreeBSD.org
 +  WWW            : http://cnswww.cns.cwru.edu/~chet/bash/bashtop.html
 +  Comment        : The GNU Project's Bourne Again SHell
 +  ...
 +
 +das Origin eines Paketes anzeigen:
 +  root@FreeBSD10:~ # pkg info -o dokuwiki-20140929_1
 +  dokuwiki-20140929_1            www/dokuwiki
 +
 +das Origin von allen installierten Paketen anzeigen:
 +  root@FreeBSD10:~ # pkg info -oa
 +
 +Paket suchen:
 +  root@FreeBSD10:~ # pkg search dvd
 +  dvd+rw-tools-7.1
 +  dvd-slideshow-0.8.4_1
 +  ...
 +
 +Paket installieren:
 +  root@FreeBSD10:~ # pkg install dvd+rw-tools-7.1
 +  root@FreeBSD10:~ # pkg install www/dokuwiki
 +
 +alle installierten Pakete anzeigen:
 +  root@FreeBSD10:~ # pkg info
 +  ...
 +  dvd+rw-tools-7.1               DVD burning software
 +  ...
 +
 +Paket wieder löschen:
 +  root@FreeBSD10:~ # pkg info | grep -F dvd
 +  dvd+rw-tools-7.1               DVD burning software
 +  
 +  root@FreeBSD10:~ # pkg delete dvd+rw-tools-7.1
 +
 +Paket rekursiv löschen:
 +  root@FreeBSD10:~ # pkg delete -fa dvd+rw-tools-7.1
 +
 +Aktualisieren Sie die lokale pkgng-Datenbank:
 +  root@FreeBSD10:~ # pkg update -f
 +
 +**alle installierten Pakete aktuallisieren**:
 +  root@FreeBSD10:~ # pkg update && pkg updating | tee updating.txt && pkg upgrade
 +
 +unsichere Pakete suchen:
 +  root@FreeBSD10:~ # pkg audit
 +  0 problem(s) in the installed packages found.
 +
 +die Abhängigkeiten aller installierten Pakete überprüfen:
 +  root@FreeBSD10:~ # pkg check -d
 +
 +die Schecksummen aller installierten Pakete neu generieren:
 +  root@FreeBSD10:~ # pkg check -r
 +
 +die Schecksummen aller installierten Pakete überprüfen:
 +  root@FreeBSD10:~ # pkg check -s
 +
 +
 +==== Installation von Binärpaketen ====
 +
 +wenn man einfach nur den Paketnamen angibt, dann passiert folgendes:
 +  root@FreeBSD10:~ # pkg install postfix dovecot
 +  Updating repository catalogue
 +  digests.txz                                  100% 1043KB  40.1KB/ 43.5KB/  00:26    
 +  The following 7 packages will be installed:
 +  
 +          Installing pcre: 8.33
 +          Installing postfix: 2.7.15,1
 +          Installing postfix: 2.8.16,1
 +          Installing postfix: 2.9.8,1
 +          Installing dovecot: 1.2.17
 +          Installing dovecot: 2.2.9
 +          Installing postfix: 2.10.2,1
 +  
 +  The installation will require 80 MB more space
 +  
 +  13 MB to be downloaded
 +  
 +  Proceed with installing packages [y/N]: 
 +
 +...das wollen wir natürlich nicht...
 +
 +deshalb müssen wir immer erst den Paketnamen mit Versionsnummer ermitteln:
 +  root@FreeBSD10:~ # pkg search postfix
 +  postfix-2.10.2,1
 +  postfix-2.7.15,1
 +  postfix-2.8.16,1
 +  postfix-2.9.8,1
 +  postfix-current-2.11.20131001,4
 +  postfix-logwatch-1.40.00
 +  postfix-policyd-sf-1.82_1,1
 +  postfix-policyd-spf-perl-2.007
 +  postfix-policyd-weight-0.1.15.1_2
 +  postfix-postfwd-1.35
 +  postfixadmin-2.3.6
 +  py27-postfix-policyd-spf-python-1.2
 +  trac-email2trac-postfix-2.6.2
 +  
 +  root@FreeBSD10:~ # pkg search dovecot
 +  cyrus2dovecot-1.2
 +  dovecot-1.2.17
 +  dovecot-2.2.9
 +  dovecot-antispam-1.3_1,1
 +  dovecot-managesieve-0.11.13
 +  dovecot-pigeonhole-0.4.2_1
 +  dovecot-sieve-1.2+0.1.19
 +  dovecot2-antispam-plugin-20130429_4
 +
 +jetzt können wir die Pakete installieren:
 +  root@FreeBSD10:~ # pkg install postfix-2.10.2,1 dovecot-2.2.9
 +  Updating repository catalogue
 +  digests.txz                                   100% 1043KB  38.7KB/ 43.5KB/  00:27    
 +  The following 3 packages will be installed:
 +  
 +          Installing pcre: 8.33
 +          Installing dovecot: 2.2.9
 +          Installing postfix: 2.10.2,1
 +  
 +  The installation will require 33 MB more space
 +  
 +  6 MB to be downloaded
 +  
 +  Proceed with installing packages [y/N]:
 +