Come determinare la dimensione di un pacchetto durante l'utilizzo di apt prima del download?


29

Quando si utilizza apt-get install <package_name>e ci sono dipendenze che devono essere scaricate, il terminale genera nomi di pacchetti aggiuntivi e dimensioni totali e chiede conferma prima di scaricare.

Tuttavia, quando le dipendenze sono soddisfatte e non è necessario scaricare altro che il pacchetto denominato, non viene generato alcun formato e non viene confermata.

Quando utilizzo Synaptic, posso vedere la dimensione totale che i nuovi pacchetti useranno dopo l'installazione, ma non c'è modo di vedere la dimensione che deve essere scaricata, tranne per passare da un pacchetto all'altro e usare le proprietà per vedere la dimensione compressa.

Vorrei sapere se esiste un modo per vedere le dimensioni di un pacchetto (i) nel terminale e in Synaptic prima di scaricarlo e installarlo?

Risposte:


27

Nel terminale, per un singolo pacchetto:

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

per più di un pacchetto:

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

Non ho idea di Synaptic.


che unità è questa?
Tatsu

Immagino che Sizesia byte ed Installed-Sizeè KiB ma non so se questo sia definito da nessuna parte. Ad esempio versioni di Firefox:apt-cache show firefox | grep -E "Package:|Version:|Size:"
Mikko Rantalainen,

La CLI umana prevista è al giorno d'oggi apt. Ad esempio,apt show firefox | grep Size
Mikko Rantalainen,

Trovato il documentaton: apt-cache showemetterà il valore effettivo specificato nel file debian/controldi cui è Installed-Sizepossibile trovare la documentazione qui: debian.org/doc/debian-policy/…
Mikko Rantalainen

11

apt-cache show <package>o aptitude show <package>mostrerà ulteriori informazioni su un pacchetto, compresa la sua dimensione.

Solo per le dimensioni del pacchetto, è possibile utilizzare:

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

o

aptitude show <package> | grep 'Uncompressed Size'

Per i .debpacchetti è possibile utilizzare:

dpkg-deb -I <package>.deb | grep Installed-Size

1
Mostrerà anche la dimensione delle dipendenze?
Tachyons,

@Tachyons La domanda è: " Esiste un modo per ottenere la dimensione del pacchetto? ". Se sei interessato alla dimensione delle dipendenze, puoi utilizzare il pulsante Poni domanda per porre un'altra domanda.
Radu Rădeanu,

1
Ma includere le dimensioni del dep può rendere efficiente la tua risposta. solo suggerimento amico mio, :)
rɑːdʒɑ

1
@Jaidpkg-deb -I <package>.deb | grep Installed-Size
Radu Rădeanu,

3
Per me restituisce 68 ... MB? GB? Cucchiaio?
puk

5

È possibile utilizzare la modalità "dry run", che finge solo di scaricare e installare i pacchetti

$ 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.

Ho provato ma non vedo le dimensioni. La linea: è necessario ottenere x di archivi. Dopo il disimballaggio verrà utilizzato x. non mostra.

1
Mi dispiace, questo dovrebbe essere aptitude non apt-get (ho un alias di shell per quello). Aggiornato. Questa soluzione ha il vantaggio di mostrare ciò che è veramente necessario scaricare (non conta le dipendenze già installate).
Adam Byrtek,

5

Anche questo è giusto ma la dimensione è visualizzata in byte. E questo mostra le dimensioni in un formato migliore, ma se il pacchetto è di dimensioni molto ridotte (diciamo <1 MB), nonostante echo 'n'ciò installerà il pacchetto (perché in quel caso, apt non lo richiede).

Così, Si utilizza --no-downloadcon --assume-noi seguenti:

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

Qui --no-downloadsostiene di non scaricare il pacchetto ed --assume-noè per assumere no ( n) in caso di prompt.

Esempio:

$ 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.

Questa risposta è ottima perché include anche dipendenze. Per mostrare la memoria "reale" che verrà utilizzata, grep per "spazio su disco aggiuntivo"
Panki,

0

È possibile provare il comando seguente per visualizzare le dimensioni degli archieve necessari per il download per un determinato pacchetto.

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

La risposta di @enzotib è buona, ma mostra le dimensioni degli archivi che devono essere scaricati in un altro formato non in MB. Ma questo comando mostrerà la dimensione in Mb.

Esempio:

$ 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

echo 'n' | sudo apt-get install <package>continua a installare il pacchetto se è di dimensioni molto ridotte
Pandya
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.