Antworten:
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 apt
Konfigurationsoptionen 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 -l
kann 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
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 -S
aber für nicht installierte Pakete), installieren Sie apt-file
und führen Sie Folgendes aus:
apt-file search /path/to/file
which
zusammen mit dpkg -S zu verwenden. zB: für ausführbare Dateien, die in Paketen mit unterschiedlichen Namen leben, wie:dpkg -S `which uname`
$ 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
...
apt-get changelog sudo
funktioniert Natty auch.
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
apt-file
Jetzt können Sie die Datenbank eines Benutzers verwalten, sodass Sie nicht mehr als Root angemeldet sein müssen update
.
apt-file
ist ganz nett. danke für das Teilen.
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
Ich denke gerne an drei verschiedene Arten von Paketen:
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.
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