Nützliche apt (dpkg) -Befehle [geschlossen]

9

Bitte posten Sie Ihre weniger bekannten, aber nützlichen apt-Befehle, die apt- *, dpkg oder aptitude betreffen.

Gödel
quelle
7
Das ist nicht wirklich eine Frage.
Martin Owens -doctormo-

Antworten:

7

Einige Befehle, die ich oft benutze:

um Abhängigkeiten zu sehen und Abhängigkeiten umzukehren:

apt-cache [--important] [--installed] [--recurse] depends $package
apt-cache rdepends $package

So entfernen Sie ein Paket, alle Autoremove-Pakete und alle zugehörigen Konfigurationsdateien:

sudo apt-get --purge --auto-remove purge $package

So zeigen Sie die tatsächlichen aptKonfigurationsoptionen an:

apt-config dump | less

So ändern Sie eine Option in der Befehlszeile

$ apt-config dump | grep -i recommend
APT::Install-Recommends "1";
$ sudo apt-get -o APT::Install-Recommends="0" install $package

Dies war nur ein Beispiel für die Angabe von APT-Optionen über die Befehlszeile. Um die Installation empfohlener Pakete zu vermeiden, können Sie Folgendes verwenden:

sudo apt-get --no-install-recommends $package

So zeigen Sie alle lokalen / veralteten Pakete an:

aptitude search ~o

So zeigen Sie entfernte Pakete mit Restkonfiguration an:

aptitude search ~c

und sie zu entfernen

sudo aptitude purge ~c

So erhalten Sie eine Liste aller installierten Pakete ( dpkg -lkann manchmal zu abgeschnittenen Spalten führen)

dpkg --get-selections | awk '{ print $1 }'

oder

dpkg-query -Wf '${Package}\n'  # other fields available, see man page

Ändern Sie zum Zerlegen ein Paket und setzen Sie es dann wieder zusammen

dpkg-deb -x file.deb ./dir
cd dir 
dpkg-deb -e ../file.deb
# apply your modification, then... 
cd ..
dpkg-deb -b dir file-new.deb
Enzotib
quelle
4

Zwei, die ich oft benutze, sind:

apt-get autoremove <packagename>

Dadurch werden das Paket und alle nicht verwendeten Abhängigkeiten entfernt. Dies ist hilfreich, wenn Sie eine App ausprobieren, dann entscheiden, dass Sie sie nicht benötigen, und möchten, dass auch die Cruft entfernt wird.

dpkg -S /path/to/file

Welches sagt mir, mit welchem ​​Paket eine Datei installiert wurde.

Zum Schluss noch eine ..

dpkg -l <packagename> | grep ^ii

Listet Pakete auf, aber nur solche mit dem Status ii, was bedeutet, dass sie installiert sind, sodass keine von mir entfernten Inhalte angezeigt werden.

Wenn Sie den Paketnamen für eine Datei erhalten möchten, die nicht installiert wurde ( dpkg -Saber für nicht installierte Pakete), installieren Sie apt-fileund führen Sie Folgendes aus:

apt-file search /path/to/file
Papst
quelle
Ich finde es nützlich, whichzusammen mit dpkg -S zu verwenden. zB: für ausführbare Dateien, die in Paketen mit unterschiedlichen Namen leben, wie:dpkg -S `which uname`
Benjamin Rubin
Oh ja, das ist auch gut so.
Papst
3

Zeigen Sie das ChangeLog eines Pakets an

$ aptitude changelog <pkgname>

Beispiel:

$ aptitude changelog sudo
sudo (1.7.0-1ubuntu2.4) karmic-security; urgency=low

  * SECURITY UPDATE: properly handle multiple PATH variables when using
    secure_path in env.c
    - Adapted http://www.sudo.ws/repos/sudo/raw-rev/a09c6812eaec
    - CVE-2010-1646
...
Gödel
quelle
2
Ab Ubuntu 11.04 apt-get changelog sudofunktioniert Natty auch.
Lekensteyn
3

Installieren Sie die apt-Datei und führen Sie sie aus sudo apt-file update. Sie können jetzt nach Dateien in Paketen suchen, die Sie noch nicht einmal installiert haben.

