bash получить размер пакета с зависимостями apt - PullRequest
0 голосов
/ 01 августа 2020

как я могу получить общую сумму для всех пакетов в l oop? Думаю, я должен использовать b c, но сейчас я ничего не понимаю

#!/bin/bash
a=$(sudo apt install $1 -s 2>/dev/null | grep Inst | awk '{ print $2 }') 
for i in $a; do
    b=$(apt show $i 2>/dev/null | grep Installed-Size | awk '{ print $2 }')  
done

1 Ответ

0 голосов
/ 02 августа 2020

вместо использования apt для извлечения информации о пакетах в скриптах вы можете использовать dpkg-query, который имеет стабильный интерфейс, как уже упоминалось в комментариях.

например, вы можете получить просто Installed-Size пакетов, по одному в строке, а затем суммируйте числа с помощью awk:

$ dpkg-query -Wf '${Installed-Size}\n' | awk '{ sum += $0 } END { print sum " KB" }'
4650121 KB

примечание, Installed-Size даст вам:

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

Дисковое пространство дается как целое значение предполагаемого установленного размера в байтах, разделенное на 1024 и округленное. вверх.

для получения дополнительной информации о dpkg-query: man dpkg-query

...