Рейтинг:5

Сервер Centos 7 с Nginx сообщает об ошибках при обновлении пакетов

флаг cn

У меня есть виртуальная машина CentOS 7 с установленным Nginx. Я использую Webmin для администрирования сервера.

Обычно он устанавливает обновления автоматически, но обновление nginx не удалось, поэтому я попытался выполнить обновление вручную. Он возвращает это:

Установка пакетов с помощью команды /bin/yum -y install nginx ..
Загруженные плагины: fastmirror
Загрузка зеркальных скоростей из кэшированного хост-файла
 * база: зеркало.netsite.dk
 * epel: зеркало.netsite.dk
 * дополнительные материалы: mirror.netsite.dk
 * обновления: зеркало.netsite.dk
Разрешение зависимостей
--> Запуск проверки транзакции
---> Пакет nginx.x86_64 1:1.20.1-9.el7 будет обновлен
--> Зависимость обработки: nginx(abi) = 1.20.1 для пакета: 1:nginx-mod-mail-1.20.1-9.el7.x86_64
--> Зависимость обработки: nginx(abi) = 1.20.1 для пакета: 1:nginx-mod-stream-1.20.1-9.el7.x86_64
--> Зависимость от обработки: nginx(abi) = 1.20.1 для пакета: 1:nginx-mod-http-perl-1.20.1-9.el7.x86_64
--> Зависимость от обработки: nginx(abi) = 1.20.1 для пакета: 1:nginx-mod-http-image-filter-1.20.1-9.el7.x86_64
--> Зависимость от обработки: nginx(abi) = 1.20.1 для пакета: 1:nginx-mod-http-xslt-filter-1.20.1-9.el7.x86_64
---> Пакет nginx.x86_64 1:1.20.2-1.el7.ngx будет обновлением
--> Завершенное разрешение зависимостей
Ошибка: Пакет: 1:nginx-mod-http-perl-1.20.1-9.el7.x86_64 (@epel)
           Требуется: nginx(аби) = 1.20.1
           Удаление: 1: nginx-1.20.1-9.el7.x86_64 (@epel)
               нгинкс(аби) = 1.20.1
           Обновлено: 1:nginx-1.20.2-1.el7.ngx.x86_64 (nginx)
               Не найден
Ошибка: Пакет: 1:nginx-mod-stream-1.20.1-9.el7.x86_64 (@epel)
           Требуется: nginx(аби) = 1.20.1
           Удаление: 1: nginx-1.20.1-9.el7.x86_64 (@epel)
               нгинкс(аби) = 1.20.1
           Обновлено: 1:nginx-1.20.2-1.el7.ngx.x86_64 (nginx)
               Не найден
Ошибка: Пакет: 1:nginx-mod-mail-1.20.1-9.el7.x86_64 (@epel)
           Требуется: nginx(аби) = 1.20.1
           Удаление: 1: nginx-1.20.1-9.el7.x86_64 (@epel)
               нгинкс(аби) = 1.20.1
           Обновлено: 1:nginx-1.20.2-1.el7.ngx.x86_64 (nginx)
               Не найден
Ошибка: Пакет: 1:nginx-mod-http-image-filter-1.20.1-9.el7.x86_64 (@epel)
           Требуется: nginx(аби) = 1.20.1
           Удаление: 1: nginx-1.20.1-9.el7.x86_64 (@epel)
               нгинкс(аби) = 1.20.1
           Обновлено: 1:nginx-1.20.2-1.el7.ngx.x86_64 (nginx)
               Не найден
Ошибка: Пакет: 1:nginx-mod-http-xslt-filter-1.20.1-9.el7.x86_64 (@epel)
           Требуется: nginx(аби) = 1.20.1
           Удаление: 1: nginx-1.20.1-9.el7.x86_64 (@epel)
               нгинкс(аби) = 1.20.1
           Обновлено: 1:nginx-1.20.2-1.el7.ngx.x86_64 (nginx)
               Не найден
 Вы можете попробовать использовать --skip-broken для решения проблемы
 Вы можете попробовать запустить: rpm -Va --nofiles --nodigest
.. не удалось установить!

Я попытался запустить предложенную команду rpm, а затем повторить обновление пакета. Но это не имело значения.

Я также попытался установить 19 других пакетов - все они установились правильно. Затем я снова попробовал Nginx, но он все равно не работает с той же ошибкой...Я также пытался отключить репозиторий nginx и репозиторий epel по очереди (на случай, если это было конфликтом между двумя репозиториями), но это не имело никакого значения.

Кто-нибудь знает, что вызвало эту проблему - и как ее исправить?

Заранее спасибо!

/Джон

флаг cn
Мне кажется, что новые пакеты не могут быть найдены на сервере репозитория. Вы проверили, что зеркало все еще действительно?
флаг cn
У меня та же проблема, и похоже на тот же сценарий (CentOS 7, EPEL, репозиторий Nginx, те же пакеты «Не найдены»).
флаг it
У меня та же проблема с той же настройкой (CentOS 7, EPEL, репозиторий nginx). Мои ошибки идентичны. Наши серверы C7 перестали обновляться 16 ноября, то есть [когда в репозиторий nginx была добавлена ​​версия 1.20.2] (http://nginx.org/packages/centos/7/x86_64/RPMS/). Ошибки предполагают (по крайней мере, для меня), что `yum update` пытается обновить nginx до версии 1.20.2, но пакеты nginx, предоставленные EPEL (например, [nginx-mod-mail](https://centos.pkgs. org/7/epel-x86_64/nginx-mod-mail-1.20.1-9.el7.x86_64.rpm.html)) имеют требование nginx 1.20.1 (см. «Требования»), поэтому зависимости могут не решить.
Рейтинг:5
флаг it

Я решил это для своей системы, хотя мое решение может быть применимо не ко всем, в зависимости от того, используете ли вы nginx-* модули, вызывающие проблемы с зависимостями.


Мое решение было Удалить nginx-mod-http-perl, nginx-mod-поток, nginx-мод-почта, nginx-mod-http-изображение-фильтр, и nginx-mod-http-xslt-фильтр, и тогда я смог ням обновление чтобы получить последнюю версию nginx.

Отредактировано, чтобы добавить: Помимо удаления этих пакетов, я обновил /etc/yum.repos.d/epel.repo иметь исключить=nginx*, предотвращать @эпель-предоставленные пакеты nginx от переустановки.

Это сработало для меня, потому что я на самом деле не использую функциональность, предоставляемую этими пакетами; У меня есть подозрение, что они установлены Webmin (который, как и OP, я также использую) для поддержки некоторых функций, которые он может предоставлять.

Если вы используете функции, предоставляемые этими модулями, то я думаю, что решение, по крайней мере на данный момент, состоит в том, чтобы отключить репозиторий nginx, и повторно включите его, если/когда @эпель выпускает совместимые модули. Если вы сделаете это, у вас не будет доступных обновлений nginx, так как на @эпель.


Основная проблема заключается в том, что у вас (и у меня) nginx-1.20.1-9.el7.x86_64 (@epel) установлены, но оба @эпель и нгинкс репозитории включены.

Примерно 16 ноября, нгинкс репо выпущено нгинкс-1.20.2, и теперь yum пытается обновиться до этой версии. Однако нет соответствующих 1.20.2 обновления для различных nginx-* модули установлены (либо на @эпель или на нгинкс) и поэтому их нельзя было обновить. Эти модули также требуют нгинкс(аби) = 1.20.1, который является тем, что @эпель обеспечивает (но это нгинкс делает нет кажется, обеспечивает) и поэтому проверка зависимости не удалась.

Примечание: в нашем случае мы сделал иметь нгинкс-предоставленный основной пакет был установлен в определенный момент времени, и в какой-то момент он был заменен @эпель версия - это из логов yum:

# zgrep -h nginx.x86 /var/log/yum.log-202* /var/log/yum.log
22 апр 03:55:37 Обновлено: nginx.x86_64 1:1.18.0-1.el7.ngx
30 октября 09:27:11 Обновлено: nginx.x86_64 1:1.18.0-2.el7.ngx
21 апр 08:48:33 Обновлено: nginx.x86_64 1:1.20.0-1.el7.ngx
26 мая 04:20:28 Обновлено: nginx.x86_64 1:1.20.1-1.el7.ngx
18 июня 06:46:31 Установлено: nginx.x86_64 1:1.20.1-2.el7
27 окт 04:51:03 Обновлено: nginx.x86_64 1:1.20.1-9.el7

18 июня в .ngx пакет был заменен на предоставленный @эпель. Это может иметь или не иметь отношение к рассматриваемой проблеме.

John Dalsgaard avatar
флаг cn
Привет @joel - спасибо за ваше обновление.Я также попытался удалить эти модули (пришлось игнорировать зависимости), и тогда обновление прошло успешно.
red_shift avatar
флаг cn
Я только что прошел тот же процесс, описанный здесь. Спасибо! Я добавил «exclude=nginx*» в свой репозиторий EPEL и удалил nginx. После этого я удалил nginx с помощью 'yum remove nginx', который также удалил мои модули. Мне удалось найти некоторые модули, которые я использовал, в основном репозитории nginx (https://centos.pkgs.org/7/nginx-x86_64/), но некоторых там нет. Теперь мне не хватает «nginx-mod-mail» и «nginx-mod-stream». Кстати, новый формат — «nginx-module-{имя модуля}». Кроме того, помните, что ваша старая конфигурация nginx сохраняется как /etc/nginx/nginx.conf.rpmsave.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.