Обновление 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 содержит все модули в пакете.
1 ответ
Нашел ответ от 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, но если нет, то там, где вы его скачали (в любом случае, ошибка должна отображать ее точный путь, поэтому это нужно искать вручную).
Команда, приведенная выше, принудительно перезаписывает файл, который существует в 2 пакетах и вызывает ошибку. Затем, чтобы убедиться, что все пакеты установлены успешно, также выполните следующую команду:
sudo apt-get install -f