Я использую Vagrant для создания воспроизводимой виртуальной машины для одного из моих проектов. Этой виртуальной машине нужен базовый стек LEMP, и я использую сценарий оболочки для его подготовки после его создания.
У меня проблемы с установкой nginx из исходников. Сценарий подготовки выглядит следующим образом:
#!/bin/bash
# nginx settings
NGINX_VERSION=1.4.7
NGINX_SOURCE=http://nginx.org/download/nginx-$NGINX_VERSION.tar.gz
echo "==> Installing required packages and upgrading"
apt-get -u update
apt-get install make
echo "==> Checking if nginx is installed"
if [ ! -e /opt/nginx-$NGINX_VERSION ]
then
echo "==> nginx not installed, installing nginx $NGINX_VERSION"
# Download nginx to /usr/src and cd into the extracted directory
cd /usr/src
wget $NGINX_SOURCE
tar xf nginx-$NGINX_VERSION.tar.gz
cd nginx-$NGINX_VERSION
# Configure nginx
./configure --with-pcre --with-http_ssl_module --with-http_spdy_module --with-http_gunzip_module --with-http_gzip_static_module --with-http_stub_status_module --prefix=/opt/nginx-$NGINX_VERSION
# Make nginx and install it
make
make install
fi
Процесс не удается make
и make install
шаги, приводящие к следующим ошибкам:
make: *** No rule to make target `build', needed by `default'. Stop.
make: *** No rule to make target `install'. Stop.
Мне пришлось установить make
с помощью apt-get
в начале скрипта, потому что изображение, которое я использую, еще не содержит make
установлены. Образ представляет собой 64-разрядный образ Ubuntu Server 12.04.
Я подтвердил, что nginx успешно загружается и извлекается, проверив usr/src
каталог после запуска скриптов.
Погуглите make
Ошибки не возвращают ничего полезного, с чем я могу работать, поскольку все они относятся к установке программного обеспечения, которое я не использую.
Любые идеи?
У меня была такая же проблема на моем centos7
тоже, поэтому оказалось, что я не установил одноранговые пакеты полностью. Таким образом, это может решить вашу проблему, если вы тоже используете centos:
yum install -y gcc pcre pcre-devel openssl openssl-devel gd gd-devel
Я не вижу причины, по которой вы устанавливаете NginX из исходного кода, поскольку вы не сказали никакой причины. Так что я просто оставляю это здесь с официального сайта:
Для Ubuntu заменить codename
с кодовым именем дистрибутива Ubuntu и добавьте следующее в конец /etc/apt/sources.list
файл:
deb http://nginx.org/packages/mainline/ubuntu/ codename nginx
deb-src http://nginx.org/packages/mainline/ubuntu/ codename nginx
Для Debian / Ubuntu выполните следующие команды:
apt-get update
apt-get install nginx
Ubuntu:
Version Codename Supported Platforms
12.04 precise x86_64, i386
14.04 trusty x86_64, i386, aarch64/arm64
16.04 xenial x86_64, i386, ppc64el, aarch64/arm64
16.10 yakkety x86_64, i386
Это происходит, когда какая-то библиотека отсутствует. Как я вижу, это своего рода попытка и ошибка.
например: вам необходимо установить библиотеки PCRE для компиляции Nginx. Попробуй это:
apt-get install libpcre3 libpcre3-dev
apt-get install openssl
apt-get install libssl-dev
Если не работает, значит, чего-то еще не хватает ... как в моем случае.
Изменить: также убедитесь, что у вас установлен zlib
apt-get install --reinstall zlibc zlib1g zlib1g-dev
Также я перешел на новейшую версию nginx, а затем смог скомпилировать.