@comment -*-texinfo-*- @comment $Id: INSTALL_unix.plural.texi,v 1.3 2009-04-08 16:51:56 seelisch 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::Plural} version @value{VERSION} @end ifclear @ifclear UNAME @set _UNAME @end ifclear @ifset UNAME @include uname.texi @end ifset To install @sc{Singular::Plural} on a @ifset UNAME @value{_UNAME} @end ifset @ifclear UNAME Unix @end ifclear platform, you need the following two archives: @table @code @item SingularPlural-@value{VERSION}-share.tar.gz contains architecture independent data like documentation and libraries (alternatively, you may also download @code{SingularPlural-@value{VERSION}-share.zip}). @item SingularPlural-@value{VERSION}-@value{_UNAME}.tar.gz contains architecture dependent executables, like the @sc{Singular::Plural} program. @end table @ifclear UNAME @* @code{@value{_UNAME}} is a description of the processor and operating system for which @sc{Singular::Plural} is compiled (e.g, @code{ix86-Linux}). Please contact us if you can not find an appropriate architecture dependent archive. @end ifclear You can obtain these (and other) archives from @display @uref{ftp://www.mathematik.uni-kl.de/pub/Math/Singular}. @end display @include register.texi @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), for example: @smallexample cd /usr/local or mkdir install;cd install (you do not need root privileges in this case) @end smallexample @sc{Singular::Plural} 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 /SingularPlural-@value{VERSION}-@value{_UNAME}.tar.gz | tar -pxf - gzip -dc /SingularPlural-@value{VERSION}-share.tar.gz | tar -pxf - @end smallexample @c version 2-0-x does not have *-share.zip: @c If you have downloaded @code{Singular-@value{VERSION}-share.zip}, @c unpack with @c @smallexample @c unzip -u Singular-@value{VERSION}-share.zip @c @end smallexample This creates the directory Plural/@value{VERSION} with @multitable @columnfractions .36 .64 @item (sub)directories @tab which contain @item @code{@value{_UNAME}} @tab @code{Plural} and @code{EPlural} executables @item @code{LIB} @tab @sc{Singular::Plural} libraries (@code{*.lib} files) @item @code{emacs} @tab files for the @sc{Singular::Plural} Emacs user interface @item @code{info} @tab info files of @sc{Singular::Plural} manual @item @code{html} @tab html files of @sc{Singular::Plural} manual @item @code{doc} @tab miscellaneous documentation files @c @item @code{examples} @c @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 will look for "sibling" directories at run-time to figure out where its @sc{Singular::Plural} 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::Plural} executables to another place, but use soft-links instead. @end enumerate The following steps are optional: @itemize @bullet @item Arrange that typing @code{Plural} at the shell prompt starts up the installed @sc{Singular::Plural} executable. If you have root permission, do: @smallexample ln -s `pwd`/Plural/@value{VERSION}/@value{_UNAME}/Plural /usr/local/bin/Plural-@value{VERSION} ln -s `pwd`/Plural/@value{VERSION}/@value{_UNAME}/EPlural /usr/local/bin/EPlural-@value{VERSION} ln -s /usr/local/bin/Plural-@value{VERSION} /usr/local/bin/Plural ln -s /usr/local/bin/EPlural-@value{VERSION} /usr/local/bin/EPlural @end smallexample Otherwise, append the directory @code{`pwd`/Plural/@value{VERSION}/@value{_UNAME}/} to your @code{$PATH} environment variable. For the @code{csh} (or, @code{tcsh}) shell do: @smallexample set path=(`pwd`/Plural/@value{VERSION}/@value{_UNAME} $path) @end smallexample For the @code{bash} (or, @code{ksh}) shell do: @smallexample export PATH=`pwd`/Plural/@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{Plural/@value{VERSION}/@value{_UNAME}/Plural} to another place, but use soft-links instead. @item If you wish to use any of the following features of @sc{Singular::Plural}, make sure that the respective programs are installed on your system: @multitable @columnfractions .5 .5 @item @strong{Feature} @tab @strong{Requires} @item running @code{EPlural}, or @code{Plural} 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.3 or higher (EPlural is only included in the Linux distribution. On other Unix platforms you can download the @uref{ftp://www.mathematik.uni-kl.de/pub/Math/Singular/src/,, Singular emacs lisp files} but we give no warranties for specific platforms). @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 @code{html} format using the @code{netscape} program. However, this behavior can be customized in several ways using the @sc{Singular::Plural} 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{Plural/@value{VERSION}/LIB/.singularrc} and putting the @sc{Singular::Plural} 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 * Plural:(plural.hlp). A system for non-commutative 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{Plural/@value{VERSION}/info/plural.hlp} to the directory of your @code{dir} file. @*This assures that the @sc{Singular::Plural} manual can be accessed from stand-alone texinfo browser programs such as @code{info} or @code{Emacs}. (This is not a prerequisite for using the help system from within @code{Plural}.) @end itemize @heading Troubleshooting @itemize @bullet @item General: @sc{Plural} can not find its libraries or on-line help @enumerate @item Make sure that you have read and/or execute permission for 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 -R a+rX Plural @end smallexample @item Start up @sc{Plural}, and issue the command @code{system("Singular");}. If this does not return the correct and expanded location of the @sc{Singular::Plural} 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{Plural}: If @code{$bindir} denotes the directory where the @sc{Plural} executable resides, then @sc{Plural} 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/Plural/@value{VERSION}/LIB} @* (4) @code{/usr/local/Plural/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{Plural} with the @code{--version} option, or by issuing the @sc{Plural} command @code{system("--version");}. @item Under SuSE-Linux, @sc{ESingular} (@sc{EPlural}) 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 onwards). 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{Plural} 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{Plural} might fail with messages like @example Can not find shared library ... @end example For DEBIAN systems, try to do @code{ln -s /usr/lib/libncurses.so /usr/lib/libncurses.so.4}. @*If this fails (and on other systems) download and install @code{SingularPlural-@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{Plural} 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 @include info.texi @ifclear singularmanual GOOD LUCK and ENJOY! Your @sc{Singular::Plural} team. @end ifclear