Benutzer-Werkzeuge

Webseiten-Werkzeuge


freebsd:freebsd_-_paket-management

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_-_paket-management [2023-05-01 20:14:58] – [Die Ports-Options bzw. Paketkonfigurationen sichern] manfredfreebsd:freebsd_-_paket-management [2023-05-04 23:29:19] (aktuell) – [arbeiten mit dem Ports-Tree] manfred
Zeile 1: Zeile 1:
 +====== FreeBSD - Paket-Management ======
 +
 +[[https://www.admin-magazin.de/Das-Heft/2013/01/Das-neue-Paketmanagement-in-FreeBSD|Das neue Paketmanagement in FreeBSD]] - aus ''ADMIN 01/2013''
 +
 +
 +===== pkgng (ab FreeBSD 10) =====
 +
 +[[::FreeBSD:FreeBSD - PKG]]
 +
 +
 +===== pkg_xxx (bis FreeBSD 9) =====
 +
 +**"pkg_*" ist veraltet und wird seit "FreeBSD 10" nicht mehr unterstützt! Seit "FreeBSD 10" wird das Kommando [[::freebsd:FreeBSD - pkg|pkg]] (Paket: [[https://wiki.freebsd.org/pkgng|pkgng]]) für die Paketverwaltung verwendet!**
 +
 +Wer von RedHat die Arbeit mit "rpm" gewohnt ist, arbeitet unter FeeBSD am besten
 +mit den folgenden Programmen (Stand FreeBSD 4.7):
 +
 +  - pkg_add
 +  - pkg_create
 +  - pkg_delete
 +  - pkg_glob
 +  - pkg_sign
 +  - pkg_update
 +  - pkg_which
 +  - pkg_check
 +  - pkg_deinstall
 +  - pkg_fetch
 +  - pkg_info
 +  - pkg_sort
 +  - pkg_version  
 +
 +Ein installiertes Programm aus den Ports, wird in FreeBSD wie ein Paket
 +behandelt. Man kann aus den Ports auch sein eigenes Binär-Packet erstellen mit
 +"make packages", dann wird der Port installiert und anschließend ein Paket
 +daraus erstellt.
 +
 +
 +==== überflüssige Ports entfernen ====
 +
 +  * [[http://www.freebsd.org/doc/de/books/handbook/ports-using.html]]
 +
 +Denken Sie daran, installierte Ports wieder zu entfernen, wenn Sie diese nicht mehr benötigen. Um diese Arbeit zu erleichtern, können Sie den Port **//ports-mgmt/pkg_cutleaves//** installieren.
 +
 +
 +==== Einführung und bei weitem nicht vollständig ====
 +
 +weitere Info's:
 +  # man pkg_info
 +
 +installiert das Paket aus einer vorhandenen Datei (die Bash):
 +  # pkg_add bash-2.05b.004.tbz
 +
 +installiert über das Netzwerk/Internet die neueste verfühgbare Binärversion der Bash:
 +  # pkg_add -r bash
 +
 +löscht ein installiertes Paket (die Bash):
 +  # pkg_delete bash-2.05b.004
 +
 +listet alle installierten Pakete mit einer Kurzbeschreibung auf:
 +  # pkg_info
 +
 +zeigt den Pfad unterhalb von "/usr/ports/" an, in dem sich der dazugehörige Port
 +befindet (shells/bash2), das **origin**:
 +  # pkg_info -o bash-2.05b.004
 +
 +zeigt das origin von allen installierten Paketen an:
 +  # pkg_info -aoq
 +  ...
 +  net/bmon
 +  ...
 +
 +zeigt das origin von allen installierten Paketen mit dem vorangestellten Paketnamen an:
 +  # pkg_info -aoQ
 +  ...
 +  bmon-2.1.0_2:net/bmon
 +  ...
 +
 +zeigt die Beschreibung des Paketes an ==> der Inhalt der Datei "pkg-descr"
 +(less /usr/ports/shells/bash2/pkg-descr):
 +  # pkg_add -d bash-2.05b.004
 +
 +zeigt den "Prefix" (/usr/local), in dem der Port installiert wurde:
 +  # pkg_info -p [Paketname]
 +
 +alle aufgelisteten Pakete werden von diesem Paket verwendet:
 +  # pkg_info -r [Paketname]
 +
 +alle aufgelisteten Pakete verwenden dieses Paket:
 +  # pkg_info -R [Paketname]
 +
 +zeigt von jeder Datei aus dem Paket den vollen Pfad:
 +  # pkg_info -L [Paketname]
 +
 +listet alle Dateien aus dem Paket auf, die seit der Installation verändert oder
 +manipuliert wurden.
 +Es werden natürlich auch Konfigurationsdateien aufgelistet, in denen man
 +Einstellungen vorgenommen hat.
 +  # pkg_info -g [Paketname]
 +
 +Mit der folgenden Kommandozeile kann man sich ALLE veränderten Dateien anzeigen
 +lassen:
 +  # pkg_info -g `pkg_info | awk '{print $1}'` | grep ^'/' | less
 +
 +zeigt das Paket, zu dem die ausführbare Datei gehört:
 +  # pkg_info -W bash
 +  /usr/local/bin/bash was installed by package bash-2.05b.004
 +
 +nur das eine Paket entfernen:
 +  # pkg_delete bash-2.05b.004
 +
 +eine Paket mit allen anderen Paketen, die dieses Paket benötigen (rekursiv), entfernen:
 +  # pkg_delete -r bash-2.05b.004
 +
 +
 +===== Der Ports-Tree =====
 +
 +
 +==== Die Ports-Options bzw. Paketkonfigurationen sichern ====
 +
 +Bevor ein Port installiert wird, der konfigurierbar ist,
 +wird in seinem Verzeichnis dieser Aufruf gestartet:
 +  > make config
 +  > make config-recursive
 +
 +Die hier vorgenommenen Einstellungen werden in diesem Verzeichnis abgelegt:
 +  /var/db/ports/
 +
 +Man braucht also nur dieses Verzeichnis zu sichern:
 +  > tar czf ports_options.tgz /var/db/ports/
 +
 +
 +==== arbeiten mit dem Ports-Tree ====
 +
 +wenn man nicht weiß wo sich ein Paket im Ports-Tree befindet, dann kann man das z.B. so rausfinden:
 +  > whereis dokuwiki
 +  dokuwiki: /usr/ports/www/dokuwiki
 +  
 +  > whereis vim
 +  vim: /usr/local/bin/vim /usr/local/man/man1/vim.1.gz /usr/ports/editors/vim
 +
 +oder mit etwas mehr Informationen (//Pattern-Suche//), so:
 +  > cd /usr/ports]
 +  > make search name=vim
 +
 +ein Programm im Ports-Tree konfigurieren
 +  > cd /usr/ports/editors/vim
 +  > make clean
 +  > make config-recursive
 +
 +ein Programm im Ports-Tree bauen
 +  > cd /usr/ports/editors/vim
 +  > make
 +
 +ein Programm aus dem Ports-Tree deinstallieren //(wenn bereits eine alte Version installiert ist)//
 +  > cd /usr/ports/editors/vim
 +  > make deinstall
 +
 +ein Programm aus dem Ports-Tree installieren
 +  > cd /usr/ports/editors/vim
 +  > make install
 +
 +aus dem Ports-Tree ein Paket bauen
 +  > cd /usr/ports/editors/vim
 +  > make package
 +
 +nachdem der Ports-Tree erneuert wurde, lassen wir uns von den installierten Paketen die veralteten Versionen anzeigen
 +  > pkg version -l "<"
 +  math/Imath                         <
 +  devel/abseil                       <
 +  multimedia/aom                     <
 +  ...
 +  
 +  > pkg version -ol "<"
 +  Imath-3.1.3                        <
 +  abseil-20211102.0                  <
 +  aom-3.2.0_1                        <
 +  ...
 +
 +von jedem Paket den Platzbedarf auf der Platte anzeigen (im Megabyte):
 +  # pkgdu -m
 +
 +
 +==== Fehler ====
 +
 +  ### Fehler:
 +  # ffmpeg -i
 +  ld-elf.so.1: Shared object "libunistring.so.2" not found, required by "libidn2.so.0"
 +  
 +  ### Lösung:
 +  # find /usr/ -type f | grep -F libunistring.so
 +  /usr/jails/testjail/usr/local/lib/libunistring.so.5.0.0
 +  /usr/local/lib/libunistring.so.5.0.0
 +  
 +  # ln -s /usr/local/lib/libunistring.so.5.0.0 /usr/local/lib/libunistring.so.2
 +