Installing Abaqus 2020 on CentOS 8

Issues related to applications and software problems and general support
Post Reply
Iutech
Posts: 9
Joined: 2021/06/16 08:52:13

Installing Abaqus 2020 on CentOS 8

Post by Iutech » 2021/06/16 10:09:19

Hi all.
I'm a debianist (please don't hit me, I come in peace), but we have some CentOS servers at work.
We use Abaqus mostly on windows, but we have an old installation process for it on CentOS 6.
This old procedure uses compat-libtermcap.i686 compat-libstdc++-33.i686 compat-libstdc++-33.x86_64 which do not exist anymore.


I'm trying to install Abaqus 2020 on CentOS 8.
From this link it should be just one yum command and then running the StartupGUI.sh script.

But doing that I get an error message :

Code: Select all

Action LaunchAppAction from feature CODE\\linux\_a64\\EXACloudView\_inst failed.


Action ID: CheckDeps

This error is apparently produced by the script "check-deps.sh"
(code here - it's a script that is created at installation, I didn't find it in the installation folder :)

Code: Select all

#!/bin/bash

# Check dependencies (libraries, 64-bit runtime ..)

# Environment variables that can be set to override default behaviour:

# NG_FORCE_SUCCESS: if set to a non-empty value, force to return with a success
# code even if the script failed to validate the environment

# Linux specific:
# NG_RUNTIME_32: "/usr/lib" 32-bit directory runtime
# NG_RUNTIME_64: "/usr/lib" 64-bit directory runtime

function warning {
    printf "** WARNING: $* \n" >&2
}

function info {
    printf "$* \n" >&2
}

function die {
    printf "** ERROR: $* \n" >&2
    if test -n "${NG_FORCE_SUCCESS}" ; then
        info "Force mode activated (NG_FORCE_SUCCESS=1), trying to pursue..."
    else
        info "to ignore this error, just use: NG_FORCE_SUCCESS=1"
	exit 1
    fi
}

function dieLibNotFound {
  die "Could not find a suitable library for $1 (arch: $2) in $3"
}

# Rewrite some message on stderr not to afraid customers too much
function pimpedldd {
    ldd $* 2> >(sed "s/no version information available/compatible version found/" | uniq 1>&2)
}

# backup <file>
function backup {
    target="$1"
    if test -f "${target}" ; then
        info "backuped ${target} as ${target}.backup"
        rm -f "${target}.backup"
        mv "${target}" "${target}.backup" || die "can not rename ${target}"
    fi
    return 0
}

# dedup symlinks within a single list of alternatives
function dedupFilesLongest {
    ref=
    sym=
    max=0
    for s in $* ; do
        if ! f=$(readlink -f $s) ; then
            return 1
        fi
        if ! test -n "$ref"; then
            ref="$f"
        elif ! test "$f" == "$ref" ; then
            return 1
        fi
        l=$(echo "$s" | wc -c)
        if test $l -gt $max ; then
            max=$l
            sym="$s"
        fi
    done
    if ! test -n "$sym"; then
        return 1
    fi
    echo "$sym"
    return 0
}

# guessLink <source dir[ source dir..]> <regexp> <target dir> <target file name>
function guessLink {
    # first arg is a space-sep list
    for sourceDir in $1 ; do
        sourcePattern="$2"
        test -n "$2" || die "missing argument 2"
        files=$(find "${sourceDir}"/ -maxdepth 1 -name "${sourcePattern}")
        test -n "$3" || die "missing argument 3"
        targetDir="$3"
        test -n "$4" || die "missing argument 4"
        targetFile="$4"
        count=$(echo "$files" | wc -l)
    # exactly one candidate found
        if dedupfile=$(dedupFilesLongest $files) ; then
            info "found ${dedupfile} => ${targetDir}/${targetFile}"
            backup "${targetDir}/${targetFile}" \
                || die "can not backup ${targetDir}"
            ln -sf "${dedupfile}" "${targetDir}/${targetFile}" \
                || die "can not create symbolic link"
            return 0
        elif test "$count" -gt 1 ; then
            warning "multiple files found, do not known what to do: $files"
        fi
    done
    return 1
}

