Wie kann man die Größe eines Pakets unter Verwendung von apt vor dem Herunterladen bestimmen?

29

Bei Verwendung von apt-get install <package_name>und wenn Abhängigkeiten heruntergeladen werden müssen, gibt das Terminal die Namen zusätzlicher Pakete und die Gesamtgröße aus und bittet vor dem Herunterladen um Bestätigung.

Wenn jedoch die Abhängigkeiten erfüllt sind und nur das angegebene Paket heruntergeladen werden muss, erfolgt keine Größenausgabe und keine Bestätigung.

Wenn Sie Synaptic verwenden, wird die Gesamtgröße der neuen Pakete angezeigt, die nach der Installation verwendet werden. Es ist jedoch nicht möglich, die Größe zu ermitteln, die heruntergeladen werden muss. Sie müssen lediglich von Paket zu Paket wechseln und Eigenschaften verwenden, um die komprimierte Größe anzuzeigen.

Ich möchte wissen, ob es eine Möglichkeit gibt, die Größe eines Pakets in Terminal und Synaptic zu ermitteln, bevor es heruntergeladen und installiert wird.

Seth
quelle

Antworten:

27

Im Terminal für ein einzelnes Paket:

apt-cache --no-all-versions show $package | grep '^Size: '

für mehr als ein paket:

apt-cache --no-all-versions show $packages | 
    awk '$1 == "Package:" { p = $2 }
         $1 == "Size:"    { printf("%10d %s\n", $2, p) }'

Ich habe keine Ahnung von Synaptic.

Enzotib
quelle
Was ist das für eine Einheit?
Tatsu
Ich denke, das Sizesind Bytes und Installed-SizeKiB, aber ich weiß nicht, ob dies irgendwo definiert ist. ZB Firefox-Versionen:apt-cache show firefox | grep -E "Package:|Version:|Size:"
Mikko Rantalainen
Beabsichtigte menschliche CLI ist heutzutage apt. Zum Beispielapt show firefox | grep Size
Mikko Rantalainen
Gefundene Dokumentation: Das apt-cache showwird den tatsächlichen Wert ausgeben, der in der Datei angegeben ist, debian/controlderen Dokumentation Installed-Sizehier zu finden ist: debian.org/doc/debian-policy/…
Mikko Rantalainen
11

apt-cache show <package>oder aptitude show <package>zeigt weitere Informationen zu einem Paket an, einschließlich seiner Größe.

Nur für die Paketgröße können Sie Folgendes verwenden:

apt-cache show <package> | grep Installed-Size

oder

aptitude show <package> | grep 'Uncompressed Size'

Für .debPakete können Sie verwenden:

dpkg-deb -I <package>.deb | grep Installed-Size
Radu Rădeanu
quelle
1
Wird es auch die Größe der Abhängigkeiten anzeigen?
Tachyons
@Tachyons Die Frage ist: " Gibt es eine Möglichkeit, die Paketgröße zu ermitteln ? ". Wenn Sie sich für die Größe von Abhängigkeiten interessieren, können Sie über die Schaltfläche Frage stellen eine weitere Frage stellen.
Radu Rădeanu
1
Die Angabe der Größe der Dep's kann Ihre Antwort jedoch effizienter machen. Nur ein Vorschlag, mein Freund, :)
Dienstag,
1
@ Jaidpkg-deb -I <package>.deb | grep Installed-Size
Radu Rădeanu
3
Für mich gibt es 68 ... MB zurück? GB? Löffel?
Puk
5

Sie können den "Probelauf" -Modus verwenden, der nur vorgibt, Pakete herunterzuladen und zu installieren

$ aptitude install -sy xlockmore
The following NEW packages will be installed:
  xlockmore 
0 packages upgraded, 1 newly installed, 0 to remove and 27 not upgraded.
Need to get 194 kB of archives. After unpacking 373 kB will be used.
Would download/install/remove packages.
Adam Byrtek
quelle
Versucht, aber ich sehe die Größe nicht. Die Zeile: Müssen x Archive bekommen. Nach dem Auspacken wird x verwendet. zeigt nicht.
1
Sorry, das sollte aptitude nicht apt-get sein (ich habe einen Shell-Alias ​​dafür). Aktualisiert. Diese Lösung bietet den Vorteil, dass angezeigt wird, was Sie wirklich herunterladen müssen (wobei bereits installierte Abhängigkeiten nicht berücksichtigt werden).
Adam Byrtek
5

Dies ist auch richtig, aber die Größe wird in Bytes angezeigt. Und dies zeigt die Größe im besseren Format, aber wenn das Paket sehr klein ist (sagen wir <1 MB) echo 'n', wird das Paket trotzdem installiert (da in diesem Fall apt nicht auffordert).

So verwenden Sie --no-downloadmit --assume-nowie folgt:

sudo apt-get --no-download --assume-no install <package_name> | grep 'Need to get'

Hier wird --no-downloadargumentiert, dass das Paket nicht heruntergeladen werden soll, und --assume-nofür den nFall, dass eine Eingabeaufforderung vorliegt, wird no ( ) angenommen .

Beispiel:

$ sudo apt-get --no-download --assume-no install ttf-devanagari-fonts 2>/dev/null | grep 'Need to get'
Need to get 938 kB of archives.
Pandya
quelle
Diese Antwort ist großartig, da sie auch Abhängigkeiten enthält. Um den 'echten' Speicherplatz anzuzeigen, der verbraucht sein wird, suchen Sie nach 'zusätzlichem Speicherplatz'
Panki
0

Mit dem folgenden Befehl können Sie die Größe der Archive ermitteln, die für ein bestimmtes Paket heruntergeladen werden müssen.

echo 'n' | sudo apt-get install package | awk '/^Need to get/ {print $4,$5}'

@enzotib Antwort ist gut, aber es zeigt die Größe der Archive, die in einem anderen Format heruntergeladen werden müssen, nicht in MB. Dieser Befehl zeigt jedoch die Größe in MB an.

Beispiel:

$ apt-cache --no-all-versions show chromium-browser | grep '^Size: '
Size: 41493718

$ echo 'n' | sudo apt-get install chromium-browser | awk '/^Need to get/ {print $4,$5}'
44.4 MB
Avinash Raj
quelle
echo 'n' | sudo apt-get install <package>Wenn das Paket sehr klein ist, werden immer noch Sterne installiert
Pandya