You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							258 lines
						
					
					
						
							8.7 KiB
						
					
					
				
			
		
		
		
			
			
			
				
					
				
				
					
				
			
		
		
	
	
							258 lines
						
					
					
						
							8.7 KiB
						
					
					
				
								%* glpk07.tex *%
							 | 
						|
								
							 | 
						|
								\chapter{Installing GLPK on Your Computer}
							 | 
						|
								\label{install}
							 | 
						|
								
							 | 
						|
								\section{Downloading the distribution tarball}
							 | 
						|
								
							 | 
						|
								The distribution tarball of the most recent version of the GLPK
							 | 
						|
								package can be found on \url{http://ftp.gnu.org/gnu/glpk/} [via http]
							 | 
						|
								and \url{ftp://ftp.gnu.org/gnu/glpk/} [via FTP]. It can also be found
							 | 
						|
								on one of the FTP mirrors; see \url{http://www.gnu.org/prep/ftp.html}.
							 | 
						|
								Please use a mirror if possible.
							 | 
						|
								
							 | 
						|
								To make sure that the GLPK distribution tarball you have downloaded is
							 | 
						|
								intact you need to download the corresponding `\verb|.sig|' file and
							 | 
						|
								run a command like this:
							 | 
						|
								
							 | 
						|
								\begin{verbatim}
							 | 
						|
								   gpg --verify glpk-4.38.tar.gz.sig
							 | 
						|
								\end{verbatim}
							 | 
						|
								
							 | 
						|
								\noindent
							 | 
						|
								If that command fails because you do not have the required public key,
							 | 
						|
								run the following command to import it:
							 | 
						|
								
							 | 
						|
								\begin{verbatim}
							 | 
						|
								   gpg --keyserver keys.gnupg.net --recv-keys 5981E818
							 | 
						|
								\end{verbatim}
							 | 
						|
								
							 | 
						|
								\noindent
							 | 
						|
								and then re-run the previous command.
							 | 
						|
								
							 | 
						|
								\section{Unpacking the distribution tarball}
							 | 
						|
								
							 | 
						|
								The GLPK package (like all other GNU software) is distributed in the
							 | 
						|
								form of packed archive. This is one file named \verb|glpk-X.Y.tar.gz|,
							 | 
						|
								where {\it X} is the major version number and {\it Y} is the minor
							 | 
						|
								version number.
							 | 
						|
								
							 | 
						|
								In order to prepare the distribution for installation you need to copy
							 | 
						|
								the GLPK distribution file to a working subdirectory and then unpack
							 | 
						|
								and unarchive the distribution file with the following command:
							 | 
						|
								
							 | 
						|
								\begin{verbatim}
							 | 
						|
								   tar zx < glpk-X.Y.tar
							 | 
						|
								\end{verbatim}
							 | 
						|
								
							 | 
						|
								\newpage
							 | 
						|
								
							 | 
						|
								\section{Configuring the package}
							 | 
						|
								
							 | 
						|
								After unpacking and unarchiving the GLPK distribution you should
							 | 
						|
								configure the package,\linebreak i.e. automatically tune it for your
							 | 
						|
								platform.
							 | 
						|
								
							 | 
						|
								Normally, you should just \verb|cd| to the subdirectory \verb|glpk-X.Y|
							 | 
						|
								and run the configure script, e.g.
							 | 
						|
								
							 | 
						|
								\begin{verbatim}
							 | 
						|
								   ./configure
							 | 
						|
								\end{verbatim}
							 | 
						|
								
							 | 
						|
								The `\verb|configure|' shell script attempts to guess correct values
							 | 
						|
								for various system-dependent variables used during compilation. It uses
							 | 
						|
								those values to create a `\verb|Makefile|' in each directory of the
							 | 
						|
								package. It also creates file `\verb|config.h|' containing
							 | 
						|
								platform-dependent definitions. Finally, it creates a shell script
							 | 
						|
								`\verb|config.status|' that you can run in the future to recreate the
							 | 
						|
								current configuration, a file `\verb|config.cache|' that saves the
							 | 
						|
								results of its tests to speed up reconfiguring, and a file
							 | 
						|
								`\verb|config.log|' containing compiler output (useful mainly for
							 | 
						|
								debugging `\verb|configure|').
							 | 
						|
								
							 | 
						|
								Running `\verb|configure|' takes about a minute. While it is running,
							 | 
						|
								it displays some informational messages that tell you what it
							 | 
						|
								is doing. If you don't want to see these messages, run
							 | 
						|
								`\verb|configure|' with its standard output redirected to
							 | 
						|
								`\verb|dev/null|'; for example, `\verb|./configure > /dev/null|'.
							 | 
						|
								
							 | 
						|
								By default both static and shared versions of the GLPK library will be
							 | 
						|
								compiled. Compilation of the shared librariy can be turned off by
							 | 
						|
								specifying the `\verb|--disable-shared|' option to `\verb|configure|':
							 | 
						|
								
							 | 
						|
								\begin{verbatim}
							 | 
						|
								   ./configure --disable-shared
							 | 
						|
								\end{verbatim}
							 | 
						|
								
							 | 
						|
								\noindent
							 | 
						|
								If you encounter problems building the library try using the above
							 | 
						|
								option, because some platforms do not support shared libraries.
							 | 
						|
								
							 | 
						|
								The GLPK package has some optional features listed below. By default
							 | 
						|
								all these features are disabled. To enable a feature the corresponding
							 | 
						|
								option should be passed to the configure script.
							 | 
						|
								
							 | 
						|
								\verb|--with-gmp         | Enable using the GNU MP bignum library
							 | 
						|
								
							 | 
						|
								This feature allows the exact simplex solver to use the GNU MP bignum
							 | 
						|
								library. If it is disabled, the exact simplex solver uses the GLPK
							 | 
						|
								bignum module, which provides the same functionality as GNU MP, however,
							 | 
						|
								it is much less efficient.
							 | 
						|
								
							 | 
						|
								For details about the GNU MP bignum library see its web page at
							 | 
						|
								\url{http://gmplib.org/}.
							 | 
						|
								
							 | 
						|
								\verb|--enable-dl        | The same as `\verb|--enable-dl=ltdl|'
							 | 
						|
								
							 | 
						|
								\verb|--enable-dl=ltdl   | Enable shared library support (GNU)
							 | 
						|
								
							 | 
						|
								\verb|--enable-dl=dlfcn  | Enable shared library support (POSIX)
							 | 
						|
								
							 | 
						|
								Currently this feature is only needed to provide dynamic linking to
							 | 
						|
								ODBC and MySQL shared libraries (see below).
							 | 
						|
								
							 | 
						|
								For details about the GNU shared library support see the manual at
							 | 
						|
								\url{http://www.gnu.org/software/libtool/manual/}.
							 | 
						|
								
							 | 
						|
								\verb|--enable-odbc      |
							 | 
						|
								Enable using ODBC table driver (\verb|libiodbc|)
							 | 
						|
								
							 | 
						|
								\verb|--enable-odbc=unix |
							 | 
						|
								Enable using ODBC table driver (\verb|libodbc|)
							 | 
						|
								
							 | 
						|
								This feature allows transmitting data between MathProg model objects
							 | 
						|
								and relational databases accessed through ODBC.
							 | 
						|
								
							 | 
						|
								For more details about this feature see the supplement ``Using Data
							 | 
						|
								Tables in the GNU MathProg Modeling Language'' (\verb|doc/tables.pdf|).
							 | 
						|
								
							 | 
						|
								\verb|--enable-mysql     |
							 | 
						|
								Enable using MySQL table driver (\verb|libmysql|)
							 | 
						|
								
							 | 
						|
								This feature allows transmitting data between MathProg model objects
							 | 
						|
								and MySQL relational databases.
							 | 
						|
								
							 | 
						|
								For more details about this feature see the supplement ``Using Data
							 | 
						|
								Tables in the GNU MathProg Modeling Language'' (\verb|doc/tables.pdf|).
							 | 
						|
								
							 | 
						|
								\section{Compiling the package}
							 | 
						|
								
							 | 
						|
								Normally, you can compile (build) the package by typing the command:
							 | 
						|
								
							 | 
						|
								\begin{verbatim}
							 | 
						|
								   make
							 | 
						|
								\end{verbatim}
							 | 
						|
								
							 | 
						|
								\noindent
							 | 
						|
								It reads `\verb|Makefile|' generated by `\verb|configure|' and performs
							 | 
						|
								all necessary jobs.
							 | 
						|
								
							 | 
						|
								If you want, you can override the `\verb|make|' variables \verb|CFLAGS|
							 | 
						|
								and \verb|LDFLAGS| like this:
							 | 
						|
								
							 | 
						|
								\begin{verbatim}
							 | 
						|
								   make CFLAGS=-O2 LDFLAGS=-s
							 | 
						|
								\end{verbatim}
							 | 
						|
								
							 | 
						|
								To compile the package in a different directory from the one containing
							 | 
						|
								the source code, you must use a version of `\verb|make|' that supports
							 | 
						|
								`\verb|VPATH|' variable, such as GNU `\verb|make|'. `\verb|cd|' to the
							 | 
						|
								directory where you want the object files and executables to go and run
							 | 
						|
								the `\verb|configure|' script. `\verb|configure|' automatically checks
							 | 
						|
								for the source code in the directory that `\verb|configure|' is in and
							 | 
						|
								in `\verb|..|'. If for some reason `\verb|configure|' is not in the
							 | 
						|
								source code directory that you are configuring, then it will report
							 | 
						|
								that it can't find the source code. In that case, run `\verb|configure|'
							 | 
						|
								with the option `\verb|--srcdir=DIR|', where \verb|DIR| is the
							 | 
						|
								directory that contains the source code.
							 | 
						|
								
							 | 
						|
								Some systems require unusual options for compilation or linking that
							 | 
						|
								the `\verb|configure|' script does not know about. You can give
							 | 
						|
								`\verb|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 this:
							 | 
						|
								
							 | 
						|
								\begin{verbatim}
							 | 
						|
								   CC=c89 CFLAGS=-O2 LIBS=-lposix ./configure
							 | 
						|
								\end{verbatim}
							 | 
						|
								
							 | 
						|
								\noindent
							 | 
						|
								Or on systems that have the `\verb|env|' program, you can do it like
							 | 
						|
								this:
							 | 
						|
								
							 | 
						|
								\begin{verbatim}
							 | 
						|
								   env CPPFLAGS=-I/usr/local/include LDFLAGS=-s ./configure
							 | 
						|
								\end{verbatim}
							 | 
						|
								
							 | 
						|
								Here are the `\verb|make|' variables that you might want to override
							 | 
						|
								with environment variables when running `\verb|configure|'.
							 | 
						|
								
							 | 
						|
								For these variables, any value given in the environment overrides the
							 | 
						|
								value that `\verb|configure|' would choose:
							 | 
						|
								
							 | 
						|
								\verb|CC      | C compiler program. The default is `\verb|cc|'.
							 | 
						|
								
							 | 
						|
								\verb|INSTALL | Program used to install files. The default value is
							 | 
						|
								`\verb|install|' if you have it,\\
							 | 
						|
								\verb|           | otherwise `\verb|cp|'.
							 | 
						|
								
							 | 
						|
								For these variables, any value given in the environment is added to the
							 | 
						|
								value that `\verb|configure|' chooses:
							 | 
						|
								
							 | 
						|
								\verb|DEFS    | Configuration options, in the form
							 | 
						|
								`\verb|-Dfoo -Dbar| \dots'.
							 | 
						|
								
							 | 
						|
								\verb|LIBS    | Libraries to link with, in the form
							 | 
						|
								`\verb|-lfoo -lbar| \dots'.
							 | 
						|
								
							 | 
						|
								\section{Checking the package}
							 | 
						|
								
							 | 
						|
								To check the package, i.e. to run some tests included in the package,
							 | 
						|
								you can use the following command:
							 | 
						|
								
							 | 
						|
								\begin{verbatim}
							 | 
						|
								   make check
							 | 
						|
								\end{verbatim}
							 | 
						|
								
							 | 
						|
								\section{Installing the package}
							 | 
						|
								
							 | 
						|
								Normally, to install the GLPK package you should type the following
							 | 
						|
								command:
							 | 
						|
								
							 | 
						|
								\begin{verbatim}
							 | 
						|
								   make install
							 | 
						|
								\end{verbatim}
							 | 
						|
								
							 | 
						|
								\noindent
							 | 
						|
								By default, `\verb|make install|' will install the package's files in
							 | 
						|
								`\verb|usr/local/bin|', `\verb|usr/local/lib|', etc. You can specify an
							 | 
						|
								installation prefix other than `\verb|/usr/local|' by giving
							 | 
						|
								`\verb|configure|' the option `\verb|--prefix=PATH|'. Alternately, you
							 | 
						|
								can do so by consistently giving a value for the `\verb|prefix|'
							 | 
						|
								variable when you run `\verb|make|', e.g.
							 | 
						|
								
							 | 
						|
								\begin{verbatim}
							 | 
						|
								   make prefix=/usr/gnu
							 | 
						|
								   make prefix=/usr/gnu install
							 | 
						|
								\end{verbatim}
							 | 
						|
								
							 | 
						|
								After installing you can remove the program binaries and object files
							 | 
						|
								from the source directory by typing `\verb|make clean|'. To remove all
							 | 
						|
								files that `\verb|configure|' created (`\verb|Makefile|',
							 | 
						|
								`\verb|config.status|', etc.), just type `\verb|make distclean|'.
							 | 
						|
								
							 | 
						|
								The file `\verb|configure.ac|' is used to create `\verb|configure|' by
							 | 
						|
								a program called `\verb|autoconf|'. You only need it if you want to
							 | 
						|
								remake `\verb|configure|' using a newer version of `\verb|autoconf|'.
							 | 
						|
								
							 | 
						|
								\section{Uninstalling the package}
							 | 
						|
								
							 | 
						|
								To uninstall the GLPK package, i.e. to remove all the package's files
							 | 
						|
								from the system places, you can use the following command:
							 | 
						|
								
							 | 
						|
								\begin{verbatim}
							 | 
						|
								   make uninstall
							 | 
						|
								\end{verbatim}
							 | 
						|
								
							 | 
						|
								%* eof *%
							 |