Мне нужна строка 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
Он будет отправлять вам ежедневное уведомление по почте, если что-то нужно обновить.