Lassen Sie "apt-get update" die genaue Ausgabe als "apt update" anzeigen

8

Ich lerne die CLI-Oberfläche des Advanced Packaging Tool. Aus der Ausgabe von, apt(8)wenn sein stdout kein Terminal ist, ist es nicht für "Skripte geeignet, die eine stabile Programmierschnittstelle erwarten", also schaue ich mir das an apt-get(8).

Ein Unterschied zwischen apt updateund apt-get updatebesteht darin, dass letzterem eine letzte Zeile fehlt, nachdem der gesamte Cache aktualisiert wurde:

8 packages can be upgraded. Run 'apt list --upgradable' to see them.

Ich möchte wissen, wie ich genau diese Linie anzeigen kann apt-get(8).

iBug
quelle
Soweit ich wusste, apt(Advanced Packaging Tool) und apt-getsind verschiedene Dinge. Sie sind so konzipiert, dass sie anders laufen als ich es verstanden habe. Wenn man Ihnen gibt, was Sie wollen, machen Sie es sich vielleicht zur Gewohnheit, stattdessen diesen Befehl zu verwenden.
Brenden McFarling

Antworten:

9

man apt-get zeigt an:

   -s, --simulate, --just-print, --dry-run, --recon, --no-act
       No action; perform a simulation of events that would occur based on
       the current system state but do not actually change the system.
       Locking will be disabled (Debug::NoLocking) so the system state
       could change while apt-get is running. Simulations can also be
       executed by non-root users which might not have read access to all
       apt configuration distorting the simulation. A notice expressing
       this warning is also shown by default for non-root users
       (APT::Get::Show-User-Simulation-Note). Configuration Item:
       APT::Get::Simulate.

Also, wenn Sie nur tun:

apt-get upgrade --dry-run

es wird ausgegeben:

...
4 to upgrade, 0 to newly install, 0 to remove and 0 not to upgrade.
...
tu-Reinstate Monica-dor duh
quelle
Ja, ich man 8 apt-gethabe diese Option gefunden, aber die Ausgabe war anders als apt.
iBug
Anders wie? Ich habe gerade mein System überprüft und es ist identisch. Ich dachte, es sei identisch, weil aptes sich wirklich um einen programmatischen Wrapper handelt, apt-getund das ist der Grund, warum die Warnung existiert.
Tu-Reinstate Monica-dor duh
aptzeigt 8 packages can be upgraded. Run 'apt list --upgradable' to see them., während Ihre Antwort zeigt4 to upgrade, 0 to newly install, 0 to remove and 0 not to upgrade.
iBug
1
Ja, das liegt daran, dass Sie 8 aktualisieren müssen, wo ich 4 habe. Oder beziehen Sie sich auf einen anderen Text?
Tu-Reinstate Monica-dor duh
4
Ja, genau darum geht es in der Warnung. aptwird Ihnen diesen Text nicht garantieren, und sie können Ihnen diese Nummer nicht einmal garantieren. apt-getEs gibt jedoch eine strenge Ausgabeanforderung, da es von anderen Softwareprogrammen (wie Benutzeroberflächen und Dämonen) verwendet wird, um es auf verschiedene Arten zu verarbeiten. Sie können also entweder Ihren Code ändern, um apt-getdie Ausgabe zu akzeptieren , oder Sie können dies | sed 's/to upgrade/packages can be upgraded/g'beispielsweise tun (und riskieren, dass Ihr Code später beschädigt wird).
Tu-Reinstate Monica-dor duh
4

Vermutlich müssen Sie mit der Anzahl der verfügbaren Updates umgehen. Hier ist ein Vorschlag:

# With no option, returns two numbers, no CR nor LF
/usr/lib/update-notifier/apt-check

# With --human-readable, returns numbers, locale LANG text & CR/LF
/usr/lib/update-notifier/apt-check  --human-readable

Kein Sudo erforderlich
Die Ausgabe ist einfach zu bearbeiten

Mehr Optionen:

> /usr/lib/update-notifier/apt-check  --help
Usage: apt-check [options]

Options:
  -h, --help            show this help message and exit
  -p, --package-names   Show the packages that are going to be
                        installed/upgraded
  --human-readable      Show human readable output on stdout
  --security-updates-unattended
                        Return the time in days when security updates are
                        installed unattended (0 means disabled)
cmak.fr
quelle
Ist dies genau das, was zum Generieren motdbei der SSH-Anmeldung verwendet wird?
iBug
Ja, es sieht aus wie die gleiche Ausgabe, aber ich weiß nicht, wie macht motd
cmak.fr
2

Von man 8 apt:

... aktiviert einige Optionen ...

Dann ging ich durch /usr/share/doc/apt/examples/configure-index.gz(mit zcat(1), um Textinhalte anzuzeigen) und bemerkte diese Option:

apt::cmd::show-update-stats

Also habe ich den folgenden Befehl ausgearbeitet, der genau das tat, was ich wollte:

# apt-get -o apt::cmd::show-update-stats=true update

Getestet, um an Xenial und Bionic zu arbeiten.

iBug
quelle