Ошибка, устанавливающая пакет NGINX на человечности 18.04

Я плохо знаком с Ubuntu. Я должен включить brotli сжатие на nginx сервере.

Я пытаюсь установить NGINX с BROTLI от ссылки ниже. https://www.howtoforge.com/tutorial/how-to-install-nginx-with-brotli-compression-on-ubuntu-1804/

когда я пытаюсь установить пакет сборки согласно ссылке, я получаю ошибку.

root@sachin-virtual-machine:/usr/local/src# ls
nginx-1.14.2                           nginx_1.14.2-1~bionic.dsc
nginx_1.14.2-1~bionic_amd64.buildinfo  nginx_1.14.2.orig.tar.gz
nginx_1.14.2-1~bionic_amd64.changes    nginx-dbg_1.14.2-1~bionic_amd64.deb
nginx_1.14.2-1~bionic_amd64.deb        ngx_brotli
nginx_1.14.2-1~bionic.debian.tar.xz
root@sachin-virtual-machine:/usr/local/src# sudo dpkg -i *.deb
dpkg: regarding nginx_1.14.2-1~bionic_amd64.deb containing nginx:
nginx conflicts with nginx-common
nginx-common (version 1.14.0-0ubuntu1.2) is present and installed.

dpkg: error processing archive nginx_1.14.2-1~bionic_amd64.deb (--install):
conflicting packages - not installing nginx
(Reading database ... 175249 files and directories currently installed.)
Preparing to unpack nginx-dbg_1.14.2-1~bionic_amd64.deb ...
Unpacking nginx-dbg (1.14.2-1~bionic) over (1.14.2-1~bionic) ...
dpkg: dependency problems prevent configuration of nginx-dbg:
nginx-dbg depends on nginx (= 1.14.2-1~bionic); however:
Version of nginx on system is 1.14.0-0ubuntu1.2.
Version of nginx on system, provided by nginx-core:amd64, is <none>.

dpkg: error processing package nginx-dbg (--install):
dependency problems - leaving unconfigured
Errors were encountered while processing:
nginx_1.14.2-1~bionic_amd64.deb
nginx-dbg
root@sachin-virtual-machine:/usr/local/src#

Ведите меня с этим.

2
задан 3 January 2019 в 10:25

2 ответа

У Вас уже есть nginx, установленный, таким образом, необходимо удалить ту версию, чтобы смочь создать и установить из источника.

  1. Проверьте на новую установку nginx и удалите его

    dpkg -l nginx*
    
    • Необходимо видеть версию 1.14.2, удалите его с sudo dpkg remove nginx-1.14.2, и убедитесь, что Вы используете правильный номер версии.
  2. Теперь сделайте sudo apt update и sudo apt upgrade для проверки они не проблемы.

  3. Теперь удалите старую версию sudo apt purge <nginx-1.14.0>

  4. Теперь сборка, что новая версия и установка и если любые выполненные проблемы sudo apt install -f
0
ответ дан 2 December 2019 в 06:39

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

#!/bin/bash
# https://www.majlovesreg.one/tag/code/
# https://www.majlovesreg.one/adding-brotli-to-a-built-nginx-instance

# For custom NGINX version, use:
# ngver=1.14.2
# For passing via the command line, use:
# ngver=$1
# For automated detection of installed NGINX, use:
ngver=$(nginx -v 2>&1 | grep -oP '(?<=/).*')

moddir=/usr/share/nginx/modules
builddir=$(mktemp -d)

# Install needed development packages if not yet installed in the system
# sudo apt -y install git libpcre3 libpcre3-dev zlib1g zlib1g-dev openssl libssl-dev

# Build in tmp directory
cd ${builddir}

# Download and unpack NGINX
wget https://nginx.org/download/nginx-${ngver}.tar.gz && { tar zxf nginx-${ngver}.tar.gz && rm nginx-${ngver}.tar.gz; } || { echo '!! download failed, exiting...'; exit 1; }

# Download, initialize, and make Brotli for NGINX
git clone https://github.com/google/ngx_brotli.git
cd ngx_brotli && git submodule update --init && cd ../nginx-${ngver}
nice -n 19 ionice -c 3 ./configure --with-compat --add-dynamic-module=../ngx_brotli || { echo '!! configure failed, exiting...'; exit 2; }
nice -n 19 ionice -c 3 make modules || { echo '!! make failed, exiting...'; exit 3; }

# Replace brotli in modules directory, i.e. /usr/share/nginx/modules/
[ -f ${moddir}/ngx_http_brotli_filter_module.so ] && sudo mv ${moddir}/ngx_http_brotli_filter_module.so ${moddir}/ngx_http_brotli_filter_module.so.old
[ -f ${moddir}/ngx_http_brotli_static_module.so ] && sudo mv ${moddir}/ngx_http_brotli_static_module.so ${moddir}/ngx_http_brotli_static_module.so.old
sudo cp objs/*.so ${moddir}/
sudo chmod 644 ${moddir}/ngx_http_brotli_filter_module.so
sudo chmod 644 ${moddir}/ngx_http_brotli_static_module.so
cd ${builddir}

# If new module works well, clean up build files
sudo nginx -t && { sudo rm -r ${builddir}/ngx_brotli; rm -r ${builddir}/nginx-${ngver}; } || { echo '!! nginx conf failed, exiting...'; exit 4; }

# Restart NGINX
systemctl is-active nginx && sudo systemctl restart nginx || sudo systemctl start nginx
echo
systemctl --no-pager status nginx
echo
echo 'Build and install of ngx_brotli sucessful!'
echo

После этого необходимо будет загрузить динамические модули путем включения их nginx.conf:

load_module modules/ngx_http_brotli_filter_module.so;
load_module modules/ngx_http_brotli_static_module.so;

Этот ответ был взят от этой веб-страницы: https://www.majlovesreg.one/adding-brotli-to-a-built-nginx-instance

0
ответ дан 2 December 2019 в 06:39

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

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