LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1982|回复: 16

Oracle 9.2.0安装问题--黄叶 help me

[复制链接]
发表于 2003-7-12 10:34:50 | 显示全部楼层 |阅读模式
安装过程中碰到了error invoking target install of
/oracle/product/9.2.0/plsql/lib/ins_plsql.mk

Chinaunix里给出了一个解决方法,是编辑
$ORACLE_HOME/bin/genclntsh脚本
把 LD_SELF_CONTAINED="-z defs"
改成 LD_SELF_CONTAINED=""

然后运行脚本ORACLE_HOME/bin/genclntsh
应该是
Created /oracle/product/9.2.0/lib/libclntst9.a

可是我修改后运行后确是下面的情况,请黄叶看看好吗

[oracle@BillingServer bin]$ ./genclntsh

/usr/bin/ld: unrecognized option '--eh-frame-hdr'
/usr/bin/ld: use the --help option for usage information
collect2: ld returned 1 exit status
cat: /tmp/clntst9.3498/*.nm: 没有那个文件或目录
sort: open failed: /tmp/clntst9.3498/*.objs: 没有那个文件或目录
Usage: ar [-X32_64] [-]{dmpqrstx}[abcfilNoPsSuvV] [member-name] [count] archive-file file...
       ar -M [<mri-script]
commands:
  d            - delete file(s) from the archive
  m[ab]        - move file(s) in the archive
  p            - print file(s) found in the archive
  q[f]         - quick append file(s) to the archive
  r[ab][f]  - replace existing or insert new file(s) into the archive
  t            - display contents of archive
  x[o]         - extract file(s) from the archive
command specific modifiers:
  [a]          - put file(s) after [member-name]
            - put file(s) before [member-name] (same as )
  [N]          - use instance [count] of name
  [f]          - truncate inserted file names
  [P]          - use full path names when matching
  [o]          - preserve original dates
            - only replace files that are newer than current archive contents
generic modifiers:
  [c]          - do not warn if the library had to be created
            - create an archive index (cf. ranlib)
  [S]          - do not build a symbol table
  [v]          - be verbose
  [V]          - display the version number
  [-X32_64]    - (ignored)
ar: supported targets: elf32-i386 a.out-i386-linux efi-app-ia32 elf32-little elf32-big srec symbolsrec tekhex binary ihex trad-core
Created /oracle/product/9.2.0/lib/libclntst9.a
 楼主| 发表于 2003-7-12 10:37:29 | 显示全部楼层
脚本运行的时候这个到底是什么错误?

我把genclntsh脚本也贴出来

#!/bin/sh
#
# $Id: genclntsh.sh 10-may-2002.22:20:53 madivi Exp $
# Copyright (c) 1996, 2002, Oracle Corporation.  All rights reserved.  
#
# genclntsh.sh        (for Linux)
#
# Script to create single shared client library for OCI, Pro*C, and XA
#
#  MODIFIED   (MM/DD/YY)
#  madivi      05/10/02 - Removed -lrt option and added stubs to link line.
#  mkrohan     03/05/01 - Remove echo
#  mkrohan     03/05/01 - Drop libnent9
#  rlal        02/13/01 - Merges for 8i to 9i for Linux.
#  mkrohan     12/13/00 - Fix symlinking
#  mkrohan     12/07/00 - Final cleanup
#  mkrohan     11/27/00 - Add support static library map file
#  mkrohan     11/08/00 - Search for product 9 libraries
#  mkrohan     10/26/00 - Update to version 9
#  rachacos    11/25/98 - use naming adapter libraries
#  rachacos    07/30/98 - use GS LDAP package
#  hpiao       11/12/97 - Make libcommon$$.a writable
#  jweisz      06/30/97 - ADE support: if lib is symlink, copy it
#  mluong      05/30/97 - Read entry points from $PRODUCT/admin/shrept.lst
#  hpiao       04/04/97 - Modify for 803
#  dkozlows    05/01/95 - File created
#

#
# List the required symbols from a product's shrept.lst file
listf () {
        product=$1
        entryList=$ORACLE_HOME/$product/admin/shrept.lst
        grep -v '#' $entryList | \
                grep $product | \
                awk '{ printf (" -u %s", $3); }'
}

#
# Main line starts here
#

#
# Explicit path to ensure that we're using the correct commands
PATH=/bin:/usr/bin:/usr/local/binPATH       
export PATH

#
# each product _must_ provide a $PRODUCT/admin/shrept.lst
ErrFiles=
for product in rdbms precomp plsql ldap network
do
        SHREPT=$ORACLE_HOME/$product/admin/shrept.lst
        if [ ! -f $SHREPT ]
        then
                ErrFiles="$ErrFiles $SHREPT"
        fi
done
if [ ! -z "$ErrFiles" ]
then
        echo "genclntsh: Could not locate $ErrFiles" 1>&2
        echo "genclntsh: exiting ..." 1>&2
        exit 1
fi

#
# library definitions
OLIB=${ORACLE_HOME}/lib

# Precomp
LSQL="-lsql9"

# PL/SQL
LPLSQL="-lpls9"

# RDBMS
LMM="-lmm"
LCLIENT="-lclient9"
LCOMMON="-lcommon9"
LGENERIC="-lgeneric9"

# NLSRTL & CORE
LNLSRTL="-lnls9"
LUNLSRTL="-lunls9"
LCORE="-lcore9"
LXDK="-lxml9"
LXSD="-lxsd9"

# OTrace
LTRACE="-ltrace9"

# LDAP
LLDAP="-lldapclnt9"

# ICache
LWTC="-lwtc9"

# Network
LDFLAGS="`cat ${ORACLE_HOME}/lib/ldflags`"
LNENT=
[ -r ${OLIB}/libnent9.a ] && LNENT="-lnent9"
LNETWORK="${LDFLAGS} ${LNENT} -lnsslb9 -lncrypt9 -ln9 -lnl9 -lnro9 ${LDFLAGS}"

#
# Create lists of symbols to pass to ld
SYMS_OCIC="`listf rdbms` ${LCLIENT}"
SYMS_SQL="`listf precomp` ${LSQL}"
SYMS_PLSQL="`listf plsql` ${LPLSQL}"
SYMS_LDAP="`listf ldap` ${LLDAP}"
SYMS_NETWORK="`listf network` ${LNETWORK}"

#
# Library names and locations
CLNT_NAM=clntsh                                 # (short) library name
CLNT_VER=9.0                                    # library version number
CLNT_LNK=lib${CLNT_NAM}.so                      # name of symlink to library
CLNT_LIB=${CLNT_LNK}.${CLNT_VER}                # actual library file name
LIB_DIR=${ORACLE_HOME}/lib                      # lib. destination directory

if [ ! -z "$SRCHOME" ]
then
        LIB_DIR=${SRCHOME}/rdbms/lib            # lib. destination directory
fi

#
# If in ADE, the library may be a symlink to the label server.  If so,
# pull it over...
if [ -h ${LIB_DIR}/${CLNT_LIB} ]
then
        echo "copying ${CLNT_LIB} to local disk"
        cp -p ${LIB_DIR}/${CLNT_LIB} ${LIB_DIR}/${CLNT_LIB}.tmp
        rm -f ${LIB_DIR}/${CLNT_LIB}
        mv ${LIB_DIR}/${CLNT_LIB}.tmp ${LIB_DIR}/${CLNT_LIB}
        chmod +w ${LIB_DIR}/${CLNT_LIB}
fi

#
# Define the name of the map file
MAPFILE=${LIB_DIR}/${CLNT_NAM}.map


#
# Linker command and options

#LD="ld -i -G -z text -L${ORACLE_HOME}/lib"        # shared library link command
LD="gcc -shared -Wl,-relax -L${ORACLE_HOME}/lib"                # shared library link command
LD_RUNTIME="-Wl,-R${ORACLE_HOME}/lib"
LD_OPT="-Wl,-Map ${MAPFILE} -Wl,-h${CLNT_LIB}"                                # name inserted into library
LD_OUT="-o ${LIB_DIR}/${CLNT_LIB}"                # output specification
#LD_SELF_CONTAINED="" ///////此处做了修改的!!!!!!!!!!!!!!!!!!!!!!!


#
# Oracle library dependencies
DEF_ON="${ORACLE_HOME}/rdbms/lib/kpudfo.o"
NAUTAB="${ORACLE_HOME}/lib/nautab.o"
NAETAB="${ORACLE_HOME}/lib/naeet.o ${ORACLE_HOME}/lib/naect.o"
NAEDHS="${ORACLE_HOME}/lib/naedhs.o"
XAONDY="${ORACLE_HOME}/rdbms/lib/xaondy.o"

OLIBS="${LCLIENT}"
OLIBS="${OLIBS} ${LSQL}"
OLIBS="${OLIBS} ${LNETWORK}"
OLIBS="${OLIBS} ${LCLIENT}"
OLIBS="${OLIBS} ${LCOMMON}"
OLIBS="${OLIBS} ${LGENERIC}"
OLIBS="${OLIBS} ${LMM}"
OLIBS="${OLIBS} ${XAONDY}"
OLIBS="${OLIBS} ${LWTC}"
OLIBS="${OLIBS} ${LNETWORK}"
OLIBS="${OLIBS} ${LCLIENT}"
OLIBS="${OLIBS} ${LCOMMON}"
OLIBS="${OLIBS} ${LGENERIC}"
OLIBS="${OLIBS} ${LTRACE}"
OLIBS="${OLIBS} ${LNLSRTL}"
OLIBS="${OLIBS} ${LCORE}"
OLIBS="${OLIBS} ${LNLSRTL}"
OLIBS="${OLIBS} ${LUNLSRTL}"
OLIBS="${OLIBS} ${LXDK}"
OLIBS="${OLIBS} ${LXSD}"
OLIBS="${OLIBS} ${LNLSRTL}"
OLIBS="${OLIBS} ${LUNLSRTL}"
OLIBS="${OLIBS} ${LCORE}"

#SYSLIBS=`cat ${ORACLE_HOME}/lib/sysliblist`" -laio -lm -lc"
#SYSLIBS=`cat ${ORACLE_HOME}/lib/sysliblist`" -ldl -lm -lc"

# LD does not seem to recognize -Wl,-relax, which CC needs
#SYSLIBS="-Wl,-relax -ldl -lnsl -lpthread -lrt -lm -lc"
# Removed -lrt option
SYSLIBS="-Wl,-relax -ldl -lnsl -lpthread -lm -lc"

# Introducing stubs for compatibility with higher version of glibc
STUBS=-L${ORACLE_HOME}/lib/stubs

# Create library
/bin/rm -f ${LIB_DIR}/${CLNT_LIB} ${MAPFILE}
${LD} ${LD_RUNTIME} ${STUBS} ${LD_OPT} ${LD_OUT} ${LD_SELF_CONTAINED} \
        ${DEF_ON} ${NAUTAB} ${NAETAB} ${NAEDHS} ${SYMS_SQL} \
        ${SYMS_PLSQL} ${SYMS_OCIC} ${SYMS_LDAP} ${SYMS_NETWORK} ${OLIBS} \
        ${SYSLIBS} ${USRLIBS} > ${MAPFILE}

# Create ".so" link to library in a non-development environment only
# and generate the client static library
if [ -z "${SRCHOME}" ]
then
        if [ -s ${LIB_DIR}/${CLNT_LIB} ]
        then
                cd ${LIB_DIR}
                rm -f ${CLNT_LNK}
                ln -s ${CLNT_LIB} ${CLNT_LNK}
        fi
        ${ORACLE_HOME}/bin/genclntst
else
      if [ -s ${LIB_DIR}/${CLNT_LIB} ]
      then
              cd ${SRCHOME}/lib
              rm -f ${CLNT_LNK}
          if [ -d ../rdbms ]; then
        ln -s ../rdbms/lib/${CLNT_LIB} ${CLNT_LNK}
          else
        ln -s ../../rdbms/lib/${CLNT_LIB} ${CLNT_LNK}
          fi
      fi
fi
exit 0
 楼主| 发表于 2003-7-12 12:48:01 | 显示全部楼层
waiting for you......
 楼主| 发表于 2003-7-12 13:35:44 | 显示全部楼层
up
发表于 2003-7-12 16:34:25 | 显示全部楼层
这个问题还是第一次碰到。
我仔细看看。
 楼主| 发表于 2003-7-12 17:04:08 | 显示全部楼层
我翻了些文档,有些文档里写是因为binutils的版本不符合,
应该采用binutils-2.10.0.18-1.i386.rpm

我的系统刚崩了,没法子,等会重整了redhat 9再来实验吧,这几天整这个头都大了
 楼主| 发表于 2003-7-12 22:03:56 | 显示全部楼层
实验结果,binutils的版本不是造成本问题的根源
继续找……
 楼主| 发表于 2003-7-13 19:49:49 | 显示全部楼层
up
发表于 2003-7-14 09:09:20 | 显示全部楼层
兄弟我自己用的是redhat9这个发行版。
兄弟也应该用的是这个吧。如果是这个,在安装前看看有没有安装这几个软件包(当然是要在redhat9光盘里自带的)
compat-gcc-7.3-2.96.118.i386.rpm
compat-libgcj-7.3-2.96.118.i386.rpm
compat-libgcj-devel-7.3-2.96.118.i386.rpm
nss_db-compat-2.2-20.i386.rpm

应该不会碰到更多的问题的。
关于老兄这个出错信息我真的是没有见到,我再一次在自己的电脑上安装也没有出现老兄所说的这种错误。
 楼主| 发表于 2003-7-14 14:24:23 | 显示全部楼层
compat-gcc-java-7.3-2.96.118
compat-libstdc++-7.3-2.96.118
compat-gcc-c++-7.3-2.96.118
compat-libgcj-7.3-2.96.118
kde2-compat-2.2.2-9
compat-libstdc++-devel-7.3-2.96.118
compat-gcc-g77-7.3-2.96.118
compat-pwdb-0.62-3
compat-slang-1.4.5-5
nss_db-compat-2.2-20
compat-db-3.3.11-4
compat-gcc-7.3-2.96.118
compat-libgcj-devel-7.3-2.96.118
compat-gcc-objc-7.3-2.96.118
pilot-link095-compat-0.9.5-22
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表