Как определить размер пакета при использовании apt перед загрузкой?

При использовании apt-get install <package_name> и при наличии зависимостей, которые необходимо загрузить, терминал выводит имена дополнительных пакетов и общий размер и запрашивает подтверждение перед загрузкой.

Но, когда зависимости удовлетворены, и не нужно загружать ничего, кроме именованного пакета, вывод размера и подтверждение отсутствуют.

При использовании Synaptic я вижу общий размер новых пакетов, которые будут использоваться после установки, но не могу увидеть размер, который необходимо загрузить, кроме перехода от пакета к пакету и использования свойств, чтобы увидеть сжатый размер.

Хотелось бы узнать, есть ли способ увидеть размер пакета (ов) в терминале и Synaptic до его загрузки и установки?

39
задан 6 June 2014 в 00:41

7 ответов

В терминале для одного пакета:

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

для более чем пакета:

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

Понятия не имею о Synaptic.

30
ответ дан 6 June 2014 в 00:41

apt-cache show или aptitude show покажет больше информация о пакете, включая его размер.

Только для размера пакета вы можете использовать:

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

или

aptitude show <package> | grep 'Uncompressed Size'

Для .deb пакетов вы можете использовать:

dpkg-deb -I <package>.deb | grep Installed-Size
11
ответ дан 6 June 2014 в 00:41

вам лучше добавить параметр -a в команду cp , чтобы сохранить дату и время файла, статистику файла и т. Д. 121 --- 898175-

Это тоже верно, но размер отображается в байтах. И этот показывает размер в лучшем формате, но если размер пакета очень маленький (скажем, <1 МБ), то, несмотря на echo 'n' , он установит пакет (потому что в этом случае , apt не запрашивает).

Итак, вы используете - no-download с - accept-no следующим образом:

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

Здесь - no-download утверждает, что не загружает пакет, а - accept-no означает принятие no ( n ) в случае любого запроса.

Пример:

$ 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.
6
ответ дан 6 June 2014 в 00:41

Можно использовать режим "сухого хода", который только делает вид, что загружает и устанавливает пакеты

$ 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.
6
ответ дан 6 June 2014 в 00:41

. Вы можете попробовать следующую команду, чтобы увидеть размер архивов, которые необходимо загружен для определенного пакета.

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

Ответ @enzotib хорош, но он показывает размер архивов, которые необходимо загрузить в другом формате, а не в мегабайтах. Но эта команда покажет размер в мегабайтах.

Пример :

$ 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
0
ответ дан 6 June 2014 в 00:41

Самый последний и лучший способ сделать это - использовать apt show , который включает единицы:

apt show firefox | grep Size

Installed-Size: 202 MB
Download-Size: 51.7 MB

apt show может быть используется для просмотра большого количества другой полезной информации о пакете перед его установкой, включая версию, зависимости, «Прерывания», «Замены» и описание.

3
ответ дан 5 January 2021 в 23:54

, пытающийся получить полный размер, включая зависимости для данного пакета на Ubuntu 20.10:

# export package=fonts-deva
# apt-get --dry-run --assume-no --no-install-recommends install "$package" |
  grep Inst | awk '{print $2}' |
  xargs -i apt-cache show --no-all-versions {} | grep "Installed-Size" |
  awk '{s+=$2} END {print s " kB"}'
4447 kB

Это проходит через Установка сухая прогона, чтобы увидеть, какие пакеты будут установлены и суммирует их установленный размер.

Почему такой сложный подход?
Существуют проблемы с существующими ответами:

  • Размер зависимостей может быть не включен
  • Parsing APT-Get Expution для сообщения После этой операции будет использоваться 4554 КБ дополнительного дискового пространства. не будет работать для небольших пакетов, которые устанавливаются без [Y / N] запросов.
  • Использование APT-Get --No-Download --assume-no Установка шрифтов-deva не работает для меня:
    E: невозможно получить некоторые архивы, возможно, запустить APT-Get Обновите или попробуйте с IFIX-отсутствующим?
0
ответ дан 2 April 2021 в 01:51

Другие вопросы по тегам:

Похожие вопросы: