Avatar billede henrik_40 Juniormester
23. september 2004 - 09:39 Der er 27 kommentarer og
1 løsning

Installering af KYLIX fejler - Glibc-version

Hej
Når jeg prøver at installere KYLIX får jeg nedenstående meddelelse.





[root@localhost cdrom]# sh SETUP.SH



                                  BORLAND KYLIX 3

Checking dependencies...
Kernel version >= 2.2.0....OK
Glibc version....FAILED

Setup has determined that your system needs an updated version of glibc
(C runtime library). The version of glibc that is required varies by
distribution. Please read the document "PREINSTALL" on this disc.

X11 Server....OK
Libjpeg version >= 6.2.0....OK
Libgtk version >= 1.2.0....OK

Your system does not meet the minimum system requirements.
Setup cannot continue.



Men jeg HAR jo den glib-version, som skal til. Se her:

[root@localhost cdrom]# rpm -qa | grep libc
libcdda0-IIIa9.8-8mdk
libconsole0-0.2.3-46mdk
glibc-devel-2.3.3-10mdk
glibc-2.3.3-10mdk
libcurl2-7.11.0-2mdk
libcrack2-2.7-17mdk
libcroco1-0.4.0-1mdk
libcddb-slave2_0-2.4.1.1-1mdk
libcups2-1.1.20-5.1.100mdk
libcdio0-0.65-3mdk
[root@localhost cdrom]# rpm -qa | grep libc
libcdda0-IIIa9.8-8mdk
libconsole0-0.2.3-46mdk
glibc-devel-2.3.3-10mdk
glibc-2.3.3-10mdk
libcurl2-7.11.0-2mdk
libcrack2-2.7-17mdk
libcroco1-0.4.0-1mdk
libcddb-slave2_0-2.4.1.1-1mdk
libcups2-1.1.20-5.1.100mdk
libcdio0-0.65-3mdk


Jeg fatter ingenting.......

/henrik
Avatar billede strych9 Praktikant
23. september 2004 - 13:25 #1
måske der er en libc-compat pakke eller lignende?
Avatar billede henrik_40 Juniormester
23. september 2004 - 14:01 #2
libc-compat pakke???
Ikke helt med, kan du hjælpe mig med uddybe det lidt?
Avatar billede strych9 Praktikant
23. september 2004 - 14:03 #3
I nogle distributioner (måske, måske ikke mandrake) findes der en pakke med gamle glibc binaries, således at man kommer om ved problemet med at gamle forcompilerede apps ikke virker med nye glibc versioner.
Avatar billede henrik_40 Juniormester
23. september 2004 - 14:23 #4
Det lyder meget fornuftigt det du siger. KYLIX er jo en gammelt program fra 2002, så...

Hvor finder jeg pakken? Og hvad hedder den?
Avatar billede strych9 Praktikant
23. september 2004 - 14:25 #5
tjah, det er for længe siden jeg har brugt mandrake. I Gentoo hedder den glibc-compat
og jeg vil ikke garantere at den findes til mandrake, - bare en tanke.
Avatar billede henrik_40 Juniormester
23. september 2004 - 14:32 #6
Navn: libc-base
Version: 5.3.12-38mdk
Størrelse: 628 KB

Resumé: Old libc.so.5 and libm.so.5 compatibility libraries

Beskrivelse: This package provides old libc.so.5 and libm.so.5 libraries needed to run old applications based on libc5 libraries.


