3 Install from Source Code

More familiarity with computers may be required to build Sage from source. If you do have all the tools, the process should be completely painless (but it will take your computer a while, though you don't have to watch), and has the major advantage that you have the latest version of Sage, and you can change absolutely any part of Sage or the programs on which it depends and recompile.

As of this writing, Sage is known to work on Linux (32 bit x86, 64 bit x86-64, IA64, or 32 bit PPC) and OS X (10.4 or 10.5, PPC or x86, 32 bit only). (See http://wiki.sagemath.org/SupportedPlatformsfor the latest information.)

Note: Solaris? FreeBSD? OS X 10.5 in 64 bit mode?: Complete compilation of Sage is currently not supported on Solaris or *BSD. It is possible to compile most of Sage on Solaris machines and to fill in the extra parts using standard packages; please email sage-devel if you desperately need to run Sage on Solaris. We do plan to fully support Solaris - it's a very important platform. Work is ongoing.

Sage on FreeBSD: The binaries can be run with the help of Linux emulation. We are working on a fully native port and the number of issues that need to be fixed are relatively small compared to the other ports.

We hope to support OS X 10.5 in 64 bit mode in our next release.

Assumptions: You have a computer with about 850 megabytes disk space free running Linux (32-bit or 64-bit) or OS X 10.4 with XCode. In particular, under Linux the following standard command-line development tools must be installed on your computer (under OS X they all come with XCode):

   gcc  (with C++ support)
   make
   m4 
   perl
   ranlib
   tar
   ssh-keygen -- needed to run the notebook in secure mode.
   latex -- highly recommended, though not strictly required
To check if you have m4 installed, for example, type which m4 at a command line. If it gives an error (or returns nothing), then it is not installed. It is highly recommended that you have latex installed, but not required. If you don't have ssh-keygen on your local system, then you cannot run the notebook in secure mode. To run it in insecure mode, run the command notebook(secure=False) instead of notebook().

In OS X, make sure you have XCode version at least 2.4, i.e., gcc -v should output build at least 5363. If you don't, go to http://developer.apple.com/ sign up, and download the free Xcode package. Only OS X $ \geq 10.4$ is supported. This will give you all of the above commands.

On a Debian-based system (e.g., Ubuntu), ranlib is in the binutils package. On a newly installed Ubuntu system (this was tested on Ubuntu 7.04), you can install the above commands as follows:

 sudo apt-get install gcc-4.2-base      # or the latest version available
 sudo apt-get install make
 sudo apt-get install m4
 sudo apt-get install bison
 sudo apt-get install flex
 sudo apt-get install tar
 sudo apt-get install perl
 sudo apt-get install binutils
 sudo apt-get install libstdc++6-dev
 sudo apt-get install g++
 sudo apt-get install openssh-client

The LaTeX package and a pdf previewer are optional but they can be installed using

  sudo apt-get install tex-common 
  sudo apt-get install tetex-base 
  sudo apt-get install kpdf

Note: You must have the GNU version of make installed. For example, Sage won't build on a FreeBSD install that doesn't have the optional GNU version of make installed as well (and named make).

Although some of Sage is written in Python, you do not need Python pre-installed on your computer, since the Sage installation includes everything you need. When the installation program is run, it will check that you have each of the above-listed prerequisites, and inform you of any that are missing.

Note:

After extracting the Sage tarball, the subdirectory source contains the source distributions for everything on which Sage depends. We emphasize that all of this software is included with Sage , so you do not have to worry about trying to download and install any one of these packages (such as GAP, for example) yourself.

Note: On tests using various Linux computer systems the known problems are:



Subsections
See About this document... for information on suggesting changes.