Обновление 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

Все готово. Свежая версия установилась без проблем.


Создано:
Автор:
« Назад на главную

comments powered by Disqus
Fork me on GitHub