Dpkg
Dpkg (Debian-Paket) ist ein Paketverwaltungssystem in Debian und Debian-basierten Linux-Distributionen wie Ubuntu.
Dpkg ist eigentlich ein einfaches Befehlszeilenprogramm zum Verwalten von Paketen. Es unterscheidet sich von Tools wie apt-get und gdebi.
Apt-get und Gdebi sind fortschrittlichere Tools, die Abhängigkeiten auflösen und installieren können, damit das Hauptpaket ordnungsgemäß funktioniert.
In diesem kurzen Tutorial werfen wir einen Blick auf einige grundlegende Beispiele des dpkg-Befehls und wie Sie ihn verwenden, um Pakete auf Ihrem System zu verwalten.
Der Befehl dpkg funktioniert auf Systemen wie Debian, Ubuntu, Linux Mint und Elementary OS.
Dpkg-Befehlsbeispiele
1. Alle installierten Pakete auflisten
Dieser Befehl listet alle installierten Pakete auf. Die Informationen sind in tabellarischer Form mit Spalten für Name, Version, Architektur und Beschreibung auszudrucken. Die Liste soll riesig sein und Sie können nach oben und unten scrollen.
$ dpkg -l Desired=Unknown/Install/Remove/Purge/Hold | Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend |/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad) ||/ Name Version Architecture Description +++-===============================================-===========================================-============-================================================= ii accountsservice 0.6.55-0ubuntu10 amd64 query and manipulate user account information ii accountwizard 4:19.04.3-0ubuntu1 amd64 wizard for KDE PIM applications account setup ii acl 2.2.53-4 amd64 access control list - utilities ii acpi-support 0.143 amd64 scripts for handling many ACPI events
2. Installierte Pakete suchen
Sie können die Liste der installierten Pakete nach einem bestimmten Eintrag durchsuchen und sehen, ob er installiert ist oder nicht.
Suchen Sie in den installierten Paketen nach „Apache“
$ dpkg --get-selections | grep 'apache' apache2 install apache2-mpm-prefork install apache2-suexec install apache2-utils install apache2.2-bin install apache2.2-common install libapache-pom-java install libapache2-mod-fcgid install libapache2-mod-php5 install
Oder verwenden Sie dieselbe l-Option, um nach installierten Paketen zu suchen. Das ist eigentlich einfacher.
$ dpkg -l php* Desired=Unknown/Install/Remove/Purge/Hold | Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend |/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad) ||/ Name Version Architecture Description +++-===============================-====================-====================-==================================================================== un php-doc <none> (no description available) un php-imlib <none> (no description available) un php-kolab-filter <none> (no description available) un php-openid <none> (no description available) un php-pear <none> (no description available) un php-radius-legacy <none> (no description available) ii php5 5.4.6-1ubuntu1.2 all server-side, HTML-embedded scripting language (metapackage) ii php5-cgi 5.4.6-1ubuntu1.2 amd64 server-side, HTML-embedded scripting language (CGI binary) ii php5-cli 5.4.6-1ubuntu1.2 amd64 command-line interpreter for the php5 scripting language ii php5-common 5.4.6-1ubuntu1.2 amd64 Common files for packages built from the php5 source
3. Von einem Paket installierte Dateien auflisten
Um den Pfad aller Dateien zu finden, die von einem bestimmten Paket installiert werden, verwenden Sie die Option "L" mit dpkg
$ dpkg -L php5-cli /. /etc /etc/php5 /etc/php5/cli /usr /usr/share /usr/share/man /usr/share/man/man1 /usr/share/man/man1/php5.1.gz /usr/share/doc /usr/share/lintian /usr/share/lintian/overrides /usr/share/lintian/overrides/php5-cli /usr/lib /usr/lib/php5 /usr/lib/php5/20100525 /usr/bin /usr/bin/php5 /etc/php5/cli/conf.d /usr/share/doc/php5-cli
Weitere Beispiele
dpkg -i <package.deb> Installs a Debian package file; one that you downloaded manually, for example. dpkg -c <package.deb> Lists the contents of <package.deb>, a .deb file. dpkg -I <package.deb> Extracts package information from <package.deb>, a .deb file. dpkg -r <package> Removes an installed package named <package> dpkg -P <package> Purges an installed package named <package>. The difference between remove and purge is that while remove only deletes data and executables, purge also deletes all configuration files in addition. dpkg -L <package> Gives a listing of all the files installed by <package>. See also dpkg -c for checking the contents of a .deb file. dpkg -s <package> Shows information on the installed package <package>. See also apt-cache show for viewing package information in the Debian archive and dpkg -I for viewing package information extracted from a .deb file. dpkg-reconfigure <package> Reconfigures an installed package, if it uses debconf (debconf provides that consistent configuration interface for package installation). You can reconfigure debconf itself if you want to change the front-end or priority of questions asked. For example, to reconfigure debconf with the dialog front-end, you simply run: dpkg-reconfigure --frontend=dialog debconf echo ``<package> hold'' | dpkg --set-selections Put <package> on hold (command line method) dpkg --get-selections ``<package>'' Get the current status of <package> (command line method) dpkg -S <file> Searches for <file> in package database, telling you which packages have that file in them.
Installierte Pakete neu konfigurieren
Pakete können mit dem Befehl dpkg-reconfigure neu konfiguriert werden.
Zum Beispiel die Neukonfiguration von phpmyadmin:
$ dpkg-reconfigure phpmyadmin
Schlussfolgerung
Dies waren einige grundlegende Beispiele für den Befehl dpkg. In den meisten Fällen würden Sie das dpkg-Paket wahrscheinlich nicht für die Paketverwaltung verwenden, da es ein Low-Level-Befehl ist und nur grundlegende Funktionen zum Installieren oder Entfernen von .deb-Paketen bereitstellt.
Es verwaltet keine Repositorys und findet und installiert keine Abhängigkeiten, damit das Hauptpaket ordnungsgemäß funktioniert.
Die anderen Befehle wie apt-get, aptitude, apt, gdebi sollten zum Installieren und Verwalten von Paketen auf Ihrem System verwendet werden.
Wenn Sie Feedback oder Fragen haben, teilen Sie uns dies in den Kommentaren unten mit.