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

Обновление nginx-full 1.2.1 до nginx 1.2.6 с PPA в Ubuntu 12.10

Я пытаюсь обновить nginx 1.2.1 до версии 1.2.6 на ubuntu 12.10, но безуспешно. Я ранее устанавливал nginx, используя apt-get install nginx-full потому что мне нужны были модули, а не сборка из исходников. Но теперь я не могу «перезаписать» старый пакет с помощью apt-get снизу

$ apt-get install nginx
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following NEW packages will be installed:
  nginx
0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
Need to get 415 kB of archives.
After this operation, 930 kB of additional disk space will be used.
Get:1 http://nginx.org/packages/ubuntu/ quantal/nginx nginx amd64 1.2.6-1~quantal [415 kB]
Fetched 415 kB in 2s (186 kB/s)
Selecting previously unselected package nginx.
(Reading database ... 77029 files and directories currently installed.)
Unpacking nginx (from .../nginx_1.2.6-1~quantal_amd64.deb) ...
----------------------------------------------------------------------

Thanks for using NGINX!

Check out our community web site:
* http://nginx.org/en/support.html

If you have questions about commercial support for NGINX please visit:
* http://www.nginx.com/support.html

----------------------------------------------------------------------
dpkg: error processing /var/cache/apt/archives/nginx_1.2.6-1~quantal_amd64.deb (--unpack):
trying to overwrite '/usr/sbin/nginx', which is also in package nginx-full 1.2.1-2.2
No apport report written because MaxReports is reached already
                                                          dpkg-deb: error: subprocess paste was killed by signal (Broken pipe)
Errors were encountered while processing:
/var/cache/apt/archives/nginx_1.2.6-1~quantal_amd64.deb
E: Sub-process /usr/bin/dpkg returned an error code (1)

Я не хочу связываться со всеми настроенными веб-сайтами, которые у меня есть в nginx, есть ли безопасный метод обновления в этом случае? Мне нужны realip_module, upstream_module, rewrite_module, memcached_module, headers_module, fastcgi_module, но я не знаю, что в пакете nginx из PPA есть все модули внутри пакета.

Нашел ответ от http://www.webupd8.org/2011/02/fix-dpkg-error-trying-to-overwrite-x.html

Исправить это (в большинстве случаев, но, вероятно, не во всех) довольно просто: найдите путь к файлу, который вызвал ошибку - в моем первом примере это будет "/var/cache/apt/archives/smplayer_0.6.9+svn3595-1ppa1 ~ maverick1_i386.deb ", выполните следующую команду:

sudo dpkg -i --force-overwrite /var/cache/apt/archives/smplayer_0.6.9+svn3595-1ppa1~maverick1_i386.deb

Если «--force-overwrite» не работает, вы можете вместо этого попробовать «--force-all».

В приведенной выше команде замените "/ var ..." точным путем к .deb, вызвавшему ошибку на вашем компьютере. Если вы установили его из репозитория, .deb находится в / var / cache / apt / archives, но если нет, то там, где вы его загрузили (в любом случае ошибка должна отображать точный путь, поэтому вы не должны не надо искать вручную).

Приведенная выше команда принудительно перезаписывает файл, который существует в двух пакетах и ​​вызвала ошибку. Затем, чтобы убедиться, что все пакеты установлены успешно, также выполните следующую команду:

sudo apt-get install -f