ошибка nginx, обновляющая веб-сервер от Ubuntu 15.10 до 16,04

Я выполняю nginx как обратный прокси апачу. Я обновляю человечность от 15,10 до 16,04, но получаю это после неудавшегося apt-get dist-upgrade и выполнение apt-get -f install

After this operation, 2,426 kB of additional disk space will be used.
Do you want to continue? [Y/n] Y
(Reading database ... 95519 files and directories currently installed.)
Preparing to unpack .../nginx_1.11.3-1~wily_amd64.deb ...
Unpacking nginx (1.11.3-1~wily) over (1.10.0-0+wily0) ...
dpkg: error processing archive /var/cache/apt/archives/nginx_1.11.3-1~wily_amd64.deb (--unpack):
 trying to overwrite '/etc/logrotate.d/nginx', which is also in package nginx-common 1.10.1-0+wily0
dpkg-deb: error: subprocess paste was killed by signal (Broken pipe)
Errors were encountered while processing:
 /var/cache/apt/archives/nginx_1.11.3-1~wily_amd64.deb
E: Sub-process /usr/bin/dpkg returned an error code (1)
2
задан 28 July 2016 в 14:45

1 ответ

Не смешивайте и соответствуйте nginx.org repos и PPAs Ubuntu для NGINX. Вы пытаетесь использовать два отдельных PPAs - 1.11.3 от восходящей Магистрали repos, и 1.10.0 от моего Стабильного PPA NGINX. Это - что-то, на что я затронул в моем сообщении в блоге здесь, когда приток ошибок запросил уведомление. (Содержание, скопированное в ниже)