Praktisch, wenn Sie Informationen über Pakete in anderen Versionen von Ubuntu benötigen, ist rmadison, das im devscripts-Paket enthalten ist. Geben Sie einen Paketnamen als Argument an und erfahren Sie, welche Versionen dieses Pakets in jeder aktuellen Ubuntu-Version vorhanden sind und in welchem ​​Repository-Abschnitt sich das Paket befindet.

Beispiel:

[bnrubin@server:~/]$ rmadison cowsay
    cowsay |     3.03-8 | dapper/universe | source, all
    cowsay |     3.03-9 | hardy/universe | source, all
    cowsay |   3.03-9.2 | jaunty/universe | source, all
    cowsay |   3.03-9.2 | karmic/universe | source, all
    cowsay |   3.03-9.2 | lucid/universe | source, all
    cowsay | 3.03+dfsg1-2 | maverick/universe | source, all
    cowsay | 3.03+dfsg1-2 | natty/universe | source, all
Benjamin Rubin
quelle
apt-fileJetzt können Sie die Datenbank eines Benutzers verwalten, sodass Sie nicht mehr als Root angemeldet sein müssen update.
Enzotib
apt-file ist ganz nett. danke für das Teilen.
Gödel
1

Um Listenbefehle zu erhalten, die mit 'apt-' beginnen, gehen Sie wie folgt vor. Öffnen Sie ein Terminal, geben Sie 'apt-' ein und drücken Sie zweimal die TAB-Taste. Dadurch werden alle Befehle aufgelistet, die mit 'apt-' beginnen.

Beispielausgabe:

apt-add-repository    apt-extracttemplates  apt-key
apt-cache             apt-file              apt-mark
apt-cdrom             apt-ftparchive        apt-sortpkgs
apt-config            apt-get 

Um detaillierte Informationen zu erhalten, können Sie die Manpage eines bestimmten Befehls überprüfen

z.B: man apt-get

aneeshep
quelle
1

Ich denke gerne an drei verschiedene Arten von Paketen:

  • Systempakete (wesentliche Pakete oder Pakete mit Prioritätsstandard oder höher)
  • Benutzerpakete (manuell installierte Pakete mit Priorität optional oder zusätzlich)
  • Abhängigkeiten und Empfehlungen (automatisch installierte Pakete / alles, was kein System oder Benutzerpaket ist)

Um alle "Systempakete" anzuzeigen, die Sie verwenden können

aptitude search '(~pstandard|~pimportant|~prequired|~E)'

Ich möchte, dass alle installiert und als manuell installiert markiert werden.

aptitude install '(~pstandard|~pimportant|~prequired|~E)!~i'
aptitude unmarkauto '(~pstandard|~pimportant|~prequired|~E)~i~M'

Um alle "Benutzerpakete" anzuzeigen, verwenden Sie

aptitude search '~i!~M!(~pstandard|~pimportant|~prequired|~E)'

In dieser Liste sollten nur Pakete enthalten sein, von denen Sie wissen, dass Sie sie möchten. Alle anderen Pakete sind wahrscheinlich nur Abhängigkeiten oder Empfehlungen anderer Pakete. Sie können sie als automatisch installiert markieren

aptitude markauto libsomething

Schauen Sie sich die Suchbegriffreferenz von aptitude an und
was ist ein wesentliches, erforderliches, wichtiges, Standard-, optionales oder zusätzliches Paket? für Hintergrundinformationen.

Dario Seidl
quelle
0
  • Aktualisieren Sie Pakete, die zurückgehalten werden, weil sie andere Pakete entfernen oder weil es sich um ein Kernel-Upgrade handelt:

    sudo apt-get dist-upgrade
    
  • Löschen Sie ein Paket und seine Konfiguration.

    sudo apt-get purge package
    
  • Zeigen Sie Details eines Pakets an, wie sie in der Paketdatenbank bekannt sind, einschließlich Abschnitt, Version, Abhängigkeiten, Betreuer und Beschreibung.

    apt-cache show package
    
  • Listen Sie Dateien in einem installierten Paket auf

    dpkg -L pkg
    
  • Aktualisieren Sie alle Pakete

    sudo apt-get upgrade
    
PinoSan
quelle
-2
dpkg -i --force-architecture something.i386.deb

Zum Installieren einiger i386-Debs auf amd64.

Extender
quelle