Bash / apt - проверить версию пакета перед установкой - PullRequest
0 голосов
/ 10 августа 2011

Команда "dpkg" имеет опцию "-E" или "--skip-same-version", чтобы не устанавливать пакет, если его версия уже установлена.

Из того, что я знаю«apt-get» не имеет ничего подобного.

Итак, я придумал это:

Installed=`sudo apt-cache policy openjdk-6-jre | sed -n '2p' | cut -c 14-` #6b20-1.9.9-0ubuntu1~10.04.2
Candidate=`sudo apt-cache policy openjdk-6-jre | sed -n '3p' | cut -c 14-` #6b20-1.9.9-0ubuntu1~10.04.2

if [ "$Installed" -ne "$Candidate" ]; then 
    apt-get -fy install openjdk-6-jre
elif [ "$Installed" -eq "$Candidate" ]; then 
    echo 'Candidate version already installed.'
fi

Мой вопрос: есть ли другой способ сделать это проще?Я пытаюсь использовать эту информацию в скрипте bash, чтобы все происходило автоматически ...

Спасибо.

...