Выберите один repo и отбросьте другой в Вашем /etc/apt/sources.list и /etc/apt/sources.list.d/*.list источники. Удалите более старые пакеты, если у Вас есть они. (Восходящая Магистраль repo повредит PPA, таким образом, необходимо будет удалить nginx-common, nginx-core, nginx-full, nginx-extras, nginx-light и nginx прежде чем можно будет установить более новую версию восходящего потока.

(Существует обновление PPA, выходящее в ближайшие дни для Магистрали PPA, содержащий 1.11.3),


Содержание сообщения в блоге, связанного выше:

NGINX: Смешивание и Соответствие Репозиториям Ubuntu (и команда NGINX PPAs на Панели запуска) или Репозиториям Debian с восходящими Репозиториями приведут к проблемам.

Мы видели это прежде, но мы видим его слишком часто. Люди хотят последнюю версию NGINX. Таким образом, они используют восходящий репозиторий nginx.org для получения его. Они пытаются установить, и Вы сразу получаете конфликты.

В Ubuntu люди затем регистрируют ошибки на этих взглядах, что это - проблема Ubuntu (такая как эта ошибка здесь). Проблема, это не ошибка Ubuntu. И при этом это не ошибка в PPAs, который я поддерживаю. И при этом это не ошибка в Debian. Это - проблема, которая возникает, когда Вы смешиваете восходящие репозитории и или Ubuntu, Debian, или PPAs Ubuntu и предположение, что можно 'обновить' чисто с восходящими репозиториями.

В основном это - то, к чему это сводится:

Для Debian, если Вы в зависимости от сторонних модулей, необходимо придерживаться упаковочного Debian и ожидать. Для Ubuntu необходимо использовать PPAs, который я поддерживаю (под nginx командой на Панели запуска), если Вы хотите последнее программное обеспечение и функции, базирующиеся прочь упаковочных решений Debian.

Если Вы хотите/зависите на NAXSI, хотя, у Вас нет выбора, кроме как перекомпилировать NGINX с NAXSI самих для получения его работающий нормальным способом. Ни Debian, ни Ubuntu, ни PPAs не имеют naxsi в сборках больше.

Если ни один из тех не обращается к Вам, необходимо будет произвести чистку всех nginx двоичных файлов от компьютера, и всех nginx пакетов и конфигурационных файлов с этой командой прежде, чем установить из восходящего репозитория: sudo apt-get purge nginx nginx-doc nginx-common (Это должно также произвести чистку других зависимых пакетов также),

Но, если Вам любопытно, почему Вы не можете смешать репозитории, это сообщение объясняет это с моей точки зрения. Вот разбивка того, почему Вы не можете смешать репозитории, такие как это и проблемы, с которыми Вы сталкиваетесь.


Проблема 1: Debian / Ubuntu / NGINX PPAs (сохраняемый искренне Вашим) имеют разновидности; nginx в восходящем направлении не делает.

И разновидностями, я имею в виду nginx-light, nginx-full, nginx-extras, nginx-naxsi (вплоть до 1.6.2-2), и nginx-core (Ubuntu только, начиная с Ubuntu 14.04). Каждая из этих разновидностей содержит различный набор модулей, на основе спроса, происходящего в Debian или сообществе (и в конечном счете реализованный в Debian). Я не войду в различия здесь, однако можно перейти в сюда и прочитать мой ответ на вопрос для получения дополнительной информации.

В результате того, как модули NGINX в настоящее время включаются в двоичные файлы программы, абсолютно очень важно выделить конфигурационные файлы и файлы примера по умолчанию и местоположения так, чтобы можно было переключиться между разновидностями (и обновить между версиями между Ubuntu/Debian/PPAs) без проблем и конфликта между конфигурационными файлами. Это требует введения названного пакета nginx-common – пакет, который содержит файлы и другие объекты, которые характерны для всех версий nginx разновидностей в тех версиях исходного пакета. Это nginx-common полностью детище работы Debian, и наследованный в Ubuntu и PPAs, который я поддерживаю.

Проблема: NGINX в восходящем направлении не поставляет 'разновидности'. Они включают все модули по умолчанию, которые поставляются в nginx восходящий 'базовый' код и не включают сторонних модулей, и при этом они не отличают модули для включения (для создания 'легких' сборок или 'полных' сборок). По сути, nginx восходящий пакет является единственным уединенным ‘nginx’ пакетом. Это не выделяет конфигурационные файлы, и при этом это не выделяет двоичные файлы.


Проблема 2: NGINX в восходящем направлении не имеет сторонних модулей.

Теперь, я знаю то, что Вы думаете: “Почему Debian/Ubuntu включал бы сторонние модули в упаковку?” Оказывается, в Debian, спрос на такие ‘сторонние расширения’ был так высок, что они решили включать модули. Такие модули включают nginx-lua модуль, nginx-perl модуль и даже модули NAXSI для NGINX (которые были в nginx-naxsi вплоть до 1.6.2-2).

Проблема: Это сторонние модули, сохраняемые отдельно от самой кодовой базы NGINX. Они поставляются как часть некоторых пакетов Debian, должных потребовать, но они в и себя могут вызвать упаковочные проблемы и конфликты, до такой степени, когда она требует, чтобы обновление кода модулей с каждым новым выпуском устранило проблемы в тех модулях. Это в и себя предоставляет проблемам 'пригодности для обслуживания'. Это то, почему nginx-naxsi разновидность была отброшена от NGINX в Debian и Ubuntu с версии пакета / пересмотр 1.6.2-2. Исправлять даже простые ошибки в nginx-naxsi разновидность (и ее связанные пакеты), весь модуль NAXSI должен был быть удален и заменен последними восходящими изменениями кода и плагина. Это означает, что для ровного исправления ошибок в том, как правила NAXSI были обработаны (для соответствия фактическим форматам правила, которые должны были существовать для белых списков и такого) необходимо будет сделать замену всего модуля NAXSI в nginx-naxsi разновидность. В Ubuntu это повредило бы ‘Обновление Стабильной версии’, в котором новые опции будут добавлены к пакету, который мог повредить вещи, старые функции могли быть удалены, и это пойдет вне, ‘придираются к мелочам, фиксируют’, это было бы необходимо для Обновления Стабильной версии, такого, что система никогда не будет фиксироваться.

В результате сторонние модули должны сохраняться и обновляться почти с каждым обновлением кода от NGINX в восходящем направлении. Для Магистрали NGINX модуль Lua должен был быть обновлен три раза для отказа сборки, фиксирует в PPAs. Так как много этих сторонних модулей (таких как NAXSI или Lua) пользуется спросом у сообщества, но не доступно в восходящем репозитории NGINX (или в случае выпуска NAXSI, даже PPAs в наше время), Вы не должны смешивать репозитории, поскольку Вы потеряете те модули, или потеряете некоторые модули и получите других.

- Автор: Thomas Ward; сайт: http://dark-net.net/; лицензия: Creative Commons Attribution-NonCommercial-ShareAlike 4.0 международная лицензия

4
ответ дан 2 December 2019 в 02:18

Другие вопросы по тегам:

Похожие вопросы: