Ошибки dpkg при попытке установки nginx

Вопрос или проблема

Пытаюсь установить nginx:

  1. Сначала:

    sudo curl -sL https://deb.nodesource.com/setup_lts.x | sudo -E bash -
    

    Результат:

    Всё выглядит нормально:

    > ## Запустите `sudo apt-get install -y nodejs`, чтобы установить Node.js 16.x и npm
    > ## Вам также могут понадобиться инструменты разработки для сборки нативных добавлений:
    >      sudo apt-get install gcc g++ make
    > ## Чтобы установить менеджер пакетов Yarn, выполните:
    >      curl -sL https://dl.yarnpkg.com/debian/pubkey.gpg | gpg --dearmor | sudo tee /usr/share/keyrings/yarnkey.gpg >/dev/null
    >      echo "deb [signed-by=/usr/share/keyrings/yarnkey.gpg] https://dl.yarnpkg.com/debian stable main" | sudo tee
    > /etc/apt/sources.list.d/yarn.list
    >      sudo apt-get update && sudo apt-get install yarn
    
  2. Затем:

    sudo apt install -y nodejs nano nginx
    

    Всё выглядит нормально, но предложили выполнить apt --fix-broken install

    Возможно, вам стоит запустить 'apt --fix-broken install', чтобы исправить это.
    Следующие пакеты имеют неудовлетворенные зависимости:
     nginx : Зависит: nginx-core (< 1.18.0-6ubuntu11.1~), но он не будет установлен или
                      nginx-full (< 1.18.0-6ubuntu11.1~), но он не будет установлен или
                      nginx-light (< 1.18.0-6ubuntu11.1~), но он не будет установлен или
                      nginx-extras (< 1.18.0-6ubuntu11.1~), но он не будет установлен
             Зависит: nginx-core (>= 1.18.0-6ubuntu11), но он не будет установлен или
                      nginx-full (>= 1.18.0-6ubuntu11), но он не будет установлен или
                      nginx-light (>= 1.18.0-6ubuntu11), но он не будет установлен или
                      nginx-extras (>= 1.18.0-6ubuntu11), но он не будет установлен
    E: Неудовлетворенные зависимости. Попробуйте 'apt --fix-broken install' без пакетов (или укажите решение).
    
  3. Запустите:

    apt --fix-broken install
    

    Есть ошибки:

    dpkg: ошибка обработки архива /var/cache/apt/archives/nodejs_16.13.0-deb-1nodesource1_amd64.deb (--unpack):
     пытаюсь перезаписать '/usr/share/doc/nodejs/api/fs.html', который также содержится в пакете nodejs-doc 12.22.5~dfsg-5ubuntu1
    dpkg-deb: ошибка: процесс вставки был убит сигналом (Broken pipe)
    Ошибки возникли при обработке:
     /var/cache/apt/archives/nodejs_16.13.0-deb-1nodesource1_amd64.deb
    needrestart пропускается, так как dpkg не завершился успешно
    E: Подпроцесс /usr/bin/dpkg вернул код ошибки (1)
    

Я не знаю, что делать дальше, но, похоже, nginx не установлен

Вы сказали, что не могли даже выполнить apt-get install nginx. У меня была такая же проблема, и в моем случае я не мог даже удалить, пока не удалил вручную все существующие экземпляры nginx. Похоже, я когда-то пытался установить nginx, но не помню об этом, и моя установка оказалась в беспорядке. Попробуйте

$ whereis nginx
nginx: /usr/sbin/nginx /usr/lib/nginx /usr/share/nginx /usr/share/man/man8/nginx.8.gz

Я сделал так: принудительно удалил все с помощью rm -rf и затем удалил существующие символические ссылки, которые нашёл. После этого я наконец смог удалить все упомянутые пакеты, связанные с nginx, и действительно переустановить nginx.

wget https://launchpad.net/ubuntu/+archive/primary/+sourcefiles/nginx/1.18.0-6ubuntu11/nginx_1.18.0.orig.tar.gz
# извлечь
cd nginx_1.18.0.orig/nginx-1.18.0/
./configure
make

Я установил из источника (что не мог сделать, пока не удалил все предыдущие материалы), но также должно быть возможно использовать apt-get install nginx.

Ответ или решение

Чтобы решить проблему с установкой nginx и ошибками dpkg, следует выполнить несколько шагов для устранения конфликтов зависимостей и чистки системных пакетов. Вот подробная инструкция:

Шаг 1: Проверка наличия установленных пакетов

Сначала, давайте проверим, установлены ли у вас какие-либо версии nginx или nodejs:

whereis nginx
whereis nodejs

Шаг 2: Устранение проблем с зависимостями

Если вы видите, что установлены конфликтующие пакеты (например, nodejs-doc), попробуйте удалить их:

sudo apt remove nodejs-doc

Шаг 3: Очистка кэша apt

Иногда кэшированные пакеты могут вызвать дополнительные проблемы. Выполните очистку кэша:

sudo apt clean

Шаг 4: Исправление поврежденных пакетов

Запустите команду для исправления поврежденных установок:

sudo apt --fix-broken install

Если эта команда выдаст ошибки, связанные с конкретными файлами или пакетами, вы можете попробовать удалить упоминаемые пакеты принудительно:

sudo dpkg --remove --force-remove-reinstreq nodejs
sudo dpkg --remove --force-remove-reinstreq nodejs-doc

Шаг 5: Переустановка nodejs

Теперь загрузим и установим nodejs заново с помощью следующей команды:

sudo apt install -y nodejs

Шаг 6: Установка nginx

После успешно установленного nodejs, вы можете попробовать снова установить nginx:

sudo apt update
sudo apt install -y nginx

Шаг 7: Проверка статуса установки

Проверьте, установлен ли nginx и запущен ли он:

sudo systemctl status nginx

Дополнительные шаги при проблемах

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

sudo rm -rf /usr/sbin/nginx
sudo rm -rf /usr/lib/nginx
sudo rm -rf /usr/share/nginx
sudo rm -rf /usr/share/doc/nodejs

Удаление пакетов вручную (в крайнем случае)

Если все указанные выше действия не помогли, вы можете попробовать удалить пакеты вручную с помощью dpkg:

sudo dpkg --remove --force-remove-reinstreq имя_пакета

Способы установки nginx из исходников

Если после всех попыток вы по-прежнему не можете установить nginx через apt, вы можете установить его из исходников:

  1. Скачайте исходный код nginx:
wget https://nginx.org/download/nginx-1.18.0.tar.gz
  1. Распакуйте архив:
tar -xzvf nginx-1.18.0.tar.gz
cd nginx-1.18.0
  1. Соберите и установите nginx:
./configure
make
sudo make install

Заключение

Следуя приведенным выше шагам, вы должны были разрешить проблемы с установкой nginx и nodejs. Если у вас возникли дополнительные вопросы, не стесняйтесь обращаться за помощью!

Оцените материал
Добавить комментарий

Капча загружается...