Take the 2-minute tour ×
Server Fault is a question and answer site for professional system and network administrators. It's 100% free, no registration required.

I'm using Vagrant to build a reproducible virtual machine for one of my projects. This virtual machine needs a basic LEMP stack, and I'm using a shell script to provision it after it's created.

The part I'm having trouble with is installing nginx from source. The provisioning script is as follows:

#!/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

The process fails at the make and make install steps, producing the following errors:

make: *** No rule to make target `build', needed by `default'.  Stop.
make: *** No rule to make target `install'.  Stop.

I've had to install make using apt-get at the start of the script because the image I'm using doesn't already have make installed. The image is a Ubuntu Server 12.04 64-bit image.

I've verified that nginx gets successfully downloaded and extracted by checking the usr/src directory after the scripts runs.

Googling the make errors doesn't seemm to return anything useful I can work with as they're all specific to installing software that I'm not using.

Any ideas?

share|improve this question
    
Why not use the binary package from your distro? –  EEAA Apr 3 at 22:10
    
AFAIK Ubuntu 12.04 doesn't have the latest version of nginx available via apt-get. –  Chris White Apr 3 at 22:17
    
Do you need the latest version? Newest is often not the most stable, and using your distribution's nginx package is much easier in every regard. Best practice is to always use official distro packages unless there is a very specific need for a different version, and even then, build your own binary packages. Never compile anything on your servers. –  EEAA Apr 3 at 22:35
    
This is largely not what you want to do. Build your own packages if you need a newer version, and have apt use those instead. Don't try to build nginx from source every time a vagrant machine starts up. –  devicenull Apr 3 at 23:55
    
There is official repo and PPA on Launchpad. The most common reason to rebuild nginx is to include some third-party modules. But even in this case you should build binary package somewhere else as @EEAA says. –  Alexey Ten Apr 4 at 6:37
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Browse other questions tagged or ask your own question.