Nützliche apt (dpkg) Befehle [geschlossen]

8

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

    
Gödel 15.11.2010, 02:07

8 Antworten

7

Ein Befehl, den ich oft verwende:

, um Abhängigkeiten und umgekehrte Abhängigkeiten zu sehen:

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

Um ein Paket zu entfernen, alle autoremove-Pakete und alle zugehörigen Konfigurationsdateien:

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

Um die tatsächlichen apt Konfigurationsoptionen zu sehen:

apt-config dump | less

Um eine Option in der Befehlszeile zu ändern

$ 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

Um alle lokalen / veralteten Pakete anzuzeigen:

aptitude search ~o

Um entfernte Pakete mit Restkonfiguration zu sehen:

aptitude search ~c

und um sie zu entfernen

sudo aptitude purge ~c

Um eine Liste aller installierten Pakete zu erhalten ( dpkg -l kann manchmal abgeschnittene Spalten ausgeben)

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

oder

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

Um zu disassemblieren, modifiziere dann riassemble ein Paket

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 09.09.2011 19:35
4

Zwei, die ich oft benutze: -

apt-get autoremove <packagename>

Was das Paket und alle nicht verwendeten Abhängigkeiten entfernt, was nützlich ist, wenn Sie eine App ausprobieren, dann entscheiden, dass Sie sie nicht brauchen, und möchten, dass die Gruft auch entfernt wird.

dpkg -S /path/to/file

Was mir sagt, in welchem ​​Paket eine Datei installiert wurde.

Endlich noch eins ..

dpkg -l <packagename> | grep ^ii

Listet Pakete auf, aber nur diejenigen, die den Status ii haben, was bedeutet, dass sie installiert sind, so dass es keine Inhalte anzeigt, die ich entfernt habe.

Wenn Sie den Paketnamen für eine Datei erhalten möchten, die nicht installiert wurde ( dpkg -S , aber für nicht installierte Pakete), installieren Sie apt-file und führen Sie:

aus
apt-file search /path/to/file
    
popey 09.09.2011 18:41
3

Zeigen Sie den 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 15.11.2010 07:34
3

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

Auch nützlich, wenn Sie Informationen über Pakete in anderen Ubuntu-Versionen benötigen, ist rmadison, das im devscripts-Paket enthalten ist. Geben Sie ihm einen Paketnamen als Argument und es wird Ihnen sagen, welche Versionen dieses Pakets in jeder aktuellen Ubuntu-Version existieren und in welchem ​​Repository-Abschnitt sich das Paket befindet.

Beispiel:

[[email protected]:~/]$ 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 20.11.2010 01:23
1

Um Listenbefehle zu erhalten, die mit 'apt-' beginnen, machen Sie folgendes. Öffnen Sie ein Terminal und geben Sie 'apt-' ein und drücken Sie die TAB-Taste zweimal, um alle Befehle aufzulisten, beginnt mit 'apt -'.

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

zB: man apt-get

    
aneeshep 15.11.2010 06:46
1

Ich denke gerne an drei verschiedene Arten von Paketen:

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

Um alle "Systempakete" anzuzeigen, können Sie

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

Ich möchte alle installiert und als manuell installiert markiert haben.

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 vorhanden sein, die Sie kennen. Alle anderen Pakete sind wahrscheinlich nur Abhängigkeiten oder Empfehlungen anderer Pakete, Sie können sie als automatisch installiert markieren

aptitude markauto libsomething

Sehen Sie sich die Suchwort-Referenz von aptitude und
Was ist ein essentielles, erforderliches, wichtiges, Standard, optionales oder zusätzliches Paket? für Hintergrundinformationen.

    
Dario Seidl 20.09.2011 14:07
0
  • Aktualisierungspakete, die zurückgehalten werden, weil sie andere Pakete entfernen oder weil es ein Kernel-Upgrade ist:

    sudo apt-get dist-upgrade
    
  • Bereinige ein Paket und seine Konfiguration.

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

    apt-cache show package
    
  • Dateien in einem installierten Paket auflisten

    dpkg -L pkg
    
  • Aktualisieren Sie alle Pakete

    sudo apt-get upgrade
    
PinoSan 09.09.2011 18:47
-2
dpkg -i --force-architecture something.i386.deb

Für die Installation einiger i386 debs auf amd64.

    
Extender 09.09.2011 18:48