@comment -*-texinfo-*- @comment $Id: INSTALL_unix.texi,v 1.14 2001-03-02 13:09:13 Singular Exp $ @c FILE: INSTALL_unix.texi @c PURPOSE: Installation instruction for Singular on Unix @c @ifclear VERSION @include version.texi @end ifclear @ifclear singularmanual @majorheading Unix installation instructions for @sc{Singular} version @value{VERSION} @end ifclear @ifclear UNAME @set _UNAME @end ifclear @ifset UNAME @include uname.texi @end ifset To install @sc{Singular} on a @ifset UNAME @value{_UNAME} @end ifset @ifclear UNAME Unix @end ifclear platform, you need the following two archives: @table @code @item Singular-@value{VERSION}-share.tar.gz contains architecture independent data like documentation and libraries (alternatively, you may also download @code{Singular-@value{VERSION}-share.zip}). @item Singular-@value{VERSION}-@value{_UNAME}.tar.gz contains architecture dependent executables, like the @sc{Singular} program. @ifclear UNAME @code{@value{_UNAME}} is a description of the processor and operating system for which @sc{Singular} is compiled (e.g, @code{ix86-Linux}). Please contact us if you can not find an appropriate architecture dependent archive. @end ifclear @end table You can obtain these (and other) archives from @display @uref{ftp://www.mathematik.uni-kl.de/pub/Math/Singular}. @end display @ifclear singularmanual @strong{Important:} Please see @ifhtml @uref{COPYING.html, COPYING} @end ifhtml @ifnothtml the file COPYING contained in the distribution @end ifnothtml for license information on @sc{Singular}. In particular, notice that we only grant you permission to use @sc{Singular} if you have registered yourself as a @sc{Singular} user by sending email to @email{singular@@mathematik.uni-kl.de} with the subject line (or, mail body) @code{register}. @end ifclear @heading To install SINGULAR Make sure that you have approximately 12MByte of free disk space and follow these steps. @enumerate @item Simply change to the directory in which you wish to install @sc{Singular} (usually wherever you install 3rd-party software): @smallexample cd /usr/local/ @end smallexample @sc{Singular} specific subdirectories will be created in such a way that multiple versions and multiple architecture dependent files of @sc{Singular} can peaceably coexist under the same @code{/usr/local/} tree. @item Unpack the archives: @smallexample gzip -dc Singular-@value{VERSION}-@value{_UNAME}.tar.gz | tar -pxf - gzip -dc Singular-@value{VERSION}-share.tar.gz | tar -pxf - @end smallexample If you have downloaded @code{Singular-@value{VERSION}-share.zip}, unpack with @smallexample unzip -u Singular-@value{VERSION}-share.zip @end smallexample This creates the following @multitable @columnfractions .36 .64 @item (sub)directories @tab which contain @item @code{Singular/@value{VERSION}/@value{_UNAME}} @tab @code{Singular} and @code{ESingular} programs @item @code{Singular/@value{VERSION}/LIB} @tab @sc{Singular} libraries (@code{*.lib} files) @item @code{Singular/@value{VERSION}/emacs} @tab files for the @sc{Singular} Emacs user interface @item @code{Singular/@value{VERSION}/info} @tab info files of @sc{Singular} manual @item @code{Singular/@value{VERSION}/html} @tab html files of @sc{Singular} manual @item @code{Singular/@value{VERSION}/doc} @tab miscellaneous documentation files @item @code{Singular/@value{VERSION}/examples} @tab @sc{Singular} examples (@code{*.sing} files) @end multitable For the executable to work, the directory layout must look pretty much like this; the executable looks for "sibling" directories at run-time to figure out where its @sc{Singular} libraries and on-line documentation files are. These constraints on the local directory layout are necessary to avoid having to hard-code pathnames into the executables, or require that environment variables be set before running the executable. In particular, you @strong{must not move or copy} the @sc{Singular} executables to another place, but use soft-links instead. @end enumerate The following steps are optional: @itemize @bullet @item Arrange that typing @code{Singular} at the shell prompt starts up the installed @sc{Singular} executable. If you have root permission, do: @smallexample ln -s `pwd`/Singular/@value{VERSION}/@value{_UNAME}/Singular /usr/local/bin/Singular-@value{VERSION} ln -s `pwd`/Singular/@value{VERSION}/@value{_UNAME}/ESingular /usr/local/bin/ESingular-@value{VERSION} ln -s /usr/local/bin/Singular-@value{VERSION} /usr/local/bin/Singular ln -s /usr/local/bin/ESingular-@value{VERSION} /usr/local/bin/ESingular @end smallexample Otherwise, append the directory @code{`pwd`/Singular/@value{VERSION}/@value{_UNAME}/} to your @code{$PATH} environment variable. For the @code{csh} (or, @code{tcsh}) shell do: @smallexample set path=(`pwd`/Singular/@value{VERSION}/@value{_UNAME} $path) @end smallexample For the @code{bash} (or, @code{ksh}) shell do: @smallexample export PATH=`pwd`/Singular/@value{VERSION}/@value{_UNAME}/:$PATH @end smallexample You also might want to adjust your personal start-up files (@code{~/.cshrc} for @code{csh}, @code{~/.tcshrc} for @code{tcsh}, or @code{~/.profile} for @code{bash}) accordingly, so that the @code{$PATH} variable is set automatically each time you login. @strong{IMPORTANT:} Do @emph{never} move or copy the file @code{Singular/@value{VERSION}/@value{_UNAME}/Singular} to another place, but use soft-links instead. @item If you wish to use any of following features of @sc{Singular}, make sure that the respective programs are installed on your system: @multitable @columnfractions .5 .5 @item @strong{Feature} @tab @strong{Requires} @item running @code{ESingular}, or @code{Singular} within Emacs @tab @uref{http://www.fsf.org/software/emacs/emacs.html,,Emacs} version 20 or higher, or, @uref{http://www.xemacs.org,,Xemacs} version 20 or higher @item on-line @code{html} help @tab @uref{http://www.netscape.com,,netscape} browser @item on-line @code{info} help @tab @uref{http://www.texinfo.org,,info}, or @uref{http://math-www.uni-paderborn.de/~axel/tkinfo/,,tkinfo} texinfo browser programs @item TAB completion and history mechanism of ASCII-terminal interface @tab shared @uref{ftp://ftp.de.uu.net/pub/gnu/readline/,,readline} library, i.e. @code{/usr/lib/libreadline.so} @item visualization of curves and surfaces @tab @uref{http://www.mathematik.uni-mainz.de/AlgebraischeGeometrie/surf/surf.shtml,,surf} version 0.9 or higher (only available for Linux and Solaris). @end multitable You may download most of these programs from @display @uref{ftp://www.mathematik.uni-kl.de/pub/Math/Singular/utils/}. @end display @item Customize the on-line help system: By default, on-line help is displayed in the @code{html} format using the @code{netscape} program. However, this behavior can be customized in several ways using the @sc{Singular} commands @code{system("--browser",)} and @code{system("--allow-net", 1)} (or, by starting up @sc{Singular} with the respective command line options). In particular, creating the file @code{Singular/@value{VERSION}/LIB/.singularrc} and putting the @sc{Singular} command @smallexample system("--allow-net", 1); @end smallexample in it, allows the on-line help system to fetch its @code{html} pages from @uref{http://www.singular.uni-kl.de, Singular's WWW home site} in case its local html pages are not found. That is, you may delete your local html pages, after setting this option. See also @ifset singularmanual @ref{The online help system}, @ref{Command line options}, and @ref{Startup sequence}, @end ifset @ifclear singularmanual the sections @emph{The online help system}, @emph{Command line options}, and @emph{Startup sequence} in the @sc{Singular} manual @end ifclear for more details on customizing the on-line help system. @item Add the line @smallexample * Singular:(singular.hlp). A system for polynomial computations @end smallexample to your system-wide @code{dir} file (usually @code{/usr/info/dir} or @code{/usr/local/info/dir} and copy or soft-link the file @code{Singular/@value{VERSION}/info/singular.hlp} to the directory of your @code{dir} file. @*This assures that the @sc{Singular} manual can be accessed from stand-alone texinfo browser programs such as @code{info} or @code{Emacs}. @end itemize @heading Troubleshooting @itemize @bullet @item General: @sc{Singular} can not find its libraries or on-line help @enumerate @item Make sure that you have read and/or excute permission the files and directories of the Singular distribution. If in doubt, @code{cd} to the directory where you unpacked @sc{Singular}, and do (as root, if necessary): @smallexample chmod +rX Singular @end smallexample @item Start up @sc{Singular}, and issue the command @code{system("Singular");}. If this does not return the correct and expanded location of the @sc{Singular} executable, then you found a bug in @sc{Singular}, which we ask you to report (see below). @item Check whether the directories containing the libraries and on-line help files can be found by @sc{Singular}: If @code{$bindir} denotes the directory where the @sc{Singular} executable resides, then @sc{Singular} looks for library files as follows: @* (0) the current directory @* (1) all dirs of the environment variable SINGULARPATH @* (2) @code{$bindir/LIB} @* (3) @code{$bindir/../LIB} @* (4) @code{/usr/local/Singular/@value{VERSION}/LIB} @* (4) @code{/usr/local/Singular/LIB} @* The on-line @code{info} files need to be at @code{$bindir/../info} and the @code{html} pages at @code{$bindir/../html}. @end enumerate You can inspect the found library and @code{info}/@code{html} directories by starting up @sc{Singular} with the @code{--version} option, or by issuing the @sc{Singular} command @code{system("--version");}. @item Under SuSE-Linux, @sc{ESingular} does not display a prompt: @cindex SuSE, ESingular bug @cindex ESingular, no prompt @cindex bug, ESingular This is due to the very restrictive access rights of @code{/dev/pty*} of the standard @uref{http:/www.suse.de,SuSE} distribution (starting from version 6.3 on). As root, do one of the following: Either @example chmod 666 /dev/pty* @end example or, @example chmod g+s $(which emacs) chgrp tty $(which emacs) chmod g+s $(which xemacs) chgrp tty $(which xemacs) @end example See also @uref{http://sdb.suse.de/sdb/de/html/ke_devpts-63.html} for details. @item For @code{HPUX} systems: @*The /etc/termcap files which are pre-installed on these systems are broken which leads to messages like @example Name collision between 9826 9836 @end example when @sc{Singular} is started. To fix this, you can get fixed termcap files from @uref{ftp://www.mathematik.uni-kl.de/pub/Math/Singular/utils} by downloading the files termcap- and either replace your /etc/termcap file by the file found there, or view, and redo the respective changes by @code{diff}'ing the downloaded and the original file. @item For @code{ix86-Linux} systems: @*Due to some incompatibilities of shared libraries, the start-up of @sc{Singular} might fail with messages like @example Can not find shared library ... @end example To fix this, download and install @code{Singular-@value{VERSION}-ix86-Linux-static.tar.gz}. @item For @code{AIX} systems: @*The default @code{info} program of the system is not GNU's texinfo browser which is used to display the on-line documentation in the @code{info} format. Therefore, the distribution of the AIX executable already contains the @code{info} browser program. If you remove this program, make sure that the GNU @code{info} program is executed if you call '@code{info}' from your shell. @item For any other troubles: @*Please send an email to @email{singular@@mathematik.uni-kl.de} and include the header which is displayed by starting up @sc{Singular} with the @code{-v} option, and a description of your machine (issue the command @code{uname -a} on your shell) in your report. @end itemize @heading More information about @sc{Singular}: Comments, Questions, Bug Reports More and up-to-date information about @sc{Singular} is always available from @display @uref{http://www.singular.uni-kl.de}. @end display We very much welcome any comments, questions, and bug reports. Please contact us at @display @email{singular@@mathematik.uni-kl.de}. @end display @ifclear singularmanual GOOD LUCK and ENJOY! Your @sc{Singular} team. @end ifclear