Назад | Перейти на главную страницу

Bash if условие, чтобы проверить, нуждается ли пакет ubuntu в обновлении?

Мне нужна строка bash, чтобы проверить, нуждается ли пакет ubuntu в обновлении или нет.

Например, я хочу проверить, требуется ли обновление пакета firefox с помощью команд dpkg или apt-get.

Гипотетический пример:

# Hypothetical example pseudo-code
if [[ $(firefox_needs_upgrade) ]]; then echo "Firefox needs upgrading";fi
##Simulate an upgrade and grep for the firefox package
##Feel free to replace ' firefox' with something more specific

RET=apt-get -s upgrade | grep firefox
if [ $ret -eq 0 ]
then
    echo "I don't have access to a debian box right now"
fi

Из: https://unix.stackexchange.com/questions/19470/list-available-updates-but-do-not-install-them

Команда, которую вы ищете: apt list --upgradable 2>/dev/null.

И используя его в своем примере:

package_name=firefox
if [[ $(apt list --upgradable 2>/dev/null  | grep $package_name) ]]; then echo "${package_name} needs upgrading";fi

Примечание: 2>/dev/null используется для подавления предупреждающего сообщения от apt

Проверить версию программ, установленных под apt, можно командой:

 dpkg -l

Вы можете проверить текущий пакет, обратившись к Поиск пакетов Ubuntu. В качестве альтернативы, для любого пакета под apt (при условии, что у вас включен репозиторий обновлений) вы можете использовать команду apt-get для обновления информации о вашем пакете и проверки обновлений:

 apt-get update
 apt-get dist-upgrade

Если вы не вошли в систему как root (чего обычно следует избегать, вам, возможно, придется использовать sudo для получения достаточных привилегий):

 sudo apt-get update
 sudo apt-get dist-upgrade

Проверить apt-get страница руководства для дополнительных опций.

Наконец, вы можете искать (или подписаться на) Уведомления о безопасности Ubuntu чтобы получать уведомления о необходимых обновлениях в режиме реального времени.

Попробуйте использовать аптикрон

apt-get install apticron

После установки настройте его здесь:

/etc/apticron/apticron.conf

Он будет отправлять вам ежедневное уведомление по почте, если что-то нужно обновить.