[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: libz.so.1 conflict/compatibility issue



Florian Kulzer wrote:
>> >> libz.so.1, of course, is a symlink to the actual library.  For my
>> >> Debian Lenny box, it points to libz.so.1.2.3.3 and for acusim, it
>> >> points to libz.so.1.2.3.
> >
> > This does not explain what you are doing at the moment. Do you have a
> > symlink that you change according to which application you run next?

I'm hoping that, in the end, I do not need to modify symlinks to shared
libraries and all programs run without any modification.

I hope I don't confuse anyone in this reply, as I've combined both of
Florian's e-mail's into this single one for digestion.

> > Something that I missed previously: Didn't you say this is a Lenny
> > system?

Yep, plain on Lenny

> > Programs in /usr/X11R6/bin/ should not exist anymore from Etch
> > onwards.

Appears you're correct:
host:/etc/ld.so.conf.d# ls -l /usr/X11R6/bin
lrwxrwxrwx 1 root root 6 2008-10-09 11:12 /usr/X11R6/bin -> ../bin


> > Please explain in more detail how you have set this up, does
> > the program run in a Sarge chroot?

I do have the ia32-libs package installed, but the commercial app is
64-bit, so it's not running in chroot.  I don't think anything is
running in chroot.

> > The ldconfig output looks normal to me; all programs should find the
> > system version of libz.so.1. On Lenny this should be a symlink to
> > /usr/lib/libz.so.1.2.3.3, provided by package zlib1g version
> > 1:1.2.3.3.dfsg-12.

All looks good here:
host:/etc/ld.so.conf.d# dpkg -l zlib1g
Desired=Unknown/Install/Remove/Purge/Hold
|
Status=Not/Inst/Cfg-files/Unpacked/Failed-cfg/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Hold/Reinst-required/X=both-problems (Status,Err:
uppercase=bad)
||/ Name           Version        Description
+++-==============-==============-============================================
ii  zlib1g         1:1.2.3.3.dfsg compression library - runtime

> > Are there any environmental variables that influence the linker? Post
> > the output of

Looks like it:
host:/etc/ld.so.conf.d# env |grep LD_
LD_LIBRARY_PATH=:/usr/local/bin/acusim/LINUX64/V1.7e/bin:/usr/local/bin/acusim/LINUX64/V1.7e/base/lib:/usr/local/bin/acusim/LINUX64/V1.7e/ODB_6.7/lib
> > I would check /etc/ld.so.conf and all files in /etc/ld.so.conf.d/ to see
> > if acuSim added its own local paths in there somewhere.

host:/etc/ld.so.conf.d# cat /etc/ld.so.conf
include /etc/ld.so.conf.d/*.conf


> > If so then I would remove all references to it and run ldconfig as
root to update the
> > library cache. This will ensure that all Debian applications use
> > /usr/lib/libz.so.1 as they are supposed to do.

host:/etc/ld.so.conf.d# ls -l
total 8
-rw-r--r-- 1 root root 44 2008-07-28 19:04 libc.conf
-rw-r--r-- 1 root root 68 2008-07-28 19:04 x86_64-linux-gnu.conf
host:/etc/ld.so.conf.d# cat libc.conf
# libc default configuration
/usr/local/lib
host:/etc/ld.so.conf.d# cat x86_64-linux-gnu.conf
# Multiarch support
/lib/x86_64-linux-gnu
/usr/lib/x86_64-linux-gnu


> > Then I would write a wrapper script to start up acuSim after setting
> > LD_LIBRARY_PATH and maybe LD_PRELOAD so that acuSim finds its own
> > preferred versions of libraries before it looks in the system folders
> > (see "man ld.so").

Can you please expand on this and possibly provide an example?  Thanks
so much for your assistance. :-)

acuSim does have me sourcing a config file:

user@host:~$ cat /usr/local/bin/acusim/LINUX64/V1.7e/script/.acusim-sh
##***************************************************************************
##  Copyright (c) 1994-2005 ACUSIM Software, Inc.
##  All rights reserved.
##  This source code is confidential and may not be disclosed.
##***************************************************************************

#============================================================================
#
# ".acusim-sh":  ACUSIM running command for sh and bash
#
# This script set the following environment variables
#
#       ACUSIM_HOME                     - home directory
#       ACUSIM_VERSION                  - version
#       ACUSIM_MACHINE                  - current machine
#       ACUSIM_CNF_FILES                - configuration files
#
#       ACUSIM_BASE_VERSION             - base version
#       ACUSIM_BASE_MACHINE             - base current machine
#
# Add to the following environment variables
#
#       P_SCHEMA                        - Parasolid schema
#       PV_INTERFACE_PATH               - Paraview interface path
#       ACUSIM_PARAVIEW_LIB             - Paraview library
#       Visual3_CP                      - Visual3 color directory
#       PYTHONPATH                      - python path
#       LD_LIBRARY_PATH                 - search path
#       ENSIGHT8_READER                 - ensight path
#
# Add directories to
#
#       PATH                            - unix path
#
# Original: Farzin Shakib (Feburary 01)
#============================================================================

#----------------------------------------------------------------------------
# Set the top directories
#----------------------------------------------------------------------------

ACUSIM_HOME=/usr/local/bin/acusim
ACUSIM_VERSION=V1.7e
ACUSIM_BASE_VERSION=latest

#----------------------------------------------------------------------------
# Setup the perl bin directory
#----------------------------------------------------------------------------

perldir=/usr/bin

#----------------------------------------------------------------------------
# Get the machine ID
#----------------------------------------------------------------------------

case `uname` in
    IRIX)       ACUSIM_MACHINE=SGI                      ;
                ACUSIM_BASE_MACHINE=SGI                 ;;
    IRIX64)     ACUSIM_MACHINE=SGI64                    ;
                ACUSIM_BASE_MACHINE=SGI                 ;;
    HP-UX)      ACUSIM_MACHINE=HP                       ;
                ACUSIM_BASE_MACHINE=HP                  ;
                if [ `uname -m` = "ia64" ] ; then
                    ACUSIM_MACHINE=HPIPF
                    ACUSIM_BASE_MACHINE=HP
                fi                                      ;;
    AIX)        ACUSIM_MACHINE=IBM                      ;
                ACUSIM_BASE_MACHINE=IBM                 ;;
    Linux)      ACUSIM_MACHINE=LINUX                    ;
                ACUSIM_BASE_MACHINE=LINUX               ;
                if [ `uname -m` = "x86_64" ] ; then
                    ACUSIM_MACHINE=LINUX64
                    ACUSIM_BASE_MACHINE=LINUX
                fi                                      ;
                if [ `uname -m` = "ia64" ] ; then
                    ACUSIM_MACHINE=LINUXIPF
                    ACUSIM_BASE_MACHINE=LINUX
                fi                                      ;;
    SunOS)      ACUSIM_MACHINE=SUN                      ;
                ACUSIM_BASE_MACHINE=SUN                 ;
                if [ `uname -m` = "sun4H" ] ; then
                    ACUSIM_MACHINE=HAL
                    ACUSIM_BASE_MACHINE=SUN
                fi                                      ;;
    OSF1)       if [ `uname -m` = "alpha" ] ; then
                    ACUSIM_MACHINE=ALPHA
                    ACUSIM_BASE_MACHINE=ALPHA
                fi                                      ;;
    *)          ACUSIM_MACHINE=_undefined               ;
                ACUSIM_BASE_MACHINE=_undefined          ;
                echo "ACUSIM_MACHINE not found" ;;
esac

#----------------------------------------------------------------------------
# Set the machine dependent environment variables
#----------------------------------------------------------------------------

ACUSIM_CNF_FILES="./Acusim.cnf:~/Acusim.cnf"

if [ "$ACUSIM_MACHINE" != "_undefined" ] ; then

    dir=$ACUSIM_HOME/$ACUSIM_MACHINE/$ACUSIM_VERSION

    ACUSIM_CNF_FILES="$ACUSIM_CNF_FILES:$ACUSIM_HOME/Acusim.cnf"
    ACUSIM_CNF_FILES="$ACUSIM_CNF_FILES:$dir/script/Acusim.cnf"

    #uncomment to get the extra tools
    #PATH="$PATH:$dir/tools"

    PATH="$perldir:$PATH"
    PATH="$dir/base/bin:$PATH"
    PATH=".:$dir/bin:$PATH"

    LD_LIBRARY_PATH="$LD_LIBRARY_PATH:$dir/bin"
    LD_LIBRARY_PATH="$LD_LIBRARY_PATH:$dir/base/lib"
    LD_LIBRARY_PATH="$LD_LIBRARY_PATH:$dir/ODB_6.7/lib"
    ENSIGHT8_READER="$ENSIGHT8_READER:$dir/script"
    PYTHONPATH="$dir/script:$PYTHONPATH"
    PERL5OPT="-I$dir/script $PERL5OPT"

    P_SCHEMA="$dir/script/schema"

    PV_INTERFACE_PATH="$dir/pv/packages"
    if [ ${ACUSIM_MACHINE} = HP -o ${ACUSIM_MACHINE} = HPIPF ] ; then
        ACUSIM_PARAVIEW_LIB=$dir/pv/bin/libvtkAcuSolveReader.sl
    else
        ACUSIM_PARAVIEW_LIB=$dir/pv/bin/libvtkAcuSolveReader.so
    fi
    PATH="$PATH:$dir/pv/bin"

    Visual3_CP="$dir/script"

fi

#----------------------------------------------------------------------------
# Export
#----------------------------------------------------------------------------

export ACUSIM_HOME
export ACUSIM_MACHINE
export ACUSIM_VERSION
export ACUSIM_BASE_MACHINE
export ACUSIM_BASE_VERSION
export ACUSIM_CNF_FILES
export PV_INTERFACE_PATH
export ACUSIM_PARAVIEW_LIB
export P_SCHEMA
export LD_LIBRARY_PATH
export ENSIGHT8_READER
export PATH
export PERL5OPT
export PYTHONPATH
export Visual3_CP

- Ken


Reply to: