Installation of Surfer on Debian - BrentBaccala/Singular GitHub Wiki

This page describes the installation of Surf and Surfer from the latest sources on Debian based systems (e.g. Ubuntu).

Surf and Surfer can then be call from Singular after loading the library surf.lib.

This version of the instructions was tested on Ubuntu 13.04. It requires sudo permission.

  1. Install the packages required to build Surfer (we assume that you have installed the packages required to build Singular):

    • sudo apt-get install gtkmm-2.4
    • sudo apt-get install libjpeg62-dev
    • sudo apt-get install libtiff
    • sudo apt-get install libtiff4-dev
    • sudo apt-get install zlib1g-dev
    • sudo apt-get install libx11-dev
    • sudo apt-get install flex
  2. Download Surfer (includes Surf sources):

    • cd $HOME/git/Singular4
    • mkdir surfer
    • cd surfer
    • wget http://data.imaginary2008.de/software/surfer/surfer.tar.bz2
    • tar jxvf surfer.tar.bz2
    • tar zxvf surf-for-surfer.tar.gz
  3. install surf (after this step you can use surf to plot curves and surfaces):

    • 3a. gcc >=6 require a patched version of surf:
      • rm -rf surf-1.0.5
      • wget ftp://www.mathematik.uni-kl.de/pub/Math/Singular/misc/surf-1.0.6-gcc6.tar.gz
      • tar zxvf surf-1.0.6-gcc6.tar.gz
      • mv surf-1.0.6 surf-1.0.5
      • cd surf-1.0.5
      • ./configure --disable-gui
      • make
      • sudo make install
      • cd ..
    • 3b. newer versions of debian/ubuntu have a package for surf:
      • sudo apt-get install surf-alggeo
      • ln -s /usr/bin/surf-alggeo /usr/local/bin/surf
  4. Check whether Surf works by doing in Singular: (of course surf can also be used as a stand-alone program)

    • LIB "surf.lib";
    • ring R = 0,(x,y),dp;
    • ideal J = x^3-y^2;
    • plot(J);
  5. Compile and install Surfer:

    • ./configure
    • make
    • sudo make install
    • cd ..
  6. Check whether Surfer works by doing in Singular: (of course Surfer can also be used as a stand-alone program)

    • LIB "surf.lib";
    • ring R = 0,(x,y,z),dp;
    • ideal J = x^2*y^2+x^2*z^2+y^2*z^2-17*x*y*z;
    • surfer(J);