Paketverwaltung
Packagemanagement Programme sind zuständig für die Aktualisierung, Installation und Deinstallation von Paketen und Programmen.
Ein Paket beinhaltet u.a. Programmdateien, Manpages, Konfigurationsdateien, aber auch Metadaten über Abhängigkeiten zu anderen Paketen sowie Paketname und Version. Die Pakete werden in den Repoistories zu Verzeichnisse zusammengefasst auf die dass Paketverwaltungstool zugreift.
Linux Distributoren haben die Kernpakete und ihre Softwarezusammenstellung in verschiedene Repoistories (Quellen) zusammengefasst.
Bei BSD/Unix Systemen kann bei der Installation von Software die Ports Sammlung oder Pakete (pkg) verwendet werden.
Debian
Debian Systeme nutzen als Paket Management System „apt“ (Advanced Pagaging Tool) und „dpkg“ (Debianpackage). Bei Debian werden die Kernpaket Quellen in folgende Zweige unterteilt.
- Stable ⇒ Kern und Softwarepakete aus den Quellen sind von den Paketbetreuern als zuverlässig und sicher deklariert worden.
- Backports ⇒ Neuere Softwarepakete, die aus Unstable portiert wurden.
- Unstable ⇒ Kern und Softwarepakete sind aktueller und enthalten ggf. mehr Bugs.
- Testing ⇒ Neue Kern und Softwarepakete, die noch nicht ausreichend getestet wurden.
Bei Debian wird ausschließlich freie Software unter GPL Lizenz in den Paketquellen aufgenommen. Für unfreie Softwarepakete kann die Debian Quelle …
- Nonfree ⇒ Beinhaltet unfreie Softwarepakete, die von Debian nicht unterstützt werden.
aktiviert werden.
Debian pflegt eine Packages Seite, in der alle verfügbaren Pakete und deren Abhängigkeiten eingesehen und heruntergeladen werden können.
dpkg
Das Paketverwaltungs Programm „dpkg“ ist in der Lage Pakete zu installieren, upgraden, entfernen, auf abhängige Pakete testen und Debian Pakete zu bauen. Es ist jedoch nicht möglich Abhängigkeiten aufzulösen oder Paketquellen selbstständig zu laden.
Syntax:
- dpkg [opt] [paket]
Optionen:
- -i [pfad/paketname] ⇒ --install, installiert Paket.
- -l [paket] ⇒ --list, listet alle installierten Pakete zu Paket.
- -L [paket] ⇒ --listfiles, listet alle installierten Pakete zu [paket] und deren Inhalt.
- -C ⇒ Sucht nach Paketen, die nur teilweise installiert wurden.
- -s [paket] ⇒ --status, zeigt Informationen, Abhängigkeiten, Konflikte über Installiertes Paket.
- --unpack [paketdatei] ⇒ Entpackt das Paket, ohne es zu konfigurieren.
- --configure [paket] ⇒ Konfiguriert ein entpacktes, nicht konfiguriertes Paket. Mit der Option „-a“ oder --pending anstelle von [paket], werden alle entpackten, nicht konfigurierten Pakete konfiguriert (dies gilt auch für --remove).
- dpkg-reconfigure ⇒ konfiguriert ein bereits konfiguriertes Paket neu.
- -r [paket] ⇒ --remove, entfernt installiertes Paket. --remove mit der zusätzlichen Option --purge entfernt auch die konfigurationsdateien des Pakets.
- --get-selections [paket[-muster]] ⇒ Zeigt liste von Paketauswahlen (installiert, deinsalliert). Ohne Muster werden vollständig gelöschte Pakete nicht angezeigt.
- --set-selections [paket] [zustand] ⇒ Setzt den Zustand der Paketauswahl auf install, hold, deinstall oder purge.
- --clear-selections ⇒ Setzt den Zustand von jedem nicht essentiellen Paket auf deinstall. (vor --set-selections eingesetzt werden alle Pakete deinstalliert, die nicht in der Liste von --set-selections vorkommen.)
- --yet-to-unpack ⇒ sucht nach Pakete, die zur Installation ausgewählt, jedoch nicht installiert wurden.
- --print-architecture ⇒ gibt die Architektur der Pakete aus, z.B (i386).
- --help ⇒ kurze Hilfe.
- --version ⇒ Zeigt dpkg Versionsinformationen.
Beispiele
dpkg -i apache2-68.deb
Installiert das Paket apache2-68.
hans@home:~$ dpkg -s nautilus Package: nautilus Status: install ok installed Priority: optional Section: gnome Installed-Size: 3112 Maintainer: Josselin Mouette <joss@debian.org> Architecture: i386 Version: 2.30.1-2squeeze1 Replaces: libnautilus2-2 Provides: nautilus-extensions-2.0 Depends: libatk1.0-0 (>= 1.29.3), libc6 (>= 2.7), libcairo2 (>= 1.2.4), libdbus-glib-1-2 (>= 0.78), libexempi3 (>= 2.1.0), libexif12, libgail18 (>= 1.18.0), libgconf2-4 (>= 2.27.0), libglib2.0-0 (>= 2.24.0), libgnome-desktop-2-17, libgtk2.0-0 (>= 2.20.0), libice6 (>= 1:1.0.0), libnautilus-extension1 (>= 2.30), libpango1.0-0 (>= 1.20.0), libselinux1 (>= 1.32), libsm6, libunique-1.0-0 (>= 1.0.0), libx11-6, libxml2 (>= 2.7.4), libxrender1, nautilus-data (>= 2.30), nautilus-data (<< 2.31), shared-mime-info (>= 0.50), desktop-file-utils (>= 0.7), gvfs (>= 1.3.2), libglib2.0-data Recommends: desktop-base (>= 0.2), eject, brasero (>= 2.26), librsvg2-common, synaptic, app-install-data, gvfs-backends, consolekit Suggests: eog, evince | pdf-viewer, totem | mp3-decoder, xdg-user-dirs, tracker Breaks: gnome-session (<< 2.28), gnome-volume-manager (<< 2.24), rhythmbox (<< 0.12) Conflicts: libnautilus2-2, libnautilus2-dev Description: file manager and graphical shell for GNOME Nautilus is the official file manager for the GNOME desktop. It allows to browse directories, preview files and launch applications associated with them. It is also responsible for handling the icons on the GNOME desktop. It works on local and remote filesystems. . Several icon themes and components for viewing different kinds of files are available in separate packages. Homepage: http://www.gnome.org/projects/nautilus/
Zeigt Informationen und Abhängigkeiten von Paket.
user@home:~$ dpkg -l | grep apache2 ii apache2-utils 2.2.14-5ubuntu8.4 utility programs for webservers
Zeigt alle Installierten Pakete zu „apache2“.
apt-get source [paket]
Paketquellen herunterladen.
apt-get build-dep [paket]
Alle Pakete installieren, die für übersetzung paket notwendig sind.
dpkg -i /pfad zu/[paket]
Paket installieren.
Defekte Pakete auflisten und löschen.
Defekte Pakete auflisten.
root@home:~# dpkg --list | grep ^rc rc drascula 1.0+ds2-2 all classic 2D point and click adventure game -- English version rc game-data-packager 49.1 all Installer for game data files rc game-data-packager-runtime 49.1 all Launcher for proprietary games rc kdepim-runtime 4:16.04.2-2+b2 amd64 runtime components for Akonadi KDE rc kf5-kdepimlibs-kio-plugins 4:16.04.2-2 amd64 kio slaves used by KDE PIM applications rc libkf5gapi-data 5.1.0-2 all Google API library for KDE -- data files rc libvlccore8:amd64 2.2.7-1~deb9u1 amd64 base library for VLC and its modules rc linux-image-4.9.0-4-amd64 4.9.65-3+deb9u1 amd64 Linux 4.9 for 64-bit PCs rc linux-image-4.9.0-5-amd64 4.9.65-3+deb9u2 amd64 Linux 4.9 for 64-bit PCs rc linux-image-4.9.0-6-amd64 4.9.88-1+deb9u1 amd64 Linux 4.9 for 64-bit PCs
Defekte Pakete löschen.
root@home:~# dpkg --purge `dpkg --get-selections | awk '/deinstall/ {print $1}'` (Lese Datenbank ... 461252 Dateien und Verzeichnisse sind derzeit installiert.) Löschen der Konfigurationsdateien von drascula (1.0+ds2-2) ... Löschen der Konfigurationsdateien von game-data-packager (49.1) ... Löschen der Konfigurationsdateien von game-data-packager-runtime (49.1) ... Löschen der Konfigurationsdateien von kdepim-runtime (4:16.04.2-2+b2) ... Löschen der Konfigurationsdateien von kf5-kdepimlibs-kio-plugins (4:16.04.2-2) ... Löschen der Konfigurationsdateien von libkf5gapi-data (5.1.0-2) ... Löschen der Konfigurationsdateien von libvlccore8:amd64 (2.2.7-1~deb9u1) ... Löschen der Konfigurationsdateien von linux-image-4.9.0-4-amd64 (4.9.65-3+deb9u1) ... rmdir: konnte '/lib/modules/4.9.0-4-amd64' nicht entfernen: Das Verzeichnis ist nicht leer dpkg: Warnung: Während Entfernens von linux-image-4.9.0-4-amd64 ist Verzeichnis »/lib/modules/4.9.0-4-amd64« nicht leer, wird daher nicht gelöscht Löschen der Konfigurationsdateien von linux-image-4.9.0-5-amd64 (4.9.65-3+deb9u2) ... rmdir: konnte '/lib/modules/4.9.0-5-amd64' nicht entfernen: Das Verzeichnis ist nicht leer dpkg: Warnung: Während Entfernens von linux-image-4.9.0-5-amd64 ist Verzeichnis »/lib/modules/4.9.0-5-amd64« nicht leer, wird daher nicht gelöscht Löschen der Konfigurationsdateien von linux-image-4.9.0-6-amd64 (4.9.88-1+deb9u1) ... rmdir: konnte '/lib/modules/4.9.0-6-amd64' nicht entfernen: Das Verzeichnis ist nicht leer dpkg: Warnung: Während Entfernens von linux-image-4.9.0-6-amd64 ist Verzeichnis »/lib/modules/4.9.0-6-amd64« nicht leer, wird daher nicht gelöscht Trigger für menu (2.1.47+b1) werden verarbeitet ...
apt
Das Advanced Pagaging Tool „apt“ ist ein von Debian stammendes Paketverwaltungsprogramm für „*.deb“ und „rpm“ Pakete. Die Paketquellen werden in der Datei „/etc/apt/sources.list“ verwaltet.
user@home:~$ cat /etc/apt/sources.list # # deb cdrom:[Debian GNU/Linux 9.0.0 _Stretch_ - Official amd64 DVD Binary-1 20170617-13:08]/ stretch main #deb cdrom:[Debian GNU/Linux 9.0.0 _Stretch_ - Official amd64 DVD Binary-1 20170617-13:08]/ stretch main deb http://ftp.de.debian.org/debian/ stretch main non-free contrib deb-src http://ftp.de.debian.org/debian/ stretch main non-free contrib deb http://security.debian.org/debian-security stretch/updates main contrib non-free deb-src http://security.debian.org/debian-security stretch/updates main contrib non-free # stretch-updates, previously known as 'volatile' deb http://ftp.de.debian.org/debian/ stretch-updates main contrib non-free deb-src http://ftp.de.debian.org/debian/ stretch-updates main contrib non-free # stretch-backports, previously on backports.debian.org deb http://ftp.de.debian.org/debian/ stretch-backports main contrib non-free deb-src http://ftp.de.debian.org/debian/ stretch-backports main contrib non-free # Oracle Virtual Box #deb http://download.virtualbox.org/virtualbox/debian stretch contrib # Debian Multimedia Pageges #deb ftp://ftp.deb-multimedia.org stretch main non-free #deb ftp://ftp.deb-multimedia.org stretch-backports main
- deb cdrom → Quellen aus Installations CD.
- deb http → Quellen über http Server.
- deb ftp → Quellen über ftp Server.
- deb-src → Debian Quellcode Pakete.
Fremde Paketquellen, wie z.B. Debian Multimedia oder Oracle Virtual Box.
Möchte man Quellen von verschiedenen Mirrors beziehen, kann das über die URL definiert werden. „http://ftp.de.debian.org“, steht für deutsche Quell Server. Eine Liste der Offiziellen Debian Mirrors.
sources.list Beispiele
Debian 6 Squeeze
Debian LTS
Seit 2014 gibt es für Debian Squeeze eine Long Term Support Unterstützung. Durch das Debian Long Term Support Projekt wurde gewährleistet, dass Debian 6 (Squeeze) weitere zwei Jahre mit Sicherheits Updates versorgt wurde.
deb http://http.debian.net/debian/ squeeze-lts main contrib non-free deb-src http://http.debian.net/debian/ squeeze-lts main contrib non-free
Diese „sources.list“ Einträge aktivieren die Langzeitunterstützung für Debian Squeeze.
Ab Debian 9.2 (Stretch) wurde apt mit Update Optionen erweitert.
Syntax:
- apt [optionen]
Optionen:
- update ⇒ Die in der /etc/apt/sources.list eingetragenen Quellen werden nach neueren Dateien überprüft.
- list –upgradable ⇒ Wenn Update verfügbar sind, können so die Dateien angezeigt werden, die upgedated werden können.
- upgrade ⇒ Führt das Update aus.
- dist-upgrade ⇒ Führt ein Distributions Upgrade durch.
- autoremove ⇒ Entfernt nicht mehr benötigte Dateien.
- clean ⇒ Räumt den apt cache auf.
root@home:~# apt update Ign:1 http://ftp.de.debian.org/debian stretch InRelease Holen:2 http://ftp.de.debian.org/debian stretch-updates InRelease [91,0 kB] Holen:3 http://ftp.de.debian.org/debian stretch-backports InRelease [91,8 kB] Holen:4 http://ftp.de.debian.org/debian stretch Release [118 kB] Holen:5 http://ftp.de.debian.org/debian stretch-updates/main Sources [3.564 B] Holen:6 http://ftp.de.debian.org/debian stretch-updates/main amd64 Packages [5.976 B] Holen:7 http://ftp.de.debian.org/debian stretch-updates/main Translation-en [3.583 B] .... Holen:42 http://security.debian.org/debian-security stretch/updates/contrib Translation-en [1.023 B] Holen:43 http://security.debian.org/debian-security stretch/updates/non-free amd64 Packages [1.276 B] Holen:44 http://security.debian.org/debian-security stretch/updates/non-free Translation-en [481 B] Es wurden 32,6 MB in 2 min 1 s geholt (268 kB/s). Paketlisten werden gelesen... Fertig Abhängigkeitsbaum wird aufgebaut. Statusinformationen werden eingelesen.... Fertig Aktualisierung für 2 Pakete verfügbar. Führen Sie »apt list --upgradable« aus, um sie anzuzeigen.
root@home:~# apt list --upgradeable Auflistung... Fertig libssl1.0.2/stable 1.0.2l-2+deb9u2 amd64 [aktualisierbar von: 1.0.2l-2+deb9u1] rsync/stable 3.1.2-1+deb9u1 amd64 [aktualisierbar von: 3.1.2-1]
root@home:~# apt upgrade
Paketlisten werden gelesen... Fertig
Abhängigkeitsbaum wird aufgebaut.
Statusinformationen werden eingelesen.... Fertig
Paketaktualisierung (Upgrade) wird berechnet... Fertig
Die folgenden Pakete werden aktualisiert (Upgrade):
libssl1.0.2 rsync
2 aktualisiert, 0 neu installiert, 0 zu entfernen und 0 nicht aktualisiert.
Es müssen 1.687 kB an Archiven heruntergeladen werden.
Nach dieser Operation werden 0 B Plattenplatz zusätzlich benutzt.
Möchten Sie fortfahren? [J/n] J
Holen:1 http://security.debian.org/debian-security stretch/updates/main amd64 libssl1.0.2 amd64 1.0.2l-2+deb9u2 [1.294 kB]
Holen:2 http://security.debian.org/debian-security stretch/updates/main amd64 rsync amd64 3.1.2-1+deb9u1 [393 kB]
Es wurden 1.687 kB in 2 min 2 s geholt (13,8 kB/s).
Lese Changelogs... Fertig
Vorkonfiguration der Pakete ...
(Lese Datenbank ... 433902 Dateien und Verzeichnisse sind derzeit installiert.)
Vorbereitung zum Entpacken von .../libssl1.0.2_1.0.2l-2+deb9u2_amd64.deb ...
Entpacken von libssl1.0.2:amd64 (1.0.2l-2+deb9u2) über (1.0.2l-2+deb9u1) ...
Vorbereitung zum Entpacken von .../rsync_3.1.2-1+deb9u1_amd64.deb ...
Entpacken von rsync (3.1.2-1+deb9u1) über (3.1.2-1) ...
rsync (3.1.2-1+deb9u1) wird eingerichtet ...
libssl1.0.2:amd64 (1.0.2l-2+deb9u2) wird eingerichtet ...
Trigger für libc-bin (2.24-11+deb9u1) werden verarbeitet ...
Trigger für systemd (232-25+deb9u1) werden verarbeitet ...
Trigger für man-db (2.7.6.1-2) werden verarbeitet ...
apt-get
Ein Kommandozeilenwerkzeug zur Verwaltung von Paketen. Mit „apt-get“ können Quelldateien aktualisiert, Pakete installiert, aktualisiert und entfernt werden. Hierfür werden root Rechte benötigt. Apt kann Paketabhängigkeiten selbstständig auflösen und gibt sie auf der Konsole aus.
Syntax:
- apt-get [opt] [paketname]
Optionen:
- update ⇒ Lädt die aktuellen Paketdaten der in der sources.list eingetragenen Reposistories. Diese Option sollte vor jedem Upgrade durchgeführt werden.
- upgrade ⇒ Aktualisiert ausschließlich installierte Pakete, keine Pakete werden gelöscht oder neue hinzugefügt.
- dselect-upgrade ⇒ Entfernen von alten und Installieren von neuen Paketen.
- safe-upgrade ⇒ Führt ein sicheres upgrade durch.
- dist-upgrade ⇒ Löst Paketabhängigkeiten von neueren Paketversionen auf und aktualisiert die Pakete, hier werden nicht mehr benötigte Pakete gelöscht, ggf. auch hinzugefügt.
- install [paket(e)] ⇒ Installiert Paket(e), Abhängigkeiten zu anderen Paketen werden automatisch aufgelöst.
- -t [release] [install] [paket(e)] ⇒ Installiert Pakete mit Durchsetzung von Richtlinien z.B. unstable oder backports.
- remove [paket(e)] ⇒ Löscht Paket(e).
- autoremove ⇒ Entfernt Pakete, die automatisch installiert wurden um Abhängigkeiten aufzulösen, die jedoch nicht mehr benötigt werden.
- remove --purge [paket(e)] ⇒ Löscht Paket(e) und die Konfigurationsdateien.
- source [paket(e)] ⇒ Lädt Quellpaket von deb-src gelisteten Repositories als tar.gz Archiv ins aktuellen Verzeichnis. Das Quellpaket kann dann mit „dpkg-buildpackage“ übersetzt werden, um z.B. Installationsoptionen zu verändern und mit 2dpkg -i [paket]„ installiert werden.
- build-dep [paket(e)] ⇒ Hier werden alle fürs übersetzen des Sourcepaketes benötigten Pakete installiert.
- check ⇒ Aktualisiert den Paketzwischenspeicher und prüft ob beschädigte Abhängigkeiten vorliegen.
- clean ⇒ Löscht den Paketcache in “/var/cache/apt/archives/„. (Hier werden heruntergeladene Pakete gespeichert)
- autoclean ⇒ Wie clean, entfernt aber nur Pakete, die nicht mehr heruntergeladen werden können und größtenteils nutzlos sind.
- --no-install-recommends ⇒ Empfohlene Pakete bei der Installation nicht als Abhängigkeit betrachten.
- -d [paket] ⇒ --download-only, Paketdateien nur herunterladen.
- -f ⇒ --fix-broken, versucht ein System von beschädigten Abhängigkeiten zu befreien.
- -m ⇒ --ignore-missing, --fix-missing, hält fehlerhafte Paketdateien zurück oder wenn die Integritätsprüfung nach dem herunterladen fehlschlägt.
- -s ⇒ --simulate, führt eine Simulation von Ereignissen durch, die eintreten könnten.
- -u ⇒ --show-upgraded, zeigt Pakete die upgraded werden sollten und listet Pakete von denen ein Upgrade gemacht wurde.
- -V ⇒ --verbose-versions, zeigt Versionen für Pakete, die Aktualisiert oder Installiert wurden.
- -b ⇒ --compile, --build, kompilert Quellpakete.
- --ignore-hold ⇒ Ignoriert das zurückhalten von Pakete.
- --reinstall [paket] ⇒ Installiertes Paket erneut installieren.
- -h ⇒ kurze Hilfe.
- -v ⇒ Version des Programms.
Beispiele
root@home:# apt-get update .... OK http://ftp.de.debian.org squeeze/main i386 Packages OK http://ftp.de.debian.org squeeze/contrib i386 Packages OK http://ftp.de.debian.org squeeze-updates/main i386 Packages .... Paketlisten werden gelesen... Fertig
Aktuelle Paketdaten aus der Datei “/etc/apt/sources.list„ neu laden.
root@home:# apt-get upgrade Paketlisten werden gelesen... Fertig Abhängigkeitsbaum wird aufgebaut Statusinformationen werden eingelesen... Fertig 0 aktualisiert, 0 neu installiert, 0 zu entfernen und 0 nicht aktualisiert.
Vorhandene Aktualisierung von Installierten Paketen durchführen. Hier ist das System auf dem aktuellen Stand.
root@home:# apt-get -t squeeze-backports install nvidia-installer-cleanup libgl1-nvidia-glx nvidia-alternative nvidia-support xorg-video-abi-10 xserver-xorg-core nvidia-kernel-295.59 nvidia-vdpau-driver nvidia-kernel-dkms nvidia-kernel-source nvidia-settings glx-alternative-nvidia libgl1-nvidia-alternatives libglx-nvidia-alternatives nvidia-kernel-common nvidia-glx quilt
Installiert auf einem Debian Squeeze System Nvidia-GLX Treiber aus squeeze-backports.
dpkg -l|awk '/^ii/{ print $2 }'|grep -v -e ^lib -e -dev -e $(uname -r) > paketliste
apt-get install $(<paketliste)
apt-cache
Stellt Ausgaben der Paket-Metadaten bereit und führt Operationen auf dem Paketzwischenspeicher von „apt“ durch.
Syntax:
- apt-cache [opt] [paket(e)]
Optionen:
- search ⇒ Sucht nach Paketen zu [paket].
- show ⇒ Zeigt infos zu [paket] aus der Packages Datei des Repoistories.
- add ⇒ Fügt Paket Index Dateien zum Zwischenspeicher hinzu. Dies dient nur der Fehlersuche.
- gencaches ⇒ Bildet Quellen und Paketzwischenspeicher aus den Quellen von „sources.list“ und “/var/lib/dpkg/status. (Gleiche Operationen wie apt-get check).
- showpkg ⇒ Zeigt Informationen über Pakete.
- stats ⇒ Zeigt Statistiken über den Zwischenspeicher.
- showsrc ⇒ Zeigt alle Quelldatensätze des Pakets.
- dump ⇒ Zeigt Programmausdruck von Paketen im Zwischenspeicher.
- dumpavail ⇒ Gibt eine verfügbare Liste auf „stout“ aus.
- unmet ⇒ Zeigt unerfüllte Abhängigkeiten im Zwischenspeicher.
- depends ⇒ Zeigt Liste von jeder Abhängigkeit, die ein Paket hat und die Pakete, die Abhängigkeiten erfüllen können.
- policy ⇒ Gibt Prioritäten der Quellen aus, ohne Angabe von Paketen die Prioritäten aller Quellen.
- madison ⇒ Zeigt Informationen über Pakete in Tabellenform.
Beispiele
hans@home:~$ apt-cache search geany geany-plugin-addons - miscellanous plugins for Geany geany-plugin-doc - a documentation plugin for Geany geany-plugin-gdb - GDB plugin for Geany ....
hans@home:~$ apt-cache show geany Package: geany Priority: optional Section: devel Installed-Size: 7216 Maintainer: Damián Viano <des@debian.org> Architecture: i386 Version: 0.19.1-1 ....
apt-cdrom
Fügt eine CD-Rom zu den Quellen der Datei „/etc/apt/sources.list“ hinzu.
Syntax:
- apt-cdrom [opt]
Optionen:
- add ⇒ Fügt ein neues Medium zur Quellenliste hinzu.
- -d ⇒ Einhängpunkt der CD-Rom. (Muss in der Datei „/etc/fstab“ eingetragen sein.)
- -r ⇒ Medium umbenennen.
- -m ⇒ Hängt die CD-Rom nicht ein.
- -f ⇒ Schnelle Kopie. Prüft nicht jedes Paket.
- -a ⇒ Gründliche Paketdurchsuchung. Nimmt alle Pakete auf.
- -n ⇒ Ändert die „sources.list“ Datei nicht und schreibt keine Indexdateien.
- -c [file] ⇒ Liest zuerst die Standardkonfigurationsdatei, danach [file].
- -h ⇒ Kurze Hilfe.
- -v ⇒ Programmversion.
Beispiel
hans@home:~$ apt-cdrom -v apt 0.8.10.3 für i386, kompiliert am Apr 15 2011 21:02:29
aptitude
Paketmanagement Tool zum installieren, aktualisieren und löschen von Paketen. „aptitude“ kann auf der Konsole oder im grafischen Modus gestartet werden. Das erste Argument das nicht mit [-] beginnt, wird als Befehl für das Programm interpretiert. Ohne Befehl startet „aptitude“ im visuellen Modus.
Syntax:
- aptitude [opt] [paket]
Optionen:
- update ⇒ Liste der APT Quellen erneuern.
- upgrade ⇒ Installierte Pakete upgraden.
- safe-upgrade ⇒ führt ein sicheres Upgrade durch. Es werden keine Pakete gelöscht.
- full-upgrade ⇒ führt Upgrade aller Installierten Pakete durch, nicht mehr benötigte Pakete werden gelöscht oder neue heruntergeladen.
- keep-all ⇒ löscht alle vorgemerkten änderungen.
- search [paket(e)] ⇒ Sucht nach Paketen.
- show ⇒ zeigt Informationen über Pakete.
- forbid-version [paket(e)=version] ⇒ verbietet einem Paket auf eine bestimmte Version zu aktualisieren, lässt jedoch Upgrades auf spätere Versionen zu.
- install [paket(e)] ⇒ installiert Paket(e).
- remove [paket(e)] ⇒ löscht installierte Pakete.
- reinstall [paket(e)] ⇒ installiert ein Paket neu.
- purge [paket(e)] ⇒ löscht auch die Konfigurationsdatei des Pakets.
- clean ⇒ löscht alle zwischengespeicherten Dateien aus dem Cache.
- autoclean ⇒ löscht alle zwischengespeicherten Paketdateien aus dem Cache, die nicht mehr heruntergeladen werden können.
- i ⇒ Paket installiert.
- p ⇒ nicht installierte Pakete.
- c ⇒ früher installierte Pakete.
- d ⇒ listet zu deinstallierende Pakete.
- p ⇒ listet zu deinstallierende Pakete purge.
- A ⇒ listet automatisch installiertes Paket (optional).
- M ⇒ als automatisch installiert listen.
- m ⇒ als automatisch installiert demarkieren.
- = ⇒ Paket nicht upgraden.
- h ⇒ hold. Paket nicht upgraden.
- / ⇒ Suchmaske öffnen.
- ^ ⇒ anfang von Paket.
- $ ⇒ ende Paketname.
- [paket..] ⇒ Pakete mit vorkommen [paket..].
Optionen(visueller Modus):
- u ⇒ Herunderladen der aktuellen Reposistories Pakete.
- q ⇒ in der Liste hochnavigieren. Verlassen des Programms.
- + ⇒ Installieren/Updaten des Paketes.
- - ⇒ Deinstallieren von Paketen.
- _ ⇒ Deinstallation mit Konfigurationsdateien.
- U ⇒ ausgewälte Pakete Upgraden.
- G ⇒ listet ausgewählte Aktionen. Nochmal G führt sie dann aus.
Redhat
rpm
Der Redhat Package Manager wurde von Redhat entwickelt, mittlerweile ist es ein eigenständiges Open Source Projekt. rpm ist vergleichbar mit dpkg von Debian. Bei der Installation von rpm - Paketen werden erforderliche Informationen als Dateien im Verzeichnis „/var/lib/rpm“ dargestellt, die Konfigurationsdateien zu „rpm“ befinden sich in der Datei „/etc/rpmrc“ oder „~/.rpmrc“.
Die Suchmaschiene rpmfind kann genutzt werden, um Pakete zu finden.
Syntax:
- rpm [opt] [paket]
Optionen:
- -i, --install ⇒ Pakete installieren.
- -U, --upgrade ⇒ Aktualisiert Paket(e).
- -F ⇒ Aktualisiert Paket nur, wenn eine Frühere Version installiert ist.
- -e, --erase ⇒ erase - Pakete deinstallieren.
- -h ⇒ Prozess veranschaulichen (Fortschritt) mit ###…
- --import [key] ⇒ Installiert eine Schlüsseldatei.
- -V, --verify ⇒ Prüft den Zustand eines Pakets. Die Dateien des Pakets, die seit der Installation verändert wurden.
- -qa [--last] ⇒ Query all. Zeigt eine Liste aller installierten Pakete, mit der Option --last werdendie Pakete nach Installationsdatum sortiert.
- -qi [paket] ⇒ Liefert Informationen zu einem Installierten Paket.
- -qip [paket] ⇒ Liefert Informationen zu einem nicht Installierten Paket.
- -ql [paket] ⇒ Zeigt alle zugehörigen Dateien des Pakets.
- -qpl [paket] ⇒ Zeigt alle Dateien des heruntergeladenen oder nicht installierten Pakets.
- -qd [paket] ⇒ Zeigt alle Dokumentationsdateien von Paket.
- -qc [paket] ⇒ Listet alle Konfigurationsdateien von Paket.
- -qf [pfad/datei] ⇒ Zeigt von welchen Paket eine Datei gehört.
- -qp --requires [paket] ⇒ Zeigt alle Abhängigkeiten eines heruntergeladenen Pakets. Ohne die Opt. p für installierte Pakete.
- -q --requires [paket] ⇒ Zeigt von welchen Paketen installiertes paket abhängt.
- -q --provides [paketname] ⇒ Zeigt, welche Attribute(capabilities) paket zur Verfügung stellt.
- -q --whatprovides [attr] ⇒ Zeigt, welches Paket das Attribut(Ergebnis von requires) bereits zur Verfügung stellt.
- -q --whatrequires [attr] ⇒ Zeigt, welche Pakete auf das Attribut(Ergebnis von requires) angewiesen sind.
- -? ⇒ Hilfe anzeigen.
- -v ⇒ Verbose Mode, gibt mehr Informationen aus.
- -vv ⇒ Wie -v, gibt noch mehr Informationen aus.
Beispiele
[root@home ~]# rpm -i vim-5.0.99.i386.rpm
Installiert vim-5.0.99.i386.
[root@home ~]# rpm -qf /usr/lib/libssl3.so nss-3.13.5-4.el5_8
Datei libssl3.so gehört zu Paket nss-3.13.5-4.el5_8.
[root@home ~]# rpm -qc cups ... /etc/cups/client.conf /etc/cups/cupsd.conf ...
Zeigt alle Konfigurationsdateien von Cups.
[root@home ~]# rpm -q --provides cups ... /usr/bin/cancel /usr/bin/lpd ...
Zeigt Attribute, die cups zur Verfügung stellt.
yum
Yum (Yellow Dog Updater Modified) ist ein Paketverwaltungswerkzeug für Redhat Pakete. Yum löst alle Paketabhängigkeiten auf und installiert sie, dabei werden alle bekannten Paketquellen aus dem Verzeichnis „/etc/yum.repos.d/“ berücksichtigt. Die Heruntergeladenen Dateien werden in „/var/cache/yum/“ zwischengespeichert. Yum kann duch Plugins erweitert werden, um noch mehr Funktionen bereitzustellen.
- /etc/yum.conf ⇒ Yum Konfigurationsdatei.
- /etc/yum.repos.d/ ⇒ Verzeichnis für Paketquellen.
- /etc/yum/pluginconf.d/ ⇒ Yum Plugins.
- man yum.conf ⇒ manpage für yum.conf.
[root@home etc]# tree yum yum ├── fssnap.d ├── pluginconf.d │ └── langpacks.conf ├── protected.d │ └── systemd.conf ├── vars │ ├── releasever │ └── slreleasever ├── version-groups.conf ├── yum-cron.conf ├── yum-cron.conf.augsave └── yum-cron-hourly.conf 4 directories, 8 files
Syntax:
- yum [opt] [paketname]
Optionen:
- provides [paketname] ⇒ Sucht das zu [paketname] gehörige Paket.
- install [paketname] ⇒ Durchsucht aktive Repositories nach Paketname und installiert es wenn vorhanden.
- remove|erase [paketname] ⇒ Entfernt Paket und alle Abhängigkeiten.
- reinstall [paketname] ⇒ Installiert Paket neu.
- search [paketname] ⇒ Durchsucht Paketnamen und Paketinformationen nach [paketname].
- list *paket* ⇒ Sucht nach Paketen in dem 'paket' vorkommt.
- yum list recent ⇒ Listet Pakete auf, die kürzlich den Repositories hinzugefügt wurden.
- info [paketname] ⇒ Listet eine Beschreibung und Infos über [paketname].
- update [paketname] ⇒ Wenn im Repositorie vorhanden, wird [paketname] installiert.
- update ⇒ Aktualisiert alle installierten Pakete.
- check-update ⇒ Aktualisierungen anzeigen lassen.
- clean ⇒ Löscht den Paketzwischenspeicher in „/var/cache/yum/“.
- clean all ⇒ Löscht den kompletten Paketzwischenspeicher.
- localinstall [/pfad zur/datei.rpm] ⇒ locales Paket installieren.
- repolist ⇒ Listet die Repositories auf dem System.
- --enablerepo=repo1 repo2 ⇒ Aktiviert repo's.
- --disablerepo=repo1 repo2 ⇒ Deaktiviert repo's.
Beispiele
[root@home ~]# yum update Geladene Plugins: fastestmirror, langpacks, protectbase Loading mirror speeds from cached hostfile * elrepo: nl.mirror.babylon.network * elrepo-extras: nl.mirror.babylon.network * elrepo-kernel: nl.mirror.babylon.network * epel: nl.mirror.babylon.network * epel-debuginfo: nl.mirror.babylon.network * epel-source: nl.mirror.babylon.network * remi: nl.mirror.babylon.network * remi-safe: nl.mirror.babylon.network * repos: ftp2.scientificlinux.org * repos-source: ftp2.scientificlinux.org * sl: ftp2.scientificlinux.org * sl-debuginfo: ftp2.scientificlinux.org * sl-extras: ftp2.scientificlinux.org * sl-extras-debuginfo: ftp2.scientificlinux.org * sl-extras-source: ftp2.scientificlinux.org * sl-fastbugs: ftp2.scientificlinux.org * sl-security: ftp2.scientificlinux.org * sl-source: ftp2.scientificlinux.org 317 packages excluded due to repository protections Abhängigkeiten werden aufgelöst --> Transaktionsprüfung wird ausgeführt ---> Paket gnucash.x86_64 0:2.6.17-1.el7 markiert, um aktualisiert zu werden ---> Paket gnucash.x86_64 0:2.6.18-1.el7 markiert, um eine Aktualisierung zu werden ---> Paket gnucash-docs.noarch 0:2.6.17-1.el7 markiert, um aktualisiert zu werden ---> Paket gnucash-docs.noarch 0:2.6.18-1.el7 markiert, um eine Aktualisierung zu werden --> Abhängigkeitsauflösung beendet Abhängigkeiten aufgelöst ==================================================================================================================== Package Arch Version Paketquelle Größe ==================================================================================================================== Aktualisieren: gnucash x86_64 2.6.18-1.el7 epel 9.1 M gnucash-docs noarch 2.6.18-1.el7 epel 80 M Transaktionsübersicht ==================================================================================================================== Aktualisieren 2 Pakete Gesamte Downloadgröße: 89 M Is this ok [y/d/N]: Is this ok [y/d/N]: y Downloading packages: No Presto metadata available for epel (1/2): gnucash-2.6.18-1.el7.x86_64.rpm | 9.1 MB 00:00:27 (2/2): gnucash-docs-2.6.18-1.el7.noarch.rpm | 80 MB 00:02:08 -------------------------------------------------------------------------------------------------------------------- Gesamt 711 kB/s | 89 MB 00:02:08 Running transaction check Running transaction test Transaction test succeeded Running transaction Aktualisieren : gnucash-docs-2.6.18-1.el7.noarch 1/4 Aktualisieren : gnucash-2.6.18-1.el7.x86_64 2/4 Aufräumen : gnucash-2.6.17-1.el7.x86_64 3/4 Aufräumen : gnucash-docs-2.6.17-1.el7.noarch 4/4 Überprüfung läuft: gnucash-docs-2.6.18-1.el7.noarch 1/4 Überprüfung läuft: gnucash-2.6.18-1.el7.x86_64 2/4 Überprüfung läuft: gnucash-docs-2.6.17-1.el7.noarch 3/4 Überprüfung läuft: gnucash-2.6.17-1.el7.x86_64 4/4 Aktualisiert: gnucash.x86_64 0:2.6.18-1.el7 gnucash-docs.noarch 0:2.6.18-1.el7 Komplett!
Yum prüft, ob Updates verfügbar sind, wenn ja, wird ein Dialogfeld angezeigt, ob die Updates installiert werden sollen.
[root@home ~]# yum search firefox Geladene Plugins: langpacks, protectbase 317 packages excluded due to repository protections ======================================= N/S matched: firefox ======================================= firefox.i686 : Mozilla Firefox Web browser firefox.x86_64 : Mozilla Firefox Web browser firefox-debuginfo.i686 : Debug information for package firefox firefox-debuginfo.x86_64 : Debug information for package firefox mozilla-adblockplus.noarch : Adblocking extension for Mozilla Firefox, Thunderbird, and SeaMonkey mozilla-https-everywhere.noarch : HTTPS/HSTS enforcement extension for Mozilla Firefox and SeaMonkey mozilla-noscript.noarch : JavaScript white list extension for Mozilla Firefox mozilla-requestpolicy.noarch : Firefox and Seamonkey extension that gives you control over : cross-site requests only-Übereinstimmungen in Name und Zusammenfassung, «Alles suchen» für vollständige Suche.
Nach dem Paket Firefox suchen.
[root@enterprise ~]# yum list recent Geladene Plugins: langpacks, protectbase 317 packages excluded due to repository protections Kürzlich hinzugefügte Pakete kernel-lt.x86_64 4.4.93-1.el7.elrepo elrepo-kernel kernel-lt-devel.x86_64 4.4.93-1.el7.elrepo elrepo-kernel kernel-lt-doc.noarch 4.4.93-1.el7.elrepo elrepo-kernel kernel-lt-headers.x86_64 4.4.93-1.el7.elrepo elrepo-kernel kernel-lt-tools.x86_64 4.4.93-1.el7.elrepo elrepo-kernel kernel-lt-tools-libs.x86_64 4.4.93-1.el7.elrepo elrepo-kernel kernel-lt-tools-libs-devel.x86_64 4.4.93-1.el7.elrepo elrepo-kernel kernel-ml.x86_64 4.13.8-1.el7.elrepo elrepo-kernel kernel-ml-devel.x86_64 4.13.8-1.el7.elrepo elrepo-kernel kernel-ml-doc.noarch 4.13.8-1.el7.elrepo elrepo-kernel kernel-ml-headers.x86_64 4.13.8-1.el7.elrepo elrepo-kernel kernel-ml-tools.x86_64 4.13.8-1.el7.elrepo elrepo-kern php-horde-kronolith.noarch 4.2.23-2.el7.remi remi php-pear-PHP-CodeSniffer.noarch 3.1.1-1.el7.remi remi php72-php-pecl-mongodb.x86_64 1.3.1-1.el7.remi remi php72-php-pecl-redis.x86_64 3.1.4-2.el7.remi remi php72-php-pecl-xdebug.x86_64 2.6.0-0.7.20171017.33ed33d.el7.remi remi php72-php-phalcon3.x86_64 3.2.3-1.el7.remi remi php72-php-zephir-parser.x86_64 1.1.0-1.el7.remi remi php72-zephir.noarch 0.10.3-1.el7.remi remi
Neu hinzugefügte Pakete in den Repoitorys anzeigen.
Repos
Unter „/etc/yum.repos.d“ befinden sich Konfigurationsdateien, die yum für die Quellen auswählt.
[root@home yum.repos.d]# ll insgesamt 76 -rw-r--r--. 1 root root 2150 1. Mär 03:01 elrepo.repo -rw-r--r--. 1 root root 957 12. Feb 22:03 epel.repo -rw-r--r--. 1 root root 1056 27. Dez 18:37 epel-testing.repo -rw-r--r--. 1 root root 477 31. Jul 2014 nux-dextop.repo -rw-r--r--. 1 root root 358 26. Feb 18:52 redhat.repo -rw-r--r--. 1 root root 457 10. Feb 14:27 remi-php54.repo -rw-r--r--. 1 root root 1316 10. Feb 14:27 remi-php70.repo -rw-r--r--. 1 root root 1316 10. Feb 14:27 remi-php71.repo -rw-r--r--. 1 root root 2609 1. Mär 02:55 remi.repo -rw-r--r--. 1 root root 751 10. Feb 14:27 remi-safe.repo -rw-r--r--. 1 root root 766 4. Mai 2015 repos.repo -rw-r--r--. 1 root root 692 16. Jan 19:12 sl7-fastbugs.repo -rw-r--r--. 1 root root 1170 12. Feb 21:52 sl7-other.repo -rw-r--r--. 1 root root 606 16. Jan 19:12 sl7.repo -rw-r--r--. 1 root root 1786 16. Jan 19:12 sl7-rolling.repo -rw-r--r--. 1 root root 694 16. Jan 19:12 sl7-security.repo -rw-r--r--. 1 root root 1073 16. Jan 19:12 sl7-testing.repo -rw-r--r--. 1 root root 1379 12. Feb 21:51 sl-extras.repo -rw-r--r--. 1 root root 259 22. Dez 16:26 virtualbox.repo
Scientific Linux 7 mit hinzugefügten Repos. (VirtualBox, Nux, Epel, Elrepo)
Beispiel
[sl] name=Scientific Linux $slreleasever - $basearch baseurl=http://ftp.scientificlinux.org/linux/scientific/$slreleasever/$basearch/os/ http://ftp1.scientificlinux.org/linux/scientific/$slreleasever/$basearch/os/ http://ftp2.scientificlinux.org/linux/scientific/$slreleasever/$basearch/os/ ftp://ftp.scientificlinux.org/linux/scientific/$slreleasever/$basearch/os/ #mirrorlist=http://ftp.scientificlinux.org/linux/scientific/mirrorlist/sl-base-7.txt enabled=1 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-sl file:///etc/pki/rpm-gpg/RPM-GPG-KEY-sl7
sl7.repo. Enabled=1 aktiviert und enabled=0 deaktiviert das Repo. Mit protect aus dem Plugin protectbase können Repos geschützt werden. Das macht dann Sinn, wenn Repos verschiedener Distributionen auf dem System aktiviert sind.
Repoliste
Plugins
Im Verzeichnis „/etc/yum/pluginconf.d/“ befinden sich die Konfigurationsdateien der installierten Plugins.
yum └── pluginconf.d └── langpacks.conf
Zum aktivieren oder deaktivieren der Plugins, die *.conf Dateien bearbeiten.
[main] enabled = 1
protectbase
Plugin zum schützen von Repos vor anderen aktivierten Repositorys.
Installation
- yum install yum-plugin-protectbase
- oder
- yum install yum-protectbase
Als nächstes sollten die Einstellungen der Datei „/etc/yum/pluginconf.d/protectbase.conf“, wie folgt aussehen.
[main] enabled = 1
[sl] name=Scientific Linux $slreleasever - $basearch baseurl=http://ftp.scientificlinux.org/linux/scientific/$slreleasever/$basearch/os/ http://ftp1.scientificlinux.org/linux/scientific/$slreleasever/$basearch/os/ http://ftp2.scientificlinux.org/linux/scientific/$slreleasever/$basearch/os/ ftp://ftp.scientificlinux.org/linux/scientific/$slreleasever/$basearch/os/ #mirrorlist=http://ftp.scientificlinux.org/linux/scientific/mirrorlist/sl-base-7.txt enabled=1 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-sl file:///etc/pki/rpm-gpg/RPM-GPG-KEY-sl7 protect=1
Beim Aufruf von yum wird dann angezeigt, wieviele Pakete durch Protectbase geschützt werden.
[root@home yum.repos.d]# yum update Geladene Plugins: langpacks, protectbase nux-dextop | 2.9 kB 00:00:00 nux-dextop/x86_64/primary_db | 1.6 MB 00:00:02 344 packages excluded due to repository protections No packages marked for update
Yum Autoupdate
Bei einigen Distributionen wie CentOS, Scientific Linux ist ein automatischer Cron Job, der yum update in festen Perioden ausführt aktiviert. In der Datei „/etc/cron.dayly/0yum-daily.cron“ wird das automatische Update gestartet.
#!/bin/bash # Only run if this flag is set. The flag is created by the yum-cron init # script when the service is started -- this allows one to use chkconfig and # the standard "service stop|start" commands to enable or disable yum-cron. if [[ ! -f /var/lock/subsys/yum-cron ]]; then exit 0 fi # Action! exec /usr/sbin/yum-cron
Folgende Konfiguration verhindert das automatische Update.
# exec /usr/sbin/yum-cron
Ausführung von yum-cron auskommentieren.
[root@home cron.daily]# service yum-cron stop Redirecting to /bin/systemctl stop yum-cron.service
Dienst anhalten.
[root@home cron.daily]# systemctl disable yum-cron Removed symlink /etc/systemd/system/multi-user.target.wants/yum-cron.service.
Symlink zum starten des Dienstes beim Systemstart entfernen.
Ältere Kernel entfernen
[root@home ~]# package-cleanup --oldkernels --count=2 Geladene Plugins: langpacks, protectbase --> Transaktionsprüfung wird ausgeführt ---> Paket kernel.x86_64 0:3.10.0-693.21.1.el7 markiert, um gelöscht zu werden ---> Paket kernel-debug.x86_64 0:3.10.0-693.21.1.el7 markiert, um gelöscht zu werden ---> Paket kernel-devel.x86_64 0:3.10.0-693.21.1.el7 markiert, um gelöscht zu werden --> Abhängigkeitsauflösung beendet Abhängigkeiten aufgelöst ==================================================================================================================== Package Arch Version Paketquelle Größe ==================================================================================================================== Entfernen: kernel x86_64 3.10.0-693.21.1.el7 @sl-security 60 M kernel-debug x86_64 3.10.0-693.21.1.el7 @sl-security 62 M kernel-devel x86_64 3.10.0-693.21.1.el7 @sl-security 36 M Transaktionsübersicht ==================================================================================================================== Entfernen 3 Pakete Installationsgröße: 157 M Ist dies in Ordnung? [j/N] :
Es werden alle älteren Kernel, bis auf die letzten zwei gelöscht.
yum-extender
Slackware
tar.gz Dateien sind zu einem Archiv zusammengefaßt und ggf. komprimiert. Slackware verwendet dieses Archiv für Packages, die dann im „*.tar.gz“ oder „*.tgz“ Format vorliegen. Ab Slackware 13.0 werden auch die Formate „*.tbz“, „*.tlz“, „*.txz“ unterstützt.
Einige Linux Systeme bringen Paketerweiterungen mit.
pkgtool
Grafisches Konsolen Frontend Tool zur Installation / Deinstallation von Paketen aus Verzeichnissen, Disketten oder CD's. Im Verzeichnis „/slackware/xap/“ der Slackware CD befindet sich das pkgtool zur Installation von Paketen von der CD.
installpkg
Package Installation auf der Kommandozeile. Die Option -warn listet die vorzunehmenden Veränderungen.
Syntax:
- installpkg [opt] [paketname]
Optionen:
- -warn ⇒ Trockenlauf, gibt Änderungen nach Installation auf stdout aus, Installiert jedoch nichts.
- -root/otherroot ⇒ Paket an einen anderen Pfad im Dateisystem als / installieren.
- -infobox ⇒ Zeigt Dialog an wie das Paket installiert ist. Wird z.B. verwendet, wenn installpkg von Skripten aufgerufen wird.
- -menu ⇒ Zeigt einen Dialog ob das Paket installiert werden soll oder nicht.
- -ask ⇒ Wird in Verbindung mit menu benutzt. Fragt ob das Paket unabhängig von der Paketpriorität installiert werden soll.
Beispiel
installpkg qcad-1.4.0.1.i486-2.tgz
removepkg
Deinstallieren von Paketen mit reomvepkg.
Syntax:
- removepkg [opt] [paketname]
Optionen:
- -warn ⇒ Gibt die Änderungen an stdout aus.
Beispiel
removepkg qcad-1.4.0.1.i486-2
upgradepkg
Update von Slackware Packeten.
Syntax:
- upgradepkg [paketname]
Beispiel
upgradepkg qcad-1.4.2.0.i486-2.tgz
explodepkg
Entpackt Paket ins aktuelle Verzeichnis.
Syntax:
- explodepkg [paketname]
Beispiel
explodepkg qcad-1.4.2.0.i486-2.tgz
oder auch..
tar -xvzf qcad-1.4.2.0.i486-2.tgz
makepkg
Slackware Pakete erstellen. makepkg verwendet dazu den Inhalt des aktuellen Arbeitsverzeichnisses. Im Paket sollte sich ein „install/“ Verzeichnis, in dem sich die Datei „slack-desc“ (kurzbeschreibung des Pakets) und/oder noch Shell Skript Dateien befinden.
Syntax:
- makepkg [opt] [paketname]
Optionen:
- -l y ⇒ Symbolische Links werden im Paket übernommen.
- -c n ⇒ Eigentümer und Gruppe nicht automatisch auf root:root setzen.
Beispiel
$ makepkg -l y -c n beispiel_paket-1.0.1.tgz
Gentoo
Im Gentoo Portage System werden die Pakete aus dem Quellcode kompiliert. Nach einem Paketupdate muß erneut kompiliert werden. Dass Paketverwaltungsprogramm emerge löst Abhängigkeiten automatisch auf.
emerge
Syntax:
- emerge [opt] [paket]
Optionen:
- -C ⇒ Paket deinstallieren.
- -uD world ⇒ komplettes Paketsystem updaten.
- -s (suchbegriff) ⇒ suchbegriff nach Paketnamen.
- -S (suchbegriff) ⇒ suchbegriff nach Beschreibung.
- sync ⇒ Liste der verfügbaren Ports aktualisieren.
FreeBSD
BSD Systeme verwenden für die Paketverwaltung Ports (ports) oder Packages (pkg). Bei der Installation oder Aktualisierung werden Ports aus den Quellen kompiliert (dies kann sehr lange dauern). Zuvor sollte der Ports Tree aktualisiert werden. Pkg lädt die Paketdateien herunter und installiert sie. Die Systemdaten werden mit freebsd-update aktualisiert.
freebsd-update
System Update mit freebsd-update durchführen.
Syntax:
- freebsd-update fetch ⇒ Prüft, ob Systemupdates verfügbar sind und lädt Pakete heunter.
- freebsd-update install ⇒ Installiert heruntergeladene Pakete.
Release Upgrade durchführen.
- freebsd-update -r 10.1-RELEASE upgrade ⇒ Release Upgrade Pakete herunterladen.
Oder ab FreeBSD 10.3-RELEASE.
- freebsd-update upgrade -r 11.1-RELEASE ⇒ Release Upgrade Pakete herunterladen.
- freebsd-update install ⇒ Release Upgrade wird installiert.
- shutdown -r now ⇒ System neustarten.
- freebsd-update install ⇒ Installiertes Upgrade wird ins Userland exportiert.
Wenn beim System Update etwas schief geht, kann freebsd-update rollback das letzte Update rückgängig machen.
# freebsd-update rollback Uninstalling updates... done.
Freebsd-update Kofigurationsdatei „/etc/freebsd-update.conf“.
# Components of the base system which should be kept updated. Components world kernel
Components legt fest, welche Teile des FreeBSD Systems aktualisiert werden sollen. Es können auch einzelne Komponenten, wie src/base oder src/sys, eingetragen werden. Hier wird das gesamte Basissystem sowie der Kernel aktualisiert.
# Paths which start with anything matching an entry in an IgnorePaths # statement will be ignored. IgnorePaths /boot/kernel/linker.hints
IgnorePaths beschreibt Pfade, die nicht aktualisiert werden sollen. Wurden Lokale Änderungen in Verzeichnissen wie z.B. /bin, /sbin oder /usr vorgenommen, kann verhindert werden, dass sie überschrieben werden.
# Paths which start with anything matching an entry in an UpdateIfUnmodified # statement will only be updated if the contents of the file have not been # modified by the user (unless changes are merged; see below). UpdateIfUnmodified /etc/ /var/ /root/ /.cshrc /.profile
Es werden nur unmodifizierte Konfigurationsdateien in den angegebenen Verzeichnissen aktualisiert. Bei jeder Änderung, wird die automatische Aktualisierung dieser Dateien verhindert.
# When upgrading to a new FreeBSD release, files which match MergeChanges # will have any local changes merged into the version from the new release. MergeChanges /etc/ /var/named/etc/ /boot/device.hints
In diesen Verzeichnissen soll freebsd-update versuchen, die Konfigurationsdateien zusammenzuführen.
# Directory in which to store downloaded updates and temporary # files used by FreeBSD Update. # WorkDir /var/db/freebsd-update
Im angegebenen Verzeichnis werden alle Korrekturen und temporären Dateien gespeichert. Diesem Verzeichnis sollte mindestens ein Gigabyte Festplattenspeicher zur Verfügung stehen.
# When upgrading between releases, should the list of Components be # read strictly (StrictComponents yes) or merely as a list of components # which *might* be installed of which FreeBSD Update should figure out # which actually are installed and upgrade those (StrictComponents no)? # StrictComponents no
Wenn diese Option auf yes gesetzt ist, geht freebsd-update davon aus, dass die Components-Liste vollständig ist und wird nicht versuchen, Änderungen ausserhalb dieser Liste vorzunehmen.
pkg
Mit pkg können BSD Pakete als Binärdateien installiert, deinstalliert oder aktualisiert werden.
Beim ersten Aufruf von pkg (z.B. pkg info vim), wird nachgefragt, ob pkg installiert werden soll. Danach kann pkg durch pkg2ng ersetzt werden.
# pkg2ng
Möchte man für die Installation aller Ports pkg verwenden, wird die Datei „/etc/make.conf“ angepasst.
WITH_PKGNG=yes
Dies ist auch mit folgendem Befehl möglich:
# echo "WITH_PKGNG=yes" >> /etc/make.conf
Mit pkg info kann angezeigt werden, welche Ports oder Pakete installiert sind.
# pkg info
Erweiterte Informationen zu einem installierten Programm anzeigen:
# pkg info -f vim
Nach Paketen suchen.
# pkg search vim
Hier werden Pakete gesucht, die sich auf vim beziehen.
# pkg search .
Gibt man als Suchmuster „.“ an, wird das Gesamte Repository angezeigt.
Pakete mit pkg installieren.
# pkg install vim
Es wird eine Liste mit allen zu installierenden Paketen und Abhängigkeiten angezeigt, die mit „Y“ installiert werden kann.
Um Software Pakete zu deinstallieren wird delete verwendet.
# pkg delete vim
Alle installierten Pakete updaten.
# pkg upgrade
Mit dem Kommando pkg-static upgrade -f kann eine Aktualisierung aller installierten Pakete vorgenommen werden.
# pkg-static upgrade -f
ports
Mit Ports installierte Software wird mit den Makefiles aus dem Quellcode kompiliert.
Ports können mit whereis [Paket] gesucht werden.
# whereis gnome2
Programme über die Ports Sammlung installieren.
# whereis vim /usr/src/editors/vim
# cd /usr/src/editors/vim
# make install clean vim
In diesem Beispiel wird Vim aus den Ports (heruntergeladen), kompiliert und installiert. Danach wird mit clean der Ports-Tree wieder aufgeräumt.
Kommt es vor, dass ein Port Abhängigkeiten zu anderen Ports hat, die nicht aktuell sind, kann make fetch-recursive verwendet werden.
# make fetch-recursive
Führt man den Befehl config-recursive aus, wird eine Liste von Ports, die konfiguriert werden sollen, im Target all-depends-list erstellt.
portmaster
Mit portmaster können installierte Ports aktualisiert werden. Portmaster erleichtert auch das Updaten von installierten Ports, in dem er zu Beginn der Installation die Benutzereingaben anfordert und man so nicht während der gesamten Installation auf weitere Eingabeaufforderungen warten muß.
Portmaster teilt Ports in vier Kategorien ein:
- Root Port ⇒ hat keine Abhängigkeiten und andere Ports sind nicht von diesem Port abhängig.
- Trunk Port ⇒ hat keine Abhängigkeiten, aber andere Ports sind von diesem Port abhängig.
- Branch Port ⇒ hat Abhängigkeiten und andere Ports sind von diesem Port abhängig.
- Leaf Port ⇒ hat Abhängigkeiten, aber andere Ports sind nicht von diesem Port abhängig.
Installation von Portmaster:
# cd /usr/ports/ports-mgmt/portmaster # make install clean
Installation via Ports.
# pkg install portmaster
# rehash
Portmaster als Binärdatei via pkg installieren. Mit rehash wird gewährleistet, dass die PATH Variable den Befehl in der Shell auch kennt.
Mit folgendem Kommando kann eine Liste der installierten Ports angezeigt und nach neueren Versionen gesucht werden.
# portmaster -L ===>>> Root ports (No dependencies, not depended on) ===>>> ispell-3.2.06_18 ===>>> screen-4.0.3 ===>>> New version available: screen-4.0.3_1 ===>>> tcpflow-0.21_1 ===>>> 7 root ports ... ===>>> Branch ports (Have dependencies, are depended on) ===>>> apache22-2.2.3 ===>>> New version available: apache22-2.2.8 ... ===>>> Leaf ports (Have dependencies, not depended on) ===>>> automake-1.9.6_2 ===>>> bash-3.1.17 ===>>> New version available: bash-3.2.33 ... ===>>> 32 leaf ports ===>>> 137 total installed ports ===>>> 83 have new versions available
Aktualisieren installierter Ports.
# portmaster -a
Aktualisieren aller installierten Ports.
Treten während der Aktualisierung Fehler auf, können die installierten Ports mit folgendem Kommando neu aufgebaut werden.
# portmaster -af
Mit portmaster können auch Ports installiert werden. Hierzu muß der Pfad des Ports angegeben werden.
# portmaster shells/bash
portupgrade
Mit portupgrade wird die Aktualisierung von Ports vereinfacht.
# cd /usr/ports/ports-mgmt/portupgrade/ # make install clean
Portupgrade via Ports installieren.
Syntax:
- portupgrade [optionen]
Optionen:
- -ai ⇒ Mit der Option -a, beginnt portupgrade automatisch mit der Aktualisierung aller veralteter Ports des Systems. In Verbindung mit -ai, kann man interaktiv entscheiden, ob ein Port aktualisiert werden soll.
- -PP gnome2 ⇒ Mit -P werden bei der Installation Pakete anstelle von Ports verwendet. Portupgrade durchsucht die in der Umgebungsvariablen PKG_PATH aufgeführten Verzeichnisse nach Paketen. Sind lokal keine Pakete vorhanden, versucht portupgrade die Pakete herunterzuladen. Werden die Pakete weder lokal noch entfernt gefunden, werden Ports verwendet. Dies kann die Option -PP verhindern.
Beispiel:
# portupgrade -PP firefox
portsclean
Die Ports-Sammlung kann sehr viel Speicherplatz verschlingen, deshalb sollte nach der Installation eines Ports make clean ausgeführt werden, um die Arbeitsverzeichnisse zu löschen. Dieser Befehl entfernt das Verzeichnis work des gebauten Ports. Die gesamte Ports-Sammlung kann mit folgenden Befehl aufgeräumt werden:
# portsclean -C
Nach einiger Zeit sammeln sich zahlreiche Distfiles im Verzeichnis distfiles an. Diese können mit portsclean -D gelöscht werden. Möchte man nur Distfiles löschen, die von keinem derzeit installierten Port referenziert werden, kann die Option -DD verwendet werden. Portsclean wird mit portupgrade automatisch mit installiert.
# portsclean -D
# portsclean -DD
portsnap
Ein alternatives Werkzeug zur Aktualisierung der Ports-Sammlung. Hier wird ein komprimierter Snapshot der Ports-Sammlung in das Verzeichnis /var/db/portsnap heruntergeladen. Danach kann die Internetverbindung getrennt werden.
# portsnap fetch
Herunterladen des Ports Snapshots.
# portsnap extract
Den Snapshot nach /usr/ports extrahieren.
# portsnap update
Installierte Ports Sammlung aktualisieren.
Beispiele
VIM installieren
# cd /usr/ports/editors/vim # make install clean
Vim via Ports installieren.
# portmaster -d editors/vim
Vim mit Portmaster installieren.
# pkg install editors/vim
Vim mit dem Pkg System installieren.
# rehash
Mit rehash wird sichergestellt, dass vim in der Shell aufgerufen werden kann.
Die Umgebungsvariable $EDITOR definiert den Standardeditor, der in der jeweiligen Konfigurationsdatei gesetzt werden kann.
csh:
Datei: ~/.cshrc
setenv EDITOR vim
bash:
Datei: ~/.bashrc und ~/.profile
export EDITOR vim
Um Vim auf die jeweiligen Bedürfnisse anzupassen, sollte die Konfigurationsdatei ~/.vimrc angelegt werden.
#Schaltet die volle VIM-Funktionalität frei set nocp # Aktiviert Syntax-Highlighting. syntax on
Bash installieren
Die Bash kann z.B. via Ports oder Portmaster installiert werden.
# cd /usr/ports/shells/bash # make install clean
# portmaster -d shells/bash
Um die Bash als Standard-Shell zuweisen, sind folgende Optionen möglich:
# chsh #Changing user information for user. Shell: /usr/local/bin/bash Full Name: Office Location: Office Phone: Home Phone: Other information:
Mit chsh kann die Bash als Standard-Shell eingetragen oder mit folgendem Kommando festgelegt werden.
# chsh -s /usr/local/bin/bash
Nach dem wechsel zur Bash als Standard-Shell stehen die Eigenschaften und Konfigurationsdateien der csh nicht mehr zur Verfügung. Für die Bash ist ~/.bashrc, die Konfigurationsdatei.
Die Variable $EDITOR für den Standard-Editor sollte hier gesetzt werden.
export EDITOR=vim
~/.bashrc
Pakete konvertieren
Mit alien kann ein Paket Format in ein anderes umgewandelt werden.
Beispiel
alien --to-rpm gimp-4.0.7.9_x86.deb gimp-4.0.7.9_x86.rpm generated
Debian Paket wird in Redhat Paket umgewandelt.
Tarballs installieren
Cloud