function tryGeneric {
    sourceFile="$1"
    targetDir="$2"
    targetFile="$3"
    if test -f "${sourceFile}" ; then
        case "${sourceFile##*.}" in
            tgz|tar.gz)
                info "found generic libraries replacement: $sourceFile => use it as ${targetDir}/${targetFile}"
                tar xfz "${sourceFile}" --directory "${targetDir}/" \
                    || die "could not extract ${targetFile} in ${targetDir}"
                find "${targetDir}" -type f -exec chmod a+r {} \; \
                    || die "could not chmod ${targetDir}/*"
                ;;
            *)
                info "found generic library replacement: $sourceFile => use it as ${targetDir}/${targetFile}"
                zcat "${sourceFile}" > "${targetDir}/${targetFile}" \
                    || die "could not create ${targetDir}/${targetFile}"
                chmod a+r "${targetDir}/${targetFile}" \
                    || die "could not chmod ${targetDir}/${targetFile}"
                ;;
        esac
        return 0
    fi
    return 1
}

function hasRPM {
  rpm --quiet -q $1
  return $?
}

function hasRPMArch {
  rpm --quiet -q $1
  if [ $? == 0 ]
  then
    rpm -q $1 --qf "%{NAME}-%{ARCH}\n"|grep --quiet $2
    return $?
  else
    return 1
  fi
}

function hasDEB {
  dpkg -l "$1" > /dev/null
  return $?
}

function isSuse12 {
  if test -f /etc/SuSE-release
  then
    if `cat /etc/SuSE-release|grep -q "VERSION = 12"`
    then
      return 0
    fi
  fi
  return 1
}

function isSuse15 {
  if test -f /etc/SuSE-release
  then
    if `cat /etc/SuSE-release|grep -q "VERSION = 15"`
    then
      return 0
    fi
  fi
  return 1
}


function isRedhat {
  if test -f /etc/redhat-release
  then
    return 0
  fi
  return 1
}


function isRedhat7 {
  if test -f /etc/redhat-release
  then
    grep -q " 7\." /etc/redhat-release
    if [ $? = 0 ]
    then
      return 0
    fi
  fi
  return 1
}

function isRedhat8 {
  if test -f /etc/redhat-release
  then
    grep -q " 8\." /etc/redhat-release
    if [ $? = 0 ]
    then
      return 0
    fi
  fi
  return 1
}

function isUbuntu {
  if test -x /usr/bin/lsb_release
  then
    if `lsb_release -i|grep -q Ubuntu`
    then
      return 0
    fi
  fi
  return 1
}

function isDebian {
  if test -x /usr/bin/lsb_release
  then
    if `lsb_release -i|grep -q Debian`
    then
      return 0
    fi
  fi
  return 1
}

function checkRPM {
  if ! hasRPM $1 ; then warning "\'$1\' ' package seems to be missing. Installation might fail."; fi
}
function checkRPMArch {
  if ! hasRPMArch $1 $2 ; then warning "\'$1\' (arch: $2) package seems to be missing. Installation might fail."; fi
}

function copyAlienKitLibs {
    src=osdat/$1
    if ! test -d $src ; then
        return
    fi
    file=imported-libs.txt
    if ! test -f $file ; then
        /usr/bin/find ${src} > $file
        if test -f $file ; then
            info "Copying additional libraries for $1 ..."
            if ! /usr/bin/rsync -a ${src}/ . ; then
                die "Could not copy libraries"
            else
                info "done"
            fi
        fi
    fi
}

# Copy imported libraries (hack for redhat kit)
function checkAlienKit  {
  if isSuse12 || isSuse15; then
      copyAlienKitLibs suse12
  elif isUbuntu || isDebian; then
      copyAlienKitLibs ubuntu
  fi
}

function checkDEB {
  if ! hasDEB $1 ; then warning "\'$1\' ' package seems to be missing. Installation might fail."; fi
}

function checkDeps  {
  if isSuse12
  then
    info "SuSE 12 release detected, checking installed packages"
    checkRPM libaio1
    checkRPM libbz2-1
    checkRPM libgthread-2_0-0
    checkRPM xorg-x11-server
    checkRPM libpng12-0
    checkRPM gd
    checkRPM libjpeg62

    #Qt
    checkRPM libxslt1

  elif isRedhat7
  then
    info "Redhat 7 release detected, checking installed packages"
    checkRPM gd.x86_64
    checkRPM openssl-1.0.*.x86_64
    checkRPM libaio.x86_64
    checkRPM zlib.x86_64
    checkRPM bzip2-libs.x86_64
    checkRPM libstdc++.x86_64
    checkRPM glib2.x86_64
    checkRPM xorg-x11-server-Xvfb.x86_64
    checkRPM openldap.x86_64
    checkRPM libpng12.x86_64
    checkRPM dejavu-sans-fonts

    # Qt
    checkRPM libXrender.x86_64
    checkRPM libXcomposite.x86_64
    checkRPM libXext.x86_64
    checkRPM mesa-libGL.x86_64
    checkRPM libxcb.x86_64
    checkRPM libX11.x86_64
    checkRPM libdrm.x86_64
    checkRPM libXau.x86_64
    checkRPM libXxf86vm.x86_64
    checkRPM libXdamage.x86_64
    checkRPM libxslt.x86_64
    checkRPM libxml2.x86_64
    checkRPM xz-libs.x86_64
    checkRPM pcre.x86_64
    
  elif isRedhat8
  then
      info "Redhat 8 release detected"

  else
      if isUbuntu || isDebian
      then
          info "Ubuntu/Debian release detected, checking installed packages"
          checkDEB libaio1
          checkDEB libgd3
          checkDEB libgl1-mesa-glx
          checkDEB libxslt1.1
      fi
      die "Unsupported Linux distribution"
  fi
}

function seLinuxIsEnabled {
    if test -d "/selinux" ; then
        if test -f "/selinux/enforce" ; then
            if test "$(cat /selinux/enforce)" == "1"; then
                return 0
            fi
        fi
    elif test -f "/etc/selinux/config"; then
        if grep -qE "^SELINUX=enforcing" /etc/selinux/config ; then
            return 0
        fi
    fi
    return 1
}

# Target
if test "$#" -ge 1 ; then
    cd "$1" || die "can not find $1 directory"
fi

# Check for binaries
for  i in uname ldd grep sed cut tr find ln rm mv zcat chmod ; do
    type "$i" >/dev/null || die "$i not found"
done

# System dispatch
if test "$(uname)" == "Linux" ; then
    checkAlienKit
    checkDeps

    # Check SELinux
    if seLinuxIsEnabled ; then
        warning "SELinux is enabled on this machine - some components may fail"
    fi

    info "Checking for dependencies..."

    LIB64=
    ROOTLIB64=
    # explicit 64-bit directory
    if test -d /usr/lib64 ; then
        LIB64=/usr/lib64
    fi
    if test -d /lib64 ; then
        ROOTLIB64=/lib64
    fi
    # override manually
    if test -n "${NG_RUNTIME_64}"; then
        if test -d "${NG_RUNTIME_64}" ; then
            LIB64="${NG_RUNTIME_64}"
        else
            die "bad NG_RUNTIME_64: not a directory"
        fi
    fi

    # root /lib
    if test ! -n "${ROOTLIB32}" ; then
        if test -d /lib ; then
            ROOTLIB32=/lib
        fi
    elif test ! -n "${ROOTLIB64}" ; then
        if test -d /lib ; then
            ROOTLIB64=/lib
        fi
    fi

# Check for directories
    test -d "amd64-linux" || die "amd64-linux directory not found"
    test -d "amd64-linux/lib" || die "amd64-linux/lib directory not found"

# Check for library dependencies.
# We check ngexaberun and cvcommand
  isOptional=
  for testElf in \
      lib/libngexaberun.so \
      lib/libngcomexaleadgraph.so \
      lib/libjnicomexaleadnetldap.so \
      lib/libcomexaleadactionrules.so \
      lib/libcomexaleadindexinganalysisprocessors.so \
      lib/libcomexaleadindexquery.so \
      lib/libcomexaleadindexsearch.so \
      lib/libcomexaleadindexsearcher.so \
      lib/libcomexaleadindexsynthesis.so \
      lib/libngconvert-dynamic.so \
      bin/cvcommand \
      _OPTIONAL_ \
      lib/oda-teigha/libTD_Db.so \
      lib/oda-teigha/libTG_Db.so \
      lib/qt5-commercial/libQt5Core.so \
      lib/qt5-commercial/libQt5Network.so \
      lib/qt5-commercial/libQt5Quick.so \
      lib/qt5-commercial/libQt5Declarative.so \
      lib/qt5-commercial/libQt5WebKit.so

  do
    for i in amd64-linux ; do
        if test "${testElf}" = "_OPTIONAL_" ; then
          isOptional=1
          continue
	fi
	
        libDir="${LIB64}"
        if test -d "/lib64/x86_64-linux-gnu" ; then
            libDir="${libDir} /lib64/x86_64-linux-gnu"
        fi
        if test -d "/usr/lib64/x86_64-linux-gnu" ; then
            libDir="${libDir} /usr/lib64/x86_64-linux-gnu"
        fi
        if test -d "/lib/x86_64-linux-gnu"; then
            libDir="${libDir} /lib/x86_64-linux-gnu"
        fi
        if test -d "/usr/lib/x86_64-linux-gnu"; then
            libDir="${libDir} /usr/lib/x86_64-linux-gnu"
        fi
        if test -d "${ROOTLIB64}"; then
            libDir="${libDir} ${ROOTLIB64}"
        fi

        # ensure file is present
        soFile="${i}/${testElf}"
        test -f "${soFile}" \
            || test -n "$isOptional" \
            || die "${soFile} file not found"
        test -f "${soFile}" \
            || continue
        # check link dependencies
        export LD_LIBRARY_PATH="${i}/lib:${soFile%/*}:${i}/lib/ngconvert:${i}/java-jre/lib/server/"
        pimpedldd "${soFile}" >/dev/null \
            || die "can not ldd "${soFile}
        MISSING=$(pimpedldd "${soFile}" \
            | grep "not found" \
            | sed -e 's/^[[:space:]]//' \
            | cut -f1 -d' ' \
            | tr '\n' ' ')
        unset LD_LIBRARY_PATH
        if test -n "$MISSING"; then
            DEPFAILED=
            for file in $MISSING ; do
                case "${file}" in
                    libgd.so.2)
                        guessLink "$libDir" "libgd.so.2" \
                                  "${i}/lib" "$file" \
                        || guessLink "$libDir" "libgd.so.3" \
                                  "${i}/lib" "$file" \
                        || tryGeneric "osdat/${i}/libgd.tgz" \
                                     "${i}/lib" "$file" \
                        || dieLibNotFound "libgd.so.2" $i "$libDir"
                        ;;
                    libcrypto.so*)
                        for j in lib lib/qt5-lgpl lib/qt5-commercial ; do
                            if test -d "${i}/${j}"; then
                                guessLink "$libDir" "libcrypto.so.1.0.0" \
                                    "${i}/${j}" "$file" \
                                   || guessLink "$libDir" "libcrypto.so.1.0.*" \
                                    "${i}/${j}" "$file" \
                                   || guessLink "$libDir" "libcrypto.so.*.*.*" \
                                    "${i}/${j}" "$file" \
                                   || guessLink "$libDir" "libcrypto.so.*.*" \
                                    "${i}/${j}" "$file" \
                                   || dieLibNotFound "libcrypto.so" $i "$libDir"
                            fi
                        done
                        ;;
                    libssl.so*)
                        for j in lib lib/qt5-lgpl lib/qt5-commercial ; do
                            if test -d "${i}/${j}"; then
                                guessLink "$libDir" "libssl.so.1.0.0" \
                                    "${i}/${j}" "$file" \
                                    || guessLink "$libDir" "libssl.so.1.0.*" \
                                    "${i}/${j}" "$file" \
                                    || guessLink "$libDir" "libssl.so.*.*.*" \
                                    "${i}/${j}" "$file" \
                                    || guessLink "$libDir" "libssl.so.*.*" \
                                    "${i}/${j}" "$file" \
                                    || dieLibNotFound "libssl.so" $i "$libDir"
                            fi
                        done
                        ;;
                    libaio.so*)
                        guessLink "$libDir" "libaio.so.*.*" \
                                  "${i}/lib" "$file" \
                            || guessLink "$libDir" "libaio.so.*" \
                                          "${i}/lib" "$file" \
                            || tryGeneric "osdat/${i}/libaio.so.1.0.1.gz" \
                                          "${i}/lib" "$file" \
                            || dieLibNotFound "libaio.so" $i "$libDir"
                        ;;
                    libacl.so*)
                        guessLink "$libDir" "libacl.so.*.*" \
                                  "${i}/lib" "$file" \
                            || guessLink "$libDir" "libacl.so.*" \
                                          "${i}/lib" "$file" \
                            || tryGeneric "osdat/${i}/libacl.so.1.0.1.gz" \
                                          "${i}/lib" "$file" \
                            || dieLibNotFound "libacl.so" $i "$libDir"
                        ;;
                    libiconv.so.2*)
                        guessLink "$libDir" "libiconv.so.2.*.*" \
                                  "${i}/lib" "$file" \
                            || guessLink "$libDir" "libiconv.so.2.*" \
                                          "${i}/lib" "$file" \
                            || tryGeneric "osdat/${i}/libiconv.so.2.1.0.1.gz" \
                                          "${i}/lib" "$file" \
                            || dieLibNotFound "libiconv.so.2" $i "$libDir"
                        ;;
                    libbz2.so.1*)
                        guessLink "$libDir" "libbz2.so.1.*.*" \
                                  "${i}/lib" "$file" \
                        || guessLink "$libDir" "libbz2.so.1.*" \
                                  "${i}/lib" "$file" \
                            || guessLink "$libDir" "libbz2.so" \
                                          "${i}/lib" "$file" \
                            || dieLibNotFound "libbz2.so.1" $i "$libDir"
                        ;;
                    libcurl.so.3*)
                        guessLink "$libDir" "libcurl.so.4" \
                                  "${i}/lib" "$file" \
                            || dieLibNotFound "libcurl.so.3" $i "$libDir"
                        ;;
                    libldap_r-2.3.so.0)
                        guessLink "$libDir" "libldap_r-2.3.so.*" \
                                  "${i}/lib" "$file" \
                        || guessLink "$libDir" "libldap_r-2.4.so.2" \
                                  "${i}/lib" "$file" \
                        || guessLink "$libDir" "libldap_r-2.4.so.*" \
                                  "${i}/lib" "$file" \
                            || dieLibNotFound "libldap_r-2.3.so.0" $i "$libDir"
                        ;;
                    liblber-2.3.so.0)
                        guessLink "$libDir" "liblber-2.3.so.*" \
                                  "${i}/lib" "$file" \
                        || guessLink "$libDir" "liblber-2.4.so.2" \
                                  "${i}/lib" "$file" \
                        || guessLink "$libDir" "liblber-2.4.so.*" \
                                  "${i}/lib" "$file" \
                            || dieLibNotFound "liblber-2.3.so.0" $i "$libDir"
                        ;;
                    libpcre.so.0)
                        guessLink "$libDir" "libpcre.so.*" "${i}/lib" "$file" \
                        || dieLibNotFound "libpcre.so.0" $i "$libDir"
                        ;;
                    libpcre.so.1)
                        guessLink "$libDir" "libpcre.so.*" "${i}/lib" "$file" \
                        || dieLibNotFound "libpcre.so.1" $i "$libDir"
                        ;;
                    libpcre16.so.0)
                        guessLink "$libDir" "libpcre.so.*" "${i}/lib" "$file" \
                        || dieLibNotFound "libpcre16.so.0" $i "$libDir"
                        ;;
                    libglib-2.0.so.0)
                        guessLink "$libDir" "libglib-2.0.so.*" "${i}/lib" "$file" \
                        || dieLibNotFound "libglib-2.0.so.0" $i "$libDir"
                        ;;
                    libgobject-2.0.so.0)
                        guessLink "$libDir" "libgobject-2.0.so.*" "${i}/lib" "$file" \
                        || dieLibNotFound "libgobject-2.0.so.0" $i "$libDir"
                        ;;
                    libgthread-2.0.so.0)
                        guessLink "$libDir" "libgthread-2.0.so.*" "${i}/lib" "$file" \
                        || dieLibNotFound "libgthread-2.0.so.0" $i "$libDir"
                        ;;
                    libpng12.so.0)
                        guessLink "$libDir" "libpng12.so.0" "${i}/lib" "$file" \
                        || dieLibNotFound "libpng12.so.0" $i "$libDir"
                        ;;
                    *)
                        DEPFAILED=1
                        warning "missing dependency on $i architecture: $file ($testElf failed to load)"
                        ;;
                esac
            done
            test -n "$DEPFAILED" && die "one or more dependencies failed"
        fi
    done
  done
fi

chmod ug+w productversion.txt || die "Permission change for productversion.txt failed."

info "Deps OK"

exit 0
Note that this script has a function in it "isRedhat8" that returns 0 without checking any dependancy.

Code: Select all

function isRedhat8 {
  if test -f /etc/redhat-release
  then
    grep -q " 8\." /etc/redhat-release
    if [ $? = 0 ]
    then
      return 0
    fi
  fi
  return 1
}
So, am I doing something wrong ?
Did anyone succeed in installing Abaqus 2020 on Centos 8 ?
By not getting this error or by solving it ?

MartinR
Posts: 714
Joined: 2015/05/11 07:53:27
Location: UK

Re: Installing Abaqus 2020 on CentOS 8

Post by MartinR » 2021/06/16 11:23:01

Are you aware that CentOS 8 goes EOL at the end of the year, in other words if you go ahead and sort this out you will be unsupported in just over 6 months time. CentOS 7 is supported until 2024 but other than that you need to consider RHEL, Alma Springdale or Rocky.

MartinR
Posts: 714
Joined: 2015/05/11 07:53:27
Location: UK

Re: Installing Abaqus 2020 on CentOS 8

Post by MartinR » 2021/06/16 11:30:16

I've just checked my C8 VM:

Code: Select all

$ cat /etc/redhat-release
CentOS Linux release 8.4.2105
- So the function isRedhat8 should word. I might have a bit of a dig through the script to see if I can spot anything for you after lunch.

Iutech
Posts: 9
Joined: 2021/06/16 08:52:13

Re: Installing Abaqus 2020 on CentOS 8

Post by Iutech » 2021/06/16 13:54:54

MartinR wrote:
2021/06/16 11:30:16
I've just checked my C8 VM:

Code: Select all

$ cat /etc/redhat-release
CentOS Linux release 8.4.2105
- So the function isRedhat8 should word.
Yep, that was implicit in my message. Sorry to not have expressed myself more clearly.

But apart from that, you're probably right that I should install on CentOS 7 if 8 is EOL that soon.

Would CentOS Stream be a good choice too ? I understand (I think) the basic concept of it but not all its consequences.

tunk
Posts: 1204
Joined: 2017/02/22 15:08:17

Re: Installing Abaqus 2020 on CentOS 8

Post by tunk » 2021/06/16 14:19:56

Would CentOS Stream be a good choice too ?
Depends on what you're using it for.
Stream could be described as a rolling prerelease of the
next RHEL point release (currently RHEL 8.5). Most likely
it will have more bugs and problems than RHEL, and some
packages from repositories may not work. You could look at
some of the clones/rebuilds (almalinux, springdale, rocky,
oracle ...) or RHEL itself - if you register you get 16 free
licenses.

MartinR
Posts: 714
Joined: 2015/05/11 07:53:27
Location: UK

Re: Installing Abaqus 2020 on CentOS 8

Post by MartinR » 2021/06/17 16:36:53

I've been having a look at the script that you posted. The first thing is that it could not generate the error messages you show.

Next, if you have a look at the function checkDeps, about halfway down, it looks a bit odd. The function starts by looking for SuSE12, and if found prints a message and checks the RPMs. Next it looks for RHEL 7 and likewise tells the user and checks the RPMs. The it looks for RHEL 8, informs the user and does nothing else. Finally it checks for Debian or Ubuntu and again informs the user and checks the DEBs.

Why is RHEL 8 different?

Iutech
Posts: 9
Joined: 2021/06/16 08:52:13

Re: Installing Abaqus 2020 on CentOS 8

Post by Iutech » 2021/07/09 14:00:57

tunk wrote:
2021/06/16 14:19:56
Would CentOS Stream be a good choice too ?
Depends on what you're using it for.
Stream could be described as a rolling prerelease of the
next RHEL point release (currently RHEL 8.5). Most likely
it will have more bugs and problems than RHEL, and some
packages from repositories may not work. You could look at
some of the clones/rebuilds (almalinux, springdale, rocky,
oracle ...) or RHEL itself - if you register you get 16 free
licenses.
Thanks.
Which of the clones do you believe will thrive and prosper ?
For professional work, we'd need something reliable...

Mike_Rochefort
Posts: 215
Joined: 2016/03/16 02:34:19

Re: Installing Abaqus 2020 on CentOS 8

Post by Mike_Rochefort » 2021/07/09 18:10:57

I do not have access to Abaqus (nor their docs, seems to be behind a login including system requirements), but their tested platforms[0] do not list RHEL 8 as a tested configuration. It's possible that RHEL 8 is not supported under Abaqus 2020 and any mention of it in the installation process is just placeholder. It's hard to know without access to more information from the vendor.

Abaqus 2021[1] however, does seem to have been tested on RHEL 8.1.

[0] https://www.3ds.com/support/hardware-an ... aqus-2020/
[1] https://www.3ds.com/support/hardware-an ... aqus-2021/

Realistically speaking, they should not be using /etc/redhat|centos-release to check system information, but instead use /etc/os-release and look at the values for the ID, ID_LIKE, and VERSION_ID parameters. Their check as it stands now (it may have been adjusted in 2021) would fail to install on Stream. Though in this case just removing the ".\" would make it pass the test, /etc/os-release is more portable.

Cheers,
Mike
Solution Architect @RedHat | RHCE
Former SysAdmin @BlueSkyStudios and @Pixar
Feature animation and VFX enthusiast
--
Report CentOS Stream 8 bugs: https://da.gd/c8s-bugs
Report CentOS Stream 9 bugs: https://da.gd/c9s-bugs

Iutech
Posts: 9
Joined: 2021/06/16 08:52:13

Re: Installing Abaqus 2020 on CentOS 8

Post by Iutech » 2021/08/27 12:46:39

MartinR wrote:
2021/06/17 16:36:53
I've been having a look at the script that you posted. The first thing is that it could not generate the error messages you show.

Next, if you have a look at the function checkDeps, about halfway down, it looks a bit odd. The function starts by looking for SuSE12, and if found prints a message and checks the RPMs. Next it looks for RHEL 7 and likewise tells the user and checks the RPMs. The it looks for RHEL 8, informs the user and does nothing else. Finally it checks for Debian or Ubuntu and again informs the user and checks the DEBs.

Why is RHEL 8 different?

Oh, thanks for the info.

Apparently I've been too quick in considering that the error came from this script.

There are a lot (more than a thousand IIRC) compressed files installed by the installation program, apparently the error comes from one of them (I checked before the holidays and it was the most probable cause, but I forgot how and why exactly).

Anyway I abandoned the idea to install it on CentOS and succeeded in installing it on Ubuntu and CentOS 7 (though not the Exalead part).

Post Reply