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

29

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

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

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

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

Сет
источник

Ответы:

27

В терминале за одну упаковку:

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.

enzotib
источник
что это за блок?
Тацу
Я предполагаю, что Sizeэто байты и Installed-SizeKiB, но я не знаю, определено ли это где-нибудь. Например, версии Firefox:apt-cache show firefox | grep -E "Package:|Version:|Size:"
Микко Ранталайнен
Намеченный CLI человека в настоящее время apt. Например,apt show firefox | grep Size
Микко Ранталайнен
Нашел документацию: apt-cache showбудет выдано фактическое значение, указанное в файле, debian/controlдокументация Installed-Sizeкоторого находится здесь: debian.org/doc/debian-policy/…
Mikko Rantalainen
11

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

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

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

или

aptitude show <package> | grep 'Uncompressed Size'

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

dpkg-deb -I <package>.deb | grep Installed-Size
Раду Рэдяну
источник
1
Это покажет размер зависимостей тоже?
Тахион
@Tachyons Вопрос: « Есть ли какой-нибудь способ, которым я могу получить размер пакета? ». Если вас интересует размер зависимостей, вы можете использовать кнопку « Задать вопрос» , чтобы задать другой вопрос.
Раду Рэдяну
1
Но в том числе размер отдела может сделать ваш ответ эффективным. просто предложение, мой друг, :)
rʒɑdʒɑ
1
@Jaidpkg-deb -I <package>.deb | grep Installed-Size
Раду Рэдеану
3
Для меня это возвращает 68 ... МБ? GB? Ложки?
Пук
5

Вы можете использовать режим «пробного запуска», который просто делает вид, что загружает и устанавливает пакеты

$ 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.
Адам Быртек
источник
Пробовал, но я не вижу размер. Строка: нужно получить х архивов. После распаковки будет использоваться х. не показывает
1
Извините, это должно быть aptitude, а не apt-get (для этого у меня есть псевдоним оболочки). Обновлено. Преимущество этого решения - показать, что вам действительно нужно загрузить (не считая уже установленных зависимостей).
Адам Быртек
5

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

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

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

Вот --no-download утверждается, что не нужно загружать пакет, и --assume-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.
Pandya
источник
Этот ответ хорош, потому что он также включает в себя зависимости. Чтобы показать «реальное» хранилище, которое будет израсходовано, grep для «дополнительного дискового пространства»
Panki
0

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

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
Авинаш Радж
источник
echo 'n' | sudo apt-get install <package> по-прежнему звезды установки пакета, если он очень маленького размера
Pandya