home *** CD-ROM | disk | FTP | other *** search
/ Chip 2000 February / CHIPinte022000.iso / office51 / linux / misc / glibc2 / soprep < prev   
Encoding:
Text File  |  1998-12-11  |  8.0 KB  |  343 lines

  1. #!/bin/sh
  2.  
  3. abortinst()
  4. {
  5.     echo
  6.     echo "Die Installation wird abgebrochen !"
  7.     echo
  8.     cd $instdir
  9.     isabort=1
  10. }
  11.  
  12. notfound()
  13. {
  14.     echo "$1"": Kommando nicht gefunden."
  15.     echo "---- Bitte installieren Sie das $2 Package"
  16.     utilfail=1
  17. }
  18.  
  19. #
  20. # check if standard utilities used in this script are available
  21. #
  22. checkutil() {
  23.     utilfail=0
  24.     if [ ! -x /bin/df -a ! -x /usr/bin/df ]; then
  25.         notfound "df" "fileutil"
  26.     fi
  27.     if [ ! -x /bin/awk -a ! -x /usr/bin/awk ]; then
  28.         notfound "awk" "gawk"
  29.     fi
  30.     if [ ! -x /bin/pwd -a ! -x /usr/bin/pwd ]; then
  31.         notfound "pwd" "sh_utils"
  32.     fi
  33.     if [ ! -x /bin/expr -a ! -x /usr/bin/expr ]; then
  34.         notfound "expr" "sh_utils"
  35.     fi
  36.     if [ ! -x /bin/gzip -a ! -x /usr/bin/gzip ]; then
  37.         notfound "gzip" "gzip"
  38.     fi
  39.     if [ ! -x /bin/tar -a ! -x /usr/bin/tar ]; then
  40.         notfound "tar" "base"
  41.     fi
  42.     if [ ! -x /bin/cmp -a ! -x /usr/bin/cmp ]; then
  43.         notfound "cmp" "diff"
  44.     fi
  45.     if [ $utilfail -eq 1 ]; then
  46.         abortinst; return
  47.     fi
  48.  
  49.     if [ ! -r "$instdir"/glibc2.tar.gz ]; then
  50.         echo
  51.         echo "Die Datei $instdir""/glibc2.tar.gz wurde nicht gefunden !"
  52.         echo -n "Diese Datei ist auf den StarOffice ftp servern "
  53.         echo "im selben Verzeichnis wie die StarOffice5.0 Distribution verfⁿgbar."
  54.         abortinst; return
  55.     fi
  56. }
  57.  
  58. #
  59. # check the dynamic loader /lib/ld-linux.so.2
  60. gldrcheck()
  61. {
  62.     if [ ! -r /lib/ld-linux.so.2 ]; then
  63.         echo
  64.         echo "Ein dynamic loader /lib/ld-linux.so ist noch nicht installiert."
  65.     else
  66.         cd $instdir
  67.         cd $glibcdir
  68.         if [ $? -eq 1 ];then
  69.             echo "Fehler beim Wechsel ins Verzeichnis $glibcdir"
  70.             abortinst; return
  71.         fi
  72.  
  73.         if [ ! -r ld-linux.so.2 ]; then
  74.             echo
  75.             echo "ld-linux.so.2: Datei nicht gefunden."
  76.             abortinst; return
  77.         fi
  78.  
  79.         # compare dynamic loader in /lib and glibc2.tar.gz package
  80.         cmp -s ld-linux.so.2 /lib/ld-linux.so.2    
  81.         ldrok=$?
  82.  
  83.         if [ $ldrok -eq 1 ];then
  84.             echo
  85.             echo -n "ACHTUNG: Der dynamic loader /lib/ld-linux.so.2 auf ihrem System stammt aus einer anderen glibc Version. "
  86.             echo "Dies kann unter UmstΣnden zu Problemen fⁿhren."
  87.             echo "Beachten Sie bitte hierzu die Hinweise in der README Datei."
  88.             if [ $isforce -ne 1 ]; then
  89.                 echo
  90.  
  91.                 echo "Um die Installation des dynamic loaders ld-linux.so.2 zu erzwingen"
  92.                 echo "und mit der Installation fortzufahren geben Sie bitte das folgende Kommando ein:"
  93.                 echo "gldrinst force"
  94.                 abortinst; return
  95.             fi
  96.         else
  97.             echo "Der dynamic loader /lib/ld-linux.so.2 existiert bereits"
  98.             echo "und ist mit dem in der $glibcver identisch."
  99.         fi
  100.     fi
  101.     cd $instdir
  102. }
  103.  
  104. #
  105. # installs the dynamic loader ld-linux.so.2 for the glibc2
  106. # if not called with the argument 'force' this is only done
  107. # if the file does not already exists in /lib
  108. #
  109. gldrinst() {
  110.     isabort=0
  111.     isforce=0
  112.     cd $instdir
  113.     cd $glibcdir
  114.     if [ $? -eq 1 ];then
  115.         echo "Fehler beim Wechsel ins Verzeichnis $glibcdir"
  116.         abortinst; return
  117.     fi
  118.  
  119.     if [ ! -r ld-linux.so.2 ];then
  120.         echo
  121.         echo "ld-linux.so.2: Datei nicht gefunden."
  122.         abortinst;return
  123.     fi
  124.  
  125.     if [ "X$1" = "Xforce" ]; then
  126.         isforce=1
  127.         gldrcheck
  128.  
  129.         if [ -r /lib/ld-linux.so.2 ]; then
  130.             mv -f /lib/ld-linux.so.2 /lib/ld-linux.so.2_old
  131.             okflag=$?
  132.             if [ $okflag -eq 1 ]; then
  133.                 echo
  134.                 echo "Fehler beim Umbenennen des alten dynamic loaders"
  135.                 echo "nach /lib/ld-linux.so.2_old !"
  136.                 echo "Fⁿhren Sie bitte diese Funktion erneut als ein User"    
  137.                 echo "mit Schreibberechtigung auf das /lib Verzeichnis (z.B. root) aus."
  138.                 abortinst;return
  139.             else
  140.                 echo
  141.                 echo "Der alte dynamic loader wurde umbenannt nach /lib/ld-linux.so.2_old"
  142.             fi
  143.         fi
  144.      
  145.     else
  146.  
  147.         if [ -r /lib/ld-linux.so.2 ]; then
  148.             gldrcheck
  149.             if [ $isabort -ne 1 ]; then
  150.                 soenv
  151.             fi
  152.             return
  153.         else
  154.             gldrcheck
  155.         fi
  156.  
  157.     fi
  158.  
  159.     cd $glibcdir
  160.     if [ $? -eq 1 ];then
  161.         echo "Fehler beim Wechsel ins Verzeichnis $glibcdir"
  162.         abortinst; return
  163.     fi
  164.  
  165.     blocks2=`df -kP /lib | awk 'BEGIN{i=0}{ i++; if(i==2) print $4 }'`
  166.     fsys2=`df -kP /lib | awk 'BEGIN{i=0}{ i++; if(i==2) print $1 }'`
  167.  
  168.     if [ $blocks2 -lt $ldrsize ]; then
  169.         echo
  170.         echo "Fⁿr den dynamic loader ld-linux.so.2 werden $libcsize kBytes"
  171.         echo "im Verzeichnis /lib ben÷tigt."
  172.         echo "Auf dem Filesystem $fsys2 sind nur $blocks2 kBytes verfⁿgbar,"
  173.         echo "schaffen Sie bitte den ben÷tigten Platz auf dieser Partition."
  174.         abortinst; return
  175.     fi
  176.  
  177.     if [ $sverbose -eq 1 ]; then
  178.         echo "\$ cp -a $ldrfiles /lib"
  179.     fi
  180.  
  181.     cp -a $ldrfiles /lib
  182.     okflag=$?
  183.  
  184.     if [ $okflag -eq 0 ]; then
  185.         echo "Der dynamic loader ld-linux.so.2 wurde ins /lib Verzeichnis installiert."
  186.     else
  187.         echo
  188.         echo "Der dynamic loader ld-linux.so.2 konnte nicht ins /lib Verzeichnis installiert werden."
  189.         echo "Fⁿhren Sie bitte diese Funktion erneut als User"    
  190.         echo "mit Schreibberechtigung auf das /lib Verzeichnis (z.B. root) aus."
  191.         abortinst; return
  192.     fi
  193.  
  194.     if [ $isabort -ne 1 ]; then
  195.         soenv
  196.     fi
  197.  
  198. }
  199.  
  200. #
  201. # install the glibc files
  202. #
  203. glibcinst() {
  204.     echo
  205.     echo "Geben Sie das Verzeichnis an, in das die $glibcver installiert werden soll."
  206.     echo "Es wird empfohlen, das Unterverzeichnis lib vom geplanten StarOffice"
  207.     echo "Installationsverzeichnis zu wΣhlen."
  208.     echo
  209.     echo -n "glibc2 Verzeichnis [$glibcdir] ? "
  210.     read input
  211.  
  212.     if [ "X$input" != "X" ];then
  213.         glibcdir=$input
  214.     fi
  215.  
  216.     if [ ! -d $glibcdir ]; then
  217.         if [ $sverbose -eq 1 ]; then
  218.             echo "\$ mkdir -p $glibcdir"
  219.         fi
  220.         mkdir -p $glibcdir
  221.         if [ $? -eq 1 ]; then
  222.             echo
  223.             echo "Das Verzeichnis $glibcdir konnte nicht angelegt werden !"
  224.             abortinst; return
  225.         else
  226.             echo "Das Verzeichnis $glibcdir wurde angelegt."
  227.         fi
  228.         chmod 755 $glibcdir
  229.     fi
  230.  
  231.     # get nubmer of 1024 kBytes available on the filesystem 
  232.     # for the installation directory
  233.  
  234.     blocks=`df -kP $glibcdir | awk 'BEGIN{i=0}{ i++; if(i==2) print $4 }'`
  235.     fsys=`df -kP $glibcdir | awk 'BEGIN{i=0}{ i++; if(i==2) print $1 }'`
  236.  
  237.     if [ $blocks -lt $libcsize ]; then
  238.         echo
  239.         echo "Fⁿr die glibc2 werden $libcsize kBytes im Verzeichnis $glibcdir ben÷tigt."
  240.         echo "Auf dem Filesystem $fsys sind nur $blocks kBytes verfⁿgbar, wΣhlen Sie"
  241.         echo "bitte ein Verzeichnis auf einer ausreichend gro▀en Partition."
  242.         abortinst; return
  243.     fi
  244.  
  245.     if [ $sverbose -eq 1 ]; then
  246.         echo "\$ cd $glibcdir"
  247.     fi
  248.     cd $glibcdir
  249.  
  250.     if [ $? -eq 1 ];then
  251.         echo "Fehler beim Wechsel ins Verzeichnis $glibcdir"
  252.         abortinst; return
  253.     fi
  254.  
  255.     if [ $sverbose -eq 1 ]; then
  256.         echo "\$ tar zxf "$instdir"/glibc2.tar.gz"
  257.     fi
  258.     tar zxf "$instdir"/glibc2.tar.gz 2> /dev/null
  259.  
  260.     okflag=$?
  261.     if [ $okflag -eq 0 ]; then
  262.         if [ $sverbose -eq 1 ]; then
  263.             echo "\$ mv -f glibc2/* ."
  264.         fi
  265.         mv -f glibc2/* .
  266.         okflag=$?
  267.     fi
  268.     if [ $okflag -eq 1 ]; then
  269.         echo
  270.         echo "Fehler beim Entpacken der glibc2 Dateien"
  271.         echo "Bitte ⁿberprⁿfen Sie ihre Rechte im Verzeichnis"
  272.         echo "$glibcdir"
  273.         rm -rf glibc2
  274.         abortinst; return
  275.     else
  276.         rm -rf glibc2
  277.         echo
  278.         echo "Die glibc2 wurde erfolgreich nach $glibcdir installiert."
  279.         gldrinst
  280.     fi
  281.     cd $instdir
  282. }
  283.  
  284. soenv() {
  285.     echo
  286.  
  287.     if [ $sverbose -eq 1 ]; then
  288.         echo "\$ export LD_LIBRARY_PATH=$glibcdir"":""\$LD_LIBRARY_PATH"
  289.         echo
  290.     fi
  291.     export LD_LIBRARY_PATH="$glibcdir"":""$LD_LIBRARY_PATH"
  292.  
  293.     echo "Es kann jetzt mit der Installation von StarOffice fortgefahren werden."
  294.     cd $instdir
  295.     if [ $? -eq 1 ];then
  296.         echo "Fehler beim Wechsel ins Verzeichnis $instdir"
  297.         abortinst; return
  298.     fi
  299.  
  300.     echo
  301.     echo "Hierzu wechseln Sie in das Verzeichnis mit dem StarOffice 5.0 Installationssatz und geben ./setup (Einzelplatz Installation) oder ./setup /net (Netzwerk Installation) ein."
  302.     echo
  303.  
  304.     echo -n "Wenn Sie fⁿr die glibc2 Installation ein anderes Verzeichnis als das lib "
  305.     echo -n "Verzeichnis der geplanten StarOffice Installation angegeben haben, mⁿssen "
  306.     echo -n "Sie nach der Installation die Dateien im $glibcdir "
  307.     echo -n "Verzeichnis in dieses StarOffice lib Verzeichnis kopieren oder die "
  308.     echo "System Konfiguration wie in der README beschrieben aendern"
  309. }
  310.  
  311.  
  312. soprep() {
  313.  
  314.     # Glibc Installation Directory and version
  315.     glibcdir=/opt/Office50/lib
  316.     glibcver="glibc2.0.7"
  317.  
  318.     # verbose flag
  319.     sverbose=1
  320.  
  321.     # files for the dynamic library loader
  322.     ldrfiles="ld-2.0.7.so ld-linux.so.2"
  323.  
  324.     # disk space need for glibc2 files (kB)
  325.     libcsize=6465
  326.     ldrsize=158
  327.  
  328.     # set PATH
  329.     export PATH=/sbin:/usr/sbin:/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin
  330.  
  331.     isabort=0
  332.     isforce=0
  333.     instdir=`pwd`
  334.     
  335.     checkutil
  336.     if [ $isabort -ne 1 ]; then
  337.         glibcinst
  338.     fi
  339. }
  340.  
  341. soprep
  342.