Linux - NewbieThis Linux forum is for members that are new to Linux.
Just starting out and have a question?
If it is not in the man pages or the how-to's this is the place!
Welcome to LinuxQuestions.org, a friendly and active Linux Community.
You are currently viewing LQ as a guest. By joining our community you will have the ability to post topics, receive our newsletter, use the advanced search, subscribe to threads and access many other special features. Registration is quick, simple and absolutely free. Join our community today!
Note that registered members see fewer ads, and ContentLink is completely disabled once you log in.
If you have any problems with the registration process or your account login, please contact us. If you need to reset your password, click here.
Having a problem logging in? Please visit this page to clear all LQ-related cookies.
Introduction to Linux - A Hands on Guide
This guide was created as an overview of the Linux Operating System, geared toward new users as an exploration tour and getting started guide, with exercises at the end of each chapter.
For more advanced trainees it can be a desktop reference, and a collection of the base knowledge needed to proceed with system and network administration. This book contains many real life examples derived from the author's experience as a Linux system and network administrator, trainer and consultant. They hope these examples will help you to get a better understanding of the Linux system and that you feel encouraged to try out things on your own.
Click Here to receive this Complete Guide absolutely free.
configure is a script that checks to see if you have the required software dependencies to compile the application and it will configure the make file for any specific options like --without-mysql. Which means I do not want to compile mysql database support.
The configure script is specific to the application you are compiling which is why you have the ./ i.e. current working directory. Depends on the application but to install you usually need to be logged in as root. The readme instructions will specify which steps that require you to be root.
The usual steps to compile and install a program.
When you download the source code for a project
for example Apache it's usually in a "tar ball"
(looks like project-version.tar.gz)
when you extract the tar ball (tar xzvf project-version.tar.gz)
it usually creates a directory project-version
inside that directory there is the source code
Large projects get very complicated so in order to
simplify things the programmers use build tools like
autoconf. ./configure runs a script that automagically
configures things. You can pass arguments to the
configure script so it can create a Makefile that suits
your computer system. For example a project includes
a gui client but your computer doesn't have X but you
still want that program ./configure --no-gui
the options that you pass a configure script are entirely
up to the project so they vary considerably from script
to script. Usually there is the option ./configure --help
and it will list all of the possible options.
This isn't really one of the "hidden" tricks of linux like
messing w/ the kernel directly through /proc it's
pretty well documented. In fact most projects have
a file called README or INSTALL that tells you what
you need to do. Of course to make use of these
files you need to know how to extract an archive.
Oh yes ./ is a shorcut refering to the directory you are
in. so ./configure executes the configure script in the
directory you are in if there is one.
I just d/led the gaim archive from sourceforge and
it does have a configure file
and there is a file called Install with installation instructions:
If you need to do unusual things to compile the package, please try
to figure out how `configure' could check whether to do them, and mail
diffs or instructions to the address given in the `README' so they can
be considered for the next release. If at some point `config.cache'
contains results you don't want to keep, you may remove or edit it.
The file `configure.ac' is used to create `configure' by a program
called `autoconf'. You only need `configure.ac' if you want to change
it or regenerate `configure' using a newer version of `autoconf'.
The simplest way to compile this package is:
1. `cd' to the directory containing the package's source code and type
`./configure' to configure the package for your system. If you're
using `csh' on an old version of System V, you might need to type
`sh ./configure' instead to prevent `csh' from trying to execute
Running `configure' takes awhile. While running, it prints some
messages telling which features it is checking for.
2. Type `make' to compile the package.
3. Optionally, type `make check' to run any self-tests that come with
4. Type `make install' to install the programs and any data files and
5. You can remove the program binaries and object files from the
source code directory by typing `make clean'. To also remove the
files that `configure' created (so you can compile the package for
a different kind of computer), type `make distclean'. There is
also a `make maintainer-clean' target, but that is intended mainly
for the package's developers. If you use it, you may have to get
all sorts of other programs in order to regenerate files that came
with the distribution.
Compilers and Options
Some systems require unusual options for compilation or linking that
the `configure' script does not know about. You can give `configure'
initial values for variables by setting them in the environment. Using
a Bourne-compatible shell, you can do that on the command line like
CC=c89 CFLAGS=-O2 LIBS=-lposix ./configure
Or on systems that have the `env' program, you can do it like this:
env CPPFLAGS=-I/usr/local/include LDFLAGS=-s ./configure