Я использую Бродягу для создания восстанавливаемой виртуальной машины для одного из моих проектов. Этой виртуальной машине нужен основной стек 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
установленный. Изображением является Сервер Ubuntu 12,04 64-разрядных изображений.
Я проверил, что nginx успешно загружается и извлек путем проверки usr/src
каталог после выполнений сценариев.
Поиск с помощью Google make
ошибки не делают seemm для возврата чего-либо полезного, я могу работать с тем, поскольку они все характерны для установки программного обеспечения, которое я не использую.
Какие-либо идеи?
Это происходит, когда какая-то библиотека отсутствует. Насколько я понимаю, это своего рода попытка и ошибка.
например: вам нужно установить библиотеки 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, а затем я смог скомпилировать.
Я не вижу причины, по которой вы устанавливаете NginX из исходного кода, поскольку вы не сказали никакой причины. Так что я просто оставляю здесь это с официального сайта:
Для Ubuntu замените кодовое имя
на кодовое имя дистрибутива 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
I была такая же проблема на моем [1165 636] centos7 тоже, поэтому оказалось, что я не установил одноранговые пакеты полностью. Таким образом, это может решить вашу проблему, если вы тоже используете centos:
yum install -y gcc pcre pcre-devel openssl openssl-devel gd gd-devel