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: