it-swarm-eu.dev

Warum fordern `Sudo apt-get install XXXX` manchmal eine Bestätigung an, andere nicht?

Nur aus Neugier, manchmal während der Installation von Software über apt-get install software_name das Terminal Aufforderung zur Bestätigung "Geben Sie Ja oder Nein", aber nicht immer.

Ich meine nicht die Sudo-Passwort-Eingabeaufforderung, aber die Meldung "Wird heruntergeladen und konfiguriert XXX Kb, weiter?" (oder etwas ähnliches)

Warum?

29
Strae

In der Regel werden Sie gefragt, ob es vorgeschlagene oder empfohlene Pakete gibt, die von der zu installierenden Software abhängen. Dies kann auch von der Größe des Programms oder der Sicherheit des Repositorys abhängen, von dem Sie herunterladen.

24
Hellola

apt-get install new-package fordert nur dann zur Bestätigung auf, wenn auch Abhängigkeiten des angegebenen Pakets installiert werden.

Wenn nur das von Ihnen angegebene einzelne Paket ohne zusätzliches Material installiert wird, bleibt es still, da Sie bereits "bestätigt" haben, dass Sie dieses Paket haben möchten, indem Sie es eingeben.
Wenn es jedoch einige Abhängigkeitspakete gibt, können Sie Ihre Meinung ändern und die Installation stoppen (z. B. weil einer von ihnen zuvor Probleme verursacht hat), sodass Sie zur Eingabe des Jahrs bzw. der Jahreszahl aufgefordert werden.

Wenn Sie nun sehen möchten, was es tun wird, können Sie den Installationsbefehl im Probelauf simulieren. Sie setzen diesen Schalter, indem Sie den Argumenten einen -s hinzufügen. Beispiel: Installation des Einzelpakets sudoku

[email protected]:~$ Sudo apt-get install sudoku -s
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following NEW packages will be installed:
  sudoku
0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
Inst sudoku (1.0.1-5 Ubuntu:14.10/utopic [i386])
Conf sudoku (1.0.1-5 Ubuntu:14.10/utopic [i386])

Das zeigt Ihnen, was passieren wird, aber nicht, wie groß die Downloads sein werden, wie es die Bestätigungsaufforderung tun würde.

Daher kann ein anderer Schalter verwendet werden, --print-uris. Das gleiche Beispiel:

[email protected]:~$ Sudo apt-get install sudoku --print-uris
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following NEW packages will be installed:
  sudoku
0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
Need to get 28.4 kB of archives.
After this operation, 106 kB of additional disk space will be used.
'http://ftp.uni-stuttgart.de/ubuntu/pool/universe/s/sudoku/sudoku_1.0.1-5_i386.deb' sudoku_1.0.1-5_i386.deb 28426 MD5Sum:ecd0e3cd4fc1e4e4edfe6c59d1c54847

Der Schalter --print-uris blockiert nicht nur die eigentliche Installation, sondern zeigt die heruntergeladenen und installierten Größen sowie zusätzliche Informationen zum Paket (Webadresse und MD5Sum) an.
Achtung: Verwenden Sie --print-uris und -s nicht zusammen. Es wird nur wie -s aussehen.
Beachten Sie auch, dass Sie den Schalter -y hinzufügen sollten (= für jede Frage ein Ja annehmen), wenn Sie die Ausgabe verarbeiten möchten, da dieser Sie nach denselben Regeln wie bei der normalen Installation ohne zur Bestätigung auffordert schaltet.


Wenn Sie jetzt nur die Informationen zum Download und zur installierten Dateigröße herausfiltern möchten, ohne alle anderen Dinge durchlesen zu müssen, können Sie den folgenden Befehl verwenden, um dies zu erreichen (danke an @terdon für die Unterstützung). Wieder mit dem Beispiel sudoku:

[email protected]:~$ LANG=C Sudo apt-get -y --print-uris install sudoku | grep -Po '^(Need to|After this).*?\K[0-9.]+[ a-zA-Z]+? '
28.4 kB
106 kB

Sie sehen, dass die erste Zeile der Ausgabe die Downloadgröße und die zweite Zeile den für die Installation benötigten Speicherplatz beschreibt.

Da dieser Befehl nicht einfach einzugeben und noch schwerer zu merken ist, kopieren Sie Folgendes in eine Skriptdatei, z. genannt apt-get-install-checker.sh:

#! /bin/bash

LANG=C Sudo apt-get install -y --print-uris $* |
grep -Po '^(Need to|After this).*?\K[0-9.]+[ a-zA-Z]+? ' |
sed '1,1s/^/Download size: /;2,2s/^/Installed size: /'

Vergiss nicht chmod +x apt-install-checker.sh, bevor du es ausführst!

Beispielausgabe:

[email protected]:~/bin$ ./apt-install-checker.sh sudoku
Download size: 28.4 kB 
Installed size: 106 kB 

Skript ist noch in der Entwicklung! Geplante Funktionen: Sie sollten gefragt werden, ob Sie die Installation ausführen und dann fortfahren und ausführen möchten. Vielleicht kommen mir morgen noch ein paar andere nette Gadgets in den Sinn ...

12
Byte Commander

Soweit ich weiß, bittet apt-get nur dann um Bestätigung, wenn zusätzliche Abhängigkeiten zu installieren sind. Es gibt keine Möglichkeit, die Bestätigung standardmäßig für alle Pakete zu erzwingen.

Es ist jedoch möglich, bei Verwendung von aptitude eine Bestätigung für jeden Installationsbefehl zu erzwingen.

echo 'Aptitude::CmdLine::Always-Prompt "true";' | Sudo tee -a /etc/apt/apt.conf.d/05aptitude
9
komputes