Обновление Nginx 1.1 на 1.6 в Ubuntu 12.04
Решил обновить Nginx на последнюю стабильную версию, т.к. по умолчанию в Ubuntu 12.04 все еще лежит старьё Nginx 1.1, а на официальном сайте предлагают уже 1.6 и 1.7
Казалось бы, всё просто, как рекомендует официальный сайт:
Скачиваем сертификат и устанавливаем в систему:
wget http://nginx.org/keys/nginx_signing.key
sudo apt-key add nginx_signing.key
Потом открываем /etc/apt/sources.list
sudo nano /etc/apt/sources.list
и вставляем в конец файла
deb http://nginx.org/packages/ubuntu/ precise nginx
deb-src http://nginx.org/packages/ubuntu/ precise nginx
Далее выполняем обновление и получаем готовый свеженький Nginx:
sudo apt-get update
sudo apt-get dist-upgrade
Но, не тут-то было. Вместо профита получаем ошибку
dpkg: не удалось обработать параметр /var/cache/apt/archives/nginx_1.6.0-1~precise_amd64.deb (--unpack):
попытка перезаписать «/etc/logrotate.d/nginx», который уже имеется в пакете nginx-common 1.1.19-1ubuntu0.6
dpkg-deb: ошибка: подпроцесс вставка уничтожен по сигналу (Обрыв канала)
При обработке следующих пакетов произошли ошибки:
/var/cache/apt/archives/nginx_1.6.0-1~precise_amd64.deb
E: Sub-process /usr/bin/dpkg returned an error code (1)
Мол "куй господа, я сегодня работать не буду..."
Оказалось, что надо сперва удалить старую версию. Для этого снова открываем
sudo nano /etc/apt/sources.list
комментируем вставленные строчки, выполняем обновление
sudo apt-get update
а дальше, внимание, смотрим, что стоит у нас в системе?
dpkg-query -W --showformat='${Package}\n' | grep nginx
и получаем такую картину
nginx
nginx-common
nginx-full
Для успешного обновления нужно удалить их все
sudo apt-get remove nginx nginx-common nginx-full
После чего снова раскоментируем строчки /etc/apt/sources.list
и выполним sudo apt-get update
.
Теперь можно смело ставить новую версию:
sudo apt-get install nginx
Все готово. Свежая версия установилась без проблем.
Автор: keltanas
comments powered by Disqus