Tror du denne pakke kan hjælpe?
Avatar billede henrik_40 Juniormester
23. september 2004 - 14:33 #7
Ovenstående pakke kan ikke vælges siger Mandrake 10.0 hmmmmm
Avatar billede henrik_40 Juniormester
23. september 2004 - 14:37 #8
Lykkedes at installere pakken, men den gjorde ingen forskel :-(
Avatar billede strych9 Praktikant
23. september 2004 - 14:43 #9
hmm ok, det beklager jeg.
Så er det vel tid at se hvad for et check SETUP.SH laver. Åben filen med en text editor, for det er nemlig bare et bash script. Forsøg at lokalisere hvor den checker efter glibc og spytter enten "Glibc version....FAILED" eller "Glibc version....OK" ud. Hvis du har problemer med at forstå hvad scriptet gør på det sted kan du paste det her, så kan jeg hjælpe med at afkode det.
Avatar billede henrik_40 Juniormester
23. september 2004 - 14:49 #10
Ok. Det er en ordentlig bunke.... Og sjovt nok har jeg kunne installere TRIAL-versionene af programmet.

Men her tror jeg der er hvad som skal bruges:
function CheckLibc {
    major=0
    minor=0
    build=0

    # copy the chklibc file to someplace where we know it can be execu
ted
    chklibc="$HOME/.chklibc$$"
    if [ -e setup.data/chklibc ]; then
        cp "setup.data/chklibc" "$chklibc"
        if [ $? -ne 0 ]; then
          echo "$COULD_NOT_COPY_CHKLIBC" 1>&2
          libc_version="$CANNOT_LOAD_CHKLIBC"
          return 1
        fi
        chmod 700 "$chklibc"
        libcver=`$chklibc`
    else
        libc_version="$CANNOT_LOAD_CHKLIBC"
        return 1
    fi

    if [ -e $chklibc ]; then
        rm -f $chklibc
    fi

    if [ -z "$libcver" ]; then
        echo "$COULD_NOT_OBTAIN_LIBC_VER" 2>&1
        libc_version="$CANNOT_LOAD_CHKLIBC"
        return 1
    fi

    major=`echo $libcver |awk -F. '{printf $1}'`
    minor=`echo $libcver |awk -F. '{printf $2}'`
    build=`echo $libcver |awk -F. '{printf $3}'`
    libc_version="$major.$minor.$build"
    if [ $major -ge $GLIBC_MAJOR ]; then
            if [ $minor -gt $GLIBC_MINOR ]; then
                return 0;
            elif [ $minor -eq $GLIBC_MINOR ]; then
                if [ $build -ge $GLIBC_BUILD ]; then
                    return 0;
                else
                    return 1;
                fi
            else
                return 1;
            fi
    else
        libc_version="$LESS_THAN 2.0"
        return 1;
    fi
}
Avatar billede henrik_40 Juniormester
23. september 2004 - 14:51 #11
Paster hele skidtet
Avatar billede henrik_40 Juniormester
23. september 2004 - 14:52 #12
#!/bin/bash
#
# Product setup script - Loki Entertainment Software
#
# Modifications by Borland/Inprise Corp.:
# 02/24/2000: added functions CheckKernel, CheckLibc, CheckX and enabl
ing code in MAIN
# 01/24/2002: added FindLibrary function.  Changed CheckJpeg and Check
Gtk detection logic.
#
# Version constants to check against
KERNEL_MAJOR=2
KERNEL_MINOR=2
KERNEL_BUILD=0
X_MAJOR=11
X_MINOR=0
LIBC_MAJOR=6
GLIBC_MAJOR=2
GLIBC_MINOR=1
GLIBC_BUILD=2
QT_MAJOR=2
JPEG_MAJOR=6
JPEG_MINOR=2
JPEG_BUILD=0
GTK_MAJOR=1
GTK_MINOR=2
GTK_BUILD=0
NCURSES_MAJOR=4

# Go to the proper setup directory (if not already there)
cd `dirname $0`

# BEGIN STRING TABLE
# These constants should be translated for international use
#
CHECK_DEP="Checking dependencies"
KERNEL_VER="Kernel version"
FAILED="FAILED"
OK="OK"
LIBC_VER="Glibc version"
X_VER="X11 Server"
QT_VER="Qt version"
LIBJPEG_VER="Libjpeg version"
LIBGTK_VER="Libgtk version"
CANNOT_FIND="Setup cannot locate"
X_SERVER="X Server"
X_FAILURE="Setup could not detect a suitable X11 server."
CONTINUE="Do you want to install Kylix 3 (default Y) ? "
EXIST_INSTALL="Setup has detected an existing installation at this loc
ation:"
NO_RELOCATE1="If you wish to reinstall, you will not be able to choose
a"
NO_RELOCATE2="different installation location."
LIBNCURSES="Libncurses version"
LOADER_ERR1="Setup has determined that your system needs an updated ve
rsion of glibc"
LOADER_ERR2="(C runtime library). The version of glibc that is require
d varies by"
LOADER_ERR3="distribution. Please read the document \"PREINSTALL\" on
this disc."
FATAL_ERR1="Your system does not meet the minimum system requirements.
"
FATAL_ERR2="Setup cannot continue."
KYLIX_RUNNING="Kylix 3 is currently running. Please shut down Kylix an
d run the installer again."
VERS_ERR1="Setup has detected another edition of Kylix is already inst
alled on this system."
VERS_ERR2="You must remove the other edition before installing this on
e."
CANNOT_LOAD_CHKLIBC="cannot load chklibc"
LESS_THAN="less than"
LOADER_TEST_NOT_FOUND="Test program not found"
COULD_NOT_FIND="could not find"
COULD_NOT_LOCATE="could not locate"
CANNOT_LOAD="cannot load"
FOUND_VIA_RPM="found via RPM query"
UNKNOWN="unknown"
NOT_ROOT_NO_CHECK="non-root install...check not performed"
DETECTED_RPM="Detected RPM"
FORCING_NON_RPM_INSTALL="forcing non-RPM install"
SETUP_FAILED="The setup program seems to have failed on"
CONTACT_TECH_SUPPORT="Please contact Technical Support."
UNSUPPORTED_LIBC_ARCH1="This installation does not support"
UNSUPPORTED_LIBC_ARCH2="on"
NOT_COREL_LINUX="Not Corel Linux"
INSTALL_LOG_HEAD="Borland Kylix install log"
KERNEL_VERSION="kernel version"
COREL_LINUX_CHECK="Corel Linux check"
LOADER_TEST_RESULT="loader test result code"
LIBC_VERSION="libc version"
LIBJPEG_VERSION="libjpeg version"
COULD_NOT_OBTAIN_LIBC_VER="Unable to obtain libc version."
COULD_NOT_COPY_CHKLIBC="Unable to copy chklibc."
EXISTS_NOT_DIR="exists but is not a directory"
WARNING="WARNING:"

# END STRING TABLE


#START OF FUNCTIONS

#Look in /etc/ld.so.conf and search each directory for a pattern in $1
.
#Caller should capture the output from stdout.
function FindLibrary() {

  pattern="$1"

  #Try default paths first
  ls /usr/lib/${pattern} 2>/dev/null
  ls /lib/${pattern} 2>/dev/null

  #Look in /etc/ld.so.conf paths
  if [ -e /etc/ld.so.conf ]
  then
    for path in `cat /etc/ld.so.conf`
    do
      spath=$path/
      has_slash=`expr "$spath" : '\(.*//\)'`
      if [ -n "$has_slash" ]
      then
        spath=$path
      else
        spath=$path/
      fi
      ls ${spath}${pattern} 2>/dev/null
    done
  fi
}

function CheckKernel {

    major=`uname -r | awk -F. '{printf $1}'`
    minor=`uname -r | awk -F. '{printf $2}'`
    kernelOK=1
    if test $major -gt $KERNEL_MAJOR; then
        kernelOK=0
    elif test $major -eq $KERNEL_MAJOR; then
        if test $minor -ge $KERNEL_MINOR; then
            kernelOK=0
        fi
    fi
    kernel_version="$major.$minor"
    return $kernelOK;
}

function CheckLibc {
    major=0
    minor=0
    build=0

    # copy the chklibc file to someplace where we know it can be execu
ted
    chklibc="$HOME/.chklibc$$"
    if [ -e setup.data/chklibc ]; then
        cp "setup.data/chklibc" "$chklibc"
        if [ $? -ne 0 ]; then
          echo "$COULD_NOT_COPY_CHKLIBC" 1>&2
          libc_version="$CANNOT_LOAD_CHKLIBC"
          return 1
        fi
        chmod 700 "$chklibc"
        libcver=`$chklibc`
    else
        libc_version="$CANNOT_LOAD_CHKLIBC"
        return 1
    fi

    if [ -e $chklibc ]; then
        rm -f $chklibc
    fi

    if [ -z "$libcver" ]; then
        echo "$COULD_NOT_OBTAIN_LIBC_VER" 2>&1
        libc_version="$CANNOT_LOAD_CHKLIBC"
        return 1
    fi

    major=`echo $libcver |awk -F. '{printf $1}'`
    minor=`echo $libcver |awk -F. '{printf $2}'`
    build=`echo $libcver |awk -F. '{printf $3}'`
    libc_version="$major.$minor.$build"
    if [ $major -ge $GLIBC_MAJOR ]; then
            if [ $minor -gt $GLIBC_MINOR ]; then
                return 0;
            elif [ $minor -eq $GLIBC_MINOR ]; then
                if [ $build -ge $GLIBC_BUILD ]; then
                    return 0;
                else
                    return 1;
                fi
            else
                return 1;
            fi
    else
        libc_version="$LESS_THAN 2.0"
        return 1;
    fi
}

function CheckLoader {
    if [ -n "`expr "$args" : '\(.*-g\)'`" ]; then
        ldresult=0
        return 0;
    else
        ldresult=1
        # copy the borpretest file to someplace where we know it can b
e executed
        chkldpath="$HOME/.borchkld$$"
        if [ -d borpretest ]; then
            mkdir "$chkldpath"
            cp borpretest/* "$chkldpath" &>/dev/null
            chmod 700 "$chkldpath/borpretest"
            if [ -n "$LD_LIBRARY_PATH" ]; then
                oldldpath=`echo $LD_LIBRARY_PATH`
                export LD_LIBRARY_PATH="$chkldpath":$LD_LIBRARY_PATH
                `$chkldpath/borpretest -q`
                ldresult=$?
                export LD_LIBRARY_PATH=$oldldpath
            else
                export LD_LIBRARY_PATH="$chkldpath"
                `$chkldpath/borpretest -q`
                ldresult=$?
                unset LD_LIBRARY_PATH
            fi

            if [ -d "$chkldpath" ]; then
                rm -rf "$chkldpath"
            fi

            loader_result="$ldresult"
            return $ldresult
        else
            loader_result="$LOADER_TEST_NOT_FOUND"
            return 1
        fi
    fi
}

function CheckX {
    xOK=1
    major=0
    minor=0
    build=0
    # Since X may not be in their path, we have to find it
    #findx=`whereis xdpyinfo`
    findx=`whereis X | awk '{printf $2}'`
    if [ -n "$findx" ]; then
        xOK=0
        x_server="$findx"
    else
        x_server="$COULD_NOT_FIND"
    fi
    return $xOK;
}


function CheckJpeg {
    jpegOK=1
    major=0
    minor=0
    build=0
    jpeg_version=
    fname=

    if [ -e /usr/lib/libjpeg.so.62.0.0 ]; then
        jpegOK=0
        jpeg_version="6.2.0"
    else
      for fname in `FindLibrary "libjpeg.so.6.*"`
      do
        jpeg=`basename "$fname"`
        major=`echo $jpeg |awk -F. '{print $3}'`
        minor=`echo $jpeg |awk -F. '{print $4}'`
        if [ -z "$minor" ]; then
          minor=0
        fi
        build=`echo $jpeg |awk -F. '{print $5}'`
        if [ -z "$build" ]; then
          build=0
        fi
        if [ $major -gt $JPEG_MAJOR ]; then
            jpegOK=0
        elif [ $major -eq $JPEG_MAJOR -a $minor -gt $JPEG_MINOR ]; the
n
            jpegOK=0
        elif [ $major -eq $JPEG_MAJOR -a $minor -eq $JPEG_MINOR -a $bu
ild -ge $JPEG_BUILD ]; then
            jpegOK=0
        fi
        jpeg_version="$major.$minor.$build"
        echo $jpeg_version
        if [ $jpegOK -eq 0 ]; then
            return $jpegOK #return if found suitable version.  else ke
ep looking.
        fi
      done
    fi

    return $jpegOK

#    if [ -e /usr/lib/libjpeg.so.62.0.0 ]; then
#        jpegOK=0
#      jpeg_version="6.2.0"
#    elif [ -L /usr/lib/libjpeg.so.6 ]; then
#      jpeg=`ls /usr/lib/libjpeg.so.6.* 2>/dev/null`
#      major=`echo $jpeg |awk -F. '{print $3}'`
#      minor=`echo $jpeg |awk -F. '{print $4}'`
#      build=`echo $jpeg |awk -F. '{print $5}'`
#      if [ $major -gt $JPEG_MAJOR ]; then
#          jpegOK=0
#      elif [ $major -eq $JPEG_MAJOR -a $minor -gt $JPEG_MINOR ]; the
n
#          jpegOK=0
#      elif [ $major -eq $JPEG_MAJOR -a $minor -eq $JPEG_MINOR -a $bu
ild -ge $JPEG_BUILD ]; then
#          jpegOK=0
#      fi
#      jpeg_version="$major.$minor.$build"
#    fi
#
#    return $jpegOK
}

function GetRpmVersion {
  rpmver=`rpm --version 2>/dev/null`
  if [ -n "$rpmver" ]; then
      rpmver=`echo $rpmver | awk -F\  '{print $NF}'`
      major=`echo $rpmver | awk -F. '{print $1}'`
      minor=`echo $rpmver | awk -F. '{print $2}'`
      build=`echo $rpmver | awk -F. '{print $3}'`
      rpmver="$major.$minor.$build"
      return 0
  else
      return 1
  fi
}

function CheckGtk {
    gtkOK=1
    major=0
    minor=0
    build=0
    gtksolist=
    gtk_version="$CANNOT_FIND libgtk"
    gtkfiles=

    gtkfiles=`FindLibrary "libgtk-*.so.*"`

#    gtkfiles=`ls /usr/lib/libgtk-*.so.* 2>/dev/null`
#    if [ $? -ne 0 ]; then
#      gtkfiles=`ls /usr/X11R6/lib/libgtk-*.so.* 2>/dev/null`
#      if [ $? -ne 0 ]; then
#          gtkfiles=
#      fi
#    fi

    for gtkso in $gtkfiles; do
      gtkso=`basename $gtkso`
      gtksolist="$gtksolist `echo $gtkso | awk -F\  '{print $NF}' | se
d s/-/./1`"
    done

    for gtkso in $gtksolist; do
      gtkOK=1
      major=`echo $gtkso | awk -F. '{print $2}'`
      minor=`echo $gtkso | awk -F. '{print $3}'`
      build=`echo $gtkso | awk -F. '{print $5}'`

      if [ $major -gt $GTK_MAJOR ]; then
        gtkOK=0
      elif [ $major -eq $GTK_MAJOR -a $minor -gt $GTK_MINOR ]; then
        gtkOK=0
      elif [ $major -eq $GTK_MAJOR -a $minor -eq $GTK_MINOR -a $build
-ge $GTK_BUILD ]; then
        gtkOK=0
      fi

      if [ $gtkOK -eq 0 ]; then
        gtk_version="$major.$minor.$build"
        return $gtkOK
      fi
  done

  return $gtkOK
}


function CheckCurses {

    result=1

    # first copy chkcurses to someplace that is executable.
    chkcurses="$HOME/.chkcurses$$"
    if [ -e setup.data/chkcurses ]; then
        cp "setup.data/chkcurses" "$chkcurses"
        chmod 700 "$chkcurses"
        ncurses=`$chkcurses 2>/dev/null`
    else
        found_ncurses="$CANNOT_LOAD chkcurses"
        return 1
    fi

    if [ $? -eq 0 ]; then
        found_ncurses="$FOUND_VIA_RPM"
        result=0
    elif [ $? -eq 1 ]; then
        for fname in `FindLibrary "libncurses.so.4"`
        do
            found_ncurses="$fname"
            result=0
            break
        done

#      if [ -e /usr/lib/libncurses.so.4 ]; then
#          found_ncurses="/usr/lib/libncurses.so.4"
#          result=0
#      elif [ -e /usr/local/lib/libncurses.so.4 ]; then
#          found_ncurses="/usr/local/lib/libncurses.so.4"
#          result=0
#      elif [ -e /lib/libncurses.so.4 ]; then
#          found_ncurses="/lib/libncurses.so.4"
#          result=0
#      fi
    fi

    if [ -e "$chkcurses" ]; then
        rm -f "$chkcurses"
    fi
    return $result
}


# Return the appropriate architecture string
function DetectARCH {
        status=1
        case `uname -m` in
                i?86)  echo "x86"
                        status=0;;
                *)    echo "`uname -m`"
                        status=0;;
        esac
        return $status
}

# Return the appropriate version string
function DetectLIBC {
      status=1
      if [ -f `echo /lib/libc.so.6* | tail -1` ]; then
              if fgrep GLIBC_2.1 /lib/libc.so.6* 2>&1 >/dev/null; then
                      echo "glibc-2.1"
                      status=0
              else
                      echo "glibc-2.0"
                      status=0
              fi
      elif [ -f /lib/libc.so.5 ]; then
              echo "libc5"
              status=0
      else
              echo "$UNKNOWN"
      fi
      return $status
}


# Find the installation program
function try_run
{
    setup=$1
    shift
    fatal=$1
    if [ "$1" != "" ]; then
        shift
    fi

    # First find the binary we want to run
    failed=0
    setup_bin="setup.data/bin/$arch/$libc/$setup"
    if [ ! -f "$setup_bin" ]; then
        setup_bin="setup.data/bin/$arch/$setup"
        if [ ! -f "$setup_bin" ]; then
            failed=1
        fi
    fi
    if [ $failed -eq 1 ]; then
        if [ "$fatal" != "" ]; then
            cat <<__EOF__
$UNSUPPORTED_LIBC_ARCH1 $libc $UNSUPPORTED_LIBC_ARCH2 $arch

$CONTACT_TECH_SUPPORT
__EOF__
            exit 1
        fi
        return $failed
    fi

    # Try to run the binary
    # The executable is here but we can't execute it from CD
    setup="$HOME/.setup$$"
    cp "$setup_bin" "$setup"
    chmod 700 "$setup"
    if [ "$fatal" != "" ]; then
# User has already been prompted if there is an existing install.
#      if [ -n "$pathargs" ]; then
#          cat <<EOF
#
#$EXIST_INSTALL
#
#$pathargs
#
#$NO_RELOCATE1
#$NO_RELOCATE2
#
#EOF
#          echo -n "$CONTINUE "
#          read response
#          case $response in
#              n|N|no|No|NO )
#                  fatal_error=1
#                  ;;
#              * )
#                  "$setup" $installargs -i$pathargs $*
#                  ;;
#          esac
#      else
            "$setup" $installargs $*
#      fi
        failed=$?
    else
        if [ -n "$pathargs" ]; then
            cat <<EOF

$EXIST_INSTALL

$pathargs

$NO_RELOCATE1
$NO_RELOCATE2

EOF
            echo -n "$CONTINUE "
            read response
            case $response in
                n|N|no|No|NO )
                    fatal_error=1
                    ;;
                * )
                    "$setup" $installargs -i$pathargs $* 2>/dev/null
                    ;;
            esac
        else
            "$setup" $installargs $* 2>/dev/null
        fi
        failed=$?
    fi
    rm -f "$setup"
    return $failed
}

function DirInPath() {
  apath="$1"

  if [ -n "$apath" -a -n "$PATH" ]; then
        for dpath in `echo $PATH | sed s/:/\ /g`; do
                if [ "$apath" = "$dpath" ]; then
                        return 0
                fi
        done
  fi
  return 1
}

function ShowWarnings {
  # check for stdint.h
  if [ ! -e /usr/include/stdint.h ]
  then
        echo "$WARNING $COULD_NOT_FIND stdint.h"
  fi

  # check for libX11.so
  libx11files=`FindLibrary "libX11.so"`
  if [ -z "$libx11files" ]
  then
        echo "$WARNING $COULD_NOT_LOCATE libX11.so"
  fi
}

function CheckSystem {

    fatal_error=0
    error=""

    ShowWarnings

    if [ -e ~/.borland -a ! -d ~/.borland ]; then
        fatal_error=1
        echo "$HOME/.borland $EXISTS_NOT_DIR....$FAILED"
    fi

#    if DirInPath "$HOME/bin"; then
#      if [ ! -d "$HOME/bin" ]; then
#              mkdir "$HOME/bin" 2>/dev/null
#      fi
#    fi

    if ! CheckKernel; then
        fatal_error=1
        echo "$KERNEL_VER >= $KERNEL_MAJOR.$KERNEL_MINOR.$KERNEL_BUILD
....$FAILED"
    else
        echo "$KERNEL_VER >= $KERNEL_MAJOR.$KERNEL_MINOR.$KERNEL_BUILD
....$OK"
    fi

    if ! CheckLoader; then
        fatal_error=1
        echo "$LIBC_VER....$FAILED"
        cat <<EOF

$LOADER_ERR1
$LOADER_ERR2
$LOADER_ERR3

EOF
    elif ! CheckLibc; then
        fatal_error=1
        echo "$LIBC_VER >= $GLIBC_MAJOR.$GLIBC_MINOR.$GLIBC_BUILD....$
FAILED"
    else
        echo "$LIBC_VER >= $GLIBC_MAJOR.$GLIBC_MINOR.$GLIBC_BUILD....$
OK"
    fi

    if ! CheckX; then
        echo "$X_VER....$FAILED"
        cat <<EOF

$X_FAILURE

EOF
        echo -n "$CONTINUE "
        read response
        case $response in
        n|N|no|No|NO )
          fatal_error=1
          ;;
        * )
          ;;
        esac
    else
        echo "$X_VER....$OK"
    fi

    if ! CheckJpeg; then
        fatal_error=1
        echo "$LIBJPEG_VER >= $JPEG_MAJOR.$JPEG_MINOR.$JPEG_BUILD....$
FAILED"
    else
        echo "$LIBJPEG_VER >= $JPEG_MAJOR.$JPEG_MINOR.$JPEG_BUILD....$
OK"
    fi

    if ! CheckGtk; then
        fatal_error=1
        echo "$LIBGTK_VER >= $GTK_MAJOR.$GTK_MINOR.$GTK_BUILD....$FAIL
ED"
    else
        echo "$LIBGTK_VER >= $GTK_MAJOR.$GTK_MINOR.$GTK_BUILD....$OK"
    fi


#    if ! CheckCurses; then
#      fatal_error=1
#      echo "$LIBNCURSES = $NCURSES_MAJOR....$FAILED"
    #    else
#      echo "$LIBNCURSES = $NCURSES_MAJOR....$OK"
#    fi

    if test $fatal_error -eq 1; then
        cat <<EOF

$FATAL_ERR1
$FATAL_ERR2

EOF
        return 1
    fi
    echo
    echo
    return 0
}

function CheckPreviousInstall {
    uid=`id -u`
    if [ "$uid" = "0" ]; then
        sh setup.data/chkprevvers.sh
        if [ $? -eq 0 ]; then
            chkprev="$HOME/.chkprev$$"
            cp "setup.data/borcheckprev" "$chkprev"
            chmod 700 "$chkprev"
            pathargs=`$chkprev 2>/dev/null`
            if [ -e "$chkprev" ]; then
                rm -f "$chkprev"
            fi
        else
            cat <<EOF

$VERS_ERR1
$VERS_ERR2

$FATAL_ERR2
EOF
            exit 1
        fi
    fi
    return 0
}

function CheckForCorel {
    uid=`id -u`
    if [ "$uid" = "0" ]; then
        dist=`grep -i "corel" /etc/issue`
        if [ -n "$dist" ]; then
            found_corel="Corel Linux: $dist"
            installargs="-m $installargs"
        else
            found_corel="$NOT_COREL_LINUX"
        fi
    else
        found_corel="$NOT_ROOT_NO_CHECK"
    fi
}

function WriteLog {
    findx=`whereis xdpyinfo | awk '{printf $2}'`
    if [ -n "$findx" ]; then
    cat <<EOF > ~/borland_kylix_install_log
$INSTALL_LOG_HEAD -- `date`
OS: Linux
$KERNEL_VERSION: $kernel_version
$COREL_LINUX_CHECK: $found_corel
$LOADER_TEST_RESULT: $loader_result
$LIBC_VERSION: $libc_version
$LIBJPEG_VERSION: $jpeg_version
xdpyinfo:
`$findx 2>&1`
EOF
    else
        cat <<EOF > ~/borland_kylix_install_log
$INSTALL_LOG_HEAD -- `date`
OS: Linux
$KERNEL_VERSION: $kernel_version
$COREL_LINUX_CHECK: $found_corel
$LIBC_VERSION: $libc_version
$LIBJPEG_VERSION: $jpeg_version
#found libncurses: $found_ncurses
xdpyinfo: $COULD_NOT_LOCATE xdpyinfo
EOF

    fi

}

#END OF FUNCTIONS

fatal_error=0
# Detect the Linux environment
arch=`DetectARCH`
libc=`DetectLIBC`

# Initial display
echo
echo
echo
echo "                                  BORLAND KYLIX 3"
echo
echo "$CHECK_DEP..."

kernel_version=""
libc_version=""
x_server=""
jpeg_version=""
found_corel=""
found_ncurses=""
loader_result=""
args=$*

if ! CheckSystem; then
    exit 1
fi

pathargs=""

if [ -n "`expr "$args" : '\(.*-m\)'`" ]; then
  #non-rpm install forced
    installargs="-m"
else
    installargs=""
    #check rpm version and force -m if relocation bug
    if [ $UID -eq 0 ]; then
      if GetRpmVersion; then
          if [ "$rpmver" = "4.0.2" ]; then
            echo "$DETECTED_RPM 4.0.2; $FORCING_NON_RPM_INSTALL."
            installargs="-m"
          fi
      fi
    fi
fi
CheckForCorel
WriteLog
if CheckPreviousInstall; then
    # Try to run the setup program
    status=0
    rm -f "$setup"
    if ! try_run setup.gtk; then
        if [ $fatal_error -eq 0 ]; then
            if ! try_run setup -fatal; then
                echo "$SETUP_FAILED $arch/$libc"
                echo
                echo "$CONTACT_TECH_SUPPORT"
                status=1
            fi
        fi
    fi
fi
exit $status
Avatar billede strych9 Praktikant
23. september 2004 - 14:55 #13
hmm ja, ok, du kan jo ændre det så der står til sidst:
                    return 0;
                else
                    return 0;
                fi
            else
                return 0;
            fi

Det kan jo ikke garanteres at Kylix vil virke efterfølgende, men et forsøg værd.
Den første del af scriptet kopierer et lille program der hedder chklibc over fra cd og kører det, og smider dernæst output ind i nogle bash variabler.

Jeg tror at problemet er at kylix er lavet til glibc v2.2.5 hvorefter den fejler på det her check:
                if [ $build -ge $GLIBC_BUILD ]; then
                    return 0;
                else
                    return 1;
Fordi 5 jo vitterligt er højere end 3.
Avatar billede strych9 Praktikant
23. september 2004 - 14:58 #14
ok, det er lavet til glibc 2.1.2 så kan jeg se. Så er det måske ikke det problem, men at ændre return 1 til return 0 over hele linjen skulle virke. 0 betyder success, mens alt andet betyder fejl.
Avatar billede henrik_40 Juniormester
23. september 2004 - 23:45 #15
Har prøvet at fifle med det, men det gik ikke :-(

Jeg har kunne installere KYLIX på Mandrake 9.2 - Problemet ligger i Mandrake 10.0.
Da jeg installerede i Mandrake 9.2, kom KYLIX med samme fejl, men så  installerede jeg pakken:
libstdc++2.10-2,96-0.83.mdk.586 og herefter gik det fint. Men i 10'eren vil den ikke give mig lov til at installere pakken, da jeg får at vide jeg allerede har pakken:

[root@localhost KYLIX]# rpm -i lib*
        pakken libstdc++2.10-2.96-0.83mdk er allerede installeret



Kan dette være "en hjælp til hjælp". Måske kunne jeg fjerne de nyeste pakker , installere libstdc 2.10 og opdatere igen...?
Hvad ved jeg?
Avatar billede strych9 Praktikant
24. september 2004 - 09:02 #16
hmm..

hvis du bruger -f (force) switch på rpm kommandoen kan du altid tvinge den til at gøre som du siger. Du vil også være i stand til at nedgradere eller gennemtvinge reinstallation af libstdc++ - Der skulle ikke ske noget slemt ved det.
Avatar billede henrik_40 Juniormester
24. september 2004 - 10:28 #17
ok, det må jeg prøve senere i aften. Skal ud af døren nu.

Går ud fra jeg skal skrive(til at tvinge installation):
rpm -if libst.....

Hvad med nedgraderingen?
Avatar billede strych9 Praktikant
24. september 2004 - 10:33 #18
Ved nærmere eftertanke vil jeg nok foreslå at du afinstallerer libstdc++ først, og derefter downloader den rpm fil du gerne vil have på (www.rpmfind.net er et godt sted at finde).
Smid den i en folder og skriv rpm -if filnavn.rpm
Så er du i hvert fald sikker på hvad du får på..
Avatar billede henrik_40 Juniormester
26. september 2004 - 18:22 #19
Hej igen
Nu har reinstalleret Mandrake 10, og vil derfor være sikker på jeg gør tingene rigtigt.

Ligesom før eksistere pakken libstdc__2.10-2.96-0.83mdk.i586.rpm. Mit spørgsmål er om jeg skal fjerne nedenstående pakker, og derefter installere pakken libstdc__2.10-2.96-0.83mdk.i586.rpm?

FJERNES???
[root@localhost Documents]# rpm -qa | grep libstdc++
libstdc++6-3.4.0-0.4mdk
libstdc++5-3.3.2-6mdk
libstdc++2.10-2.96-0.83mdk
libstdc++6-devel-3.4.0-0.4mdk
libstdc++5-devel-3.3.2-6mdk
Avatar billede strych9 Praktikant
26. september 2004 - 20:39 #20
Prøv lige hurtigt dette i stedet som root:

urpmi libstdc++2.10
Avatar billede henrik_40 Juniormester
26. september 2004 - 21:09 #21
Jeg får at vide at: "alting er allerede installeret".

Når jeg prøver at installere KYLIX, er der stadig ingen ændring :-(
Avatar billede henrik_40 Juniormester
26. september 2004 - 21:20 #22
Har du et forslag til hvad jeg nu skal gøre?

Slette ovenstående pakker?
Avatar billede strych9 Praktikant
26. september 2004 - 21:32 #23
Ved ikke om det vil virke, men du kan da prøve.
Dit system skulle ikke lide en langsom død uden de der pakker, så de skulle være nemme at geninstallere igen.
Avatar billede henrik_40 Juniormester
26. september 2004 - 21:45 #24
Har prøvet i den grafiske menu, men får ikke lov. Hvordan tvinger jeg den til at afinstallere??
Avatar billede strych9 Praktikant
26. september 2004 - 21:47 #25
Er det ikke noget med rpm -ef? (erase/force)
Jeg er ikke så vant til rpm distroer..
Avatar billede henrik_40 Juniormester
27. september 2004 - 02:20 #26
--> strych9
Det lykkedes mig at afinstallere pakkerne og installere libstdc__2.10-2.96-0.83mdk.i586.rpm.

Desværre hjalp det ikke :-(
På Nettet kan jeg se at der er flere, som har problemer med KYLIX.

Jeg har m.a.o. ikke fået løst mit problem. Men du har gjort alt hvad du kunne, så lidt point skal du ha'. Har oprettet et spørgsmål "point til strych9"

Så jeg lukker her.

Skulle du komme på noget nyt, som kan bruges må du dog stadig gerne hjælpe mig og få point for det.
Avatar billede Slettet bruger
27. september 2004 - 03:20 #27
Hvis der findes en -devel-udgave af libstdc++2.10, så prøv at installere den, og se om det hjælper.
Avatar billede henrik_40 Juniormester
27. september 2004 - 09:17 #28
Har prøvet. Hjalp heller ikke :-(
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester