synopsys LEDA在普通用户下无法正常启动
时间:03-15
整理:3721RD
点击:
LEDA装好后,也定义了环境变量变量,我用的是cshrc,可在普通用户下运行,就报:setenv:Too many arguments,无法正常启动leda,可就在该普通用户下su root,但还是用原普通用户下家目录的cshrc,就可以正常启动,这个问题真奇怪。也没查出问题所在,还烦请各位高手帮忙看看。谢谢!
如下图片:
setenv。
看起来是环境设置不对,which下看看leda是不是个脚本,适当的修改可以消除此错误
这个是个脚本,我也看了里面内容,可不知道该修改哪处才能消除此错误,现将该脚本贴出来,请问该如何修改?十分感谢!
- #!/bin/csh -f
- #set echo
- ###testing $LEDA_PATH ###
- if ( $?LEDA_PATH ) then
- set ROOT_PATH = $LEDA_PATH
- else if ( $?PROTON_PATH ) then
- set ROOT_PATH = $PROTON_PATH
- else
- echo ""
- echo "[ERROR] environment variable LEDA_PATH not defined\!"
- exit(1)
- endif
- set realArg = ""
- set set64bit = 0
- set run_batch = 0
- set tclFound = 0
- if ( $?LEDA_RUN_BATCH ) then
- set run_batch = 1
- endif
- ## foreach created problems while parsing some strings,so have used while!
- ## Changes bye Port Team: nsridhar
- #foreach arg ($argv:q)
- #if ("$arg" == "-full64") then
- #set set64bit = 1
- #else
- #set realArg = ($realArg:q "$arg")
- #endif
- #end
- while ($#argv > 0)
- if ("$1:q" == "-full64") then
- set set64bit = 1
- else if ("$1:q" == "-new_range") then
- setenv LEDA_USE_NEW_RANGE
- else if (($run_batch == 1) && ("$1:q" == "+tcl_file")) then
- set tclFound = 1
- else if (($run_batch == 1) && ($tclFound == 1 )) then
- set t2b_opts = (`tclsh $LEDA_PATH/bin/t2b.tcl "$1:q"`)
- set realArg = ($realArg:q $t2b_opts)
- set tclFound = 0
- else
- set realArg = ($realArg:q "$1:q")
- endif
- shift
- end
- if ($run_batch == 1) then
- if ( $?PWD ) then
- set tmpEFile = "$PWD/tmp_t2b_env.tcl"
- if ( -e $tmpEFile) then
- source $tmpEFile
- rm $tmpEFile
- endif
- endif
- endif
- if ($?FULL64) then
- set set64bit = 1
- endif
- # determine which OS to be used
- set sys = `uname`
- set sys_release = `uname -r`
- set mach_release = `uname -m`
- switch ($sys)
- case SunOS:
- if ($mach_release == i86pc) then
- set BIN_ROOT = $ROOT_PATH/x86sol32
- if ($set64bit == 1) then
- set BIN_ROOT = $ROOT_PATH/x86sol64
- endif
- if ( ! $?LD_LIBRARY_PATH ) then
- setenv LD_LIBRARY_PATH $BIN_ROOT/bin
- else
- setenv LD_LIBRARY_PATH ${BIN_ROOT}/bin:$LD_LIBRARY_PATH
- endif
- else
- switch ($sys_release)
- case 5.9:
- case 5.10:
- set BIN_ROOT = $ROOT_PATH/sparcOS5
- if ($set64bit == 1) then
- set BIN_ROOT = $ROOT_PATH/sparc64
- endif
- if ( ! $?LD_LIBRARY_PATH ) then
- setenv LD_LIBRARY_PATH $BIN_ROOT/bin
- else
- setenv LD_LIBRARY_PATH ${BIN_ROOT}/bin:$LD_LIBRARY_PATH
- endif
- breaksw
- default
- goto error_Unsupported_platform
- breaksw
- endsw
- endif
- breaksw
- case HP-UX:
- switch ($sys_release)
- case *.11.*:
- set BIN_ROOT = $ROOT_PATH/hpux11
- if ( ! $?SHLIB_PATH ) then
- setenv SHLIB_PATH $BIN_ROOT/bin
- else
- setenv SHLIB_PATH ${BIN_ROOT}/bin:$SHLIB_PATH
- endif
- breaksw
- default
- goto error_Unsupported_platform
- breaksw
- endsw
- breaksw
- case Linux:
- switch ("$mach_release")
- case i686:
- set BIN_ROOT = $ROOT_PATH/linux
- if (-f /etc/SuSE-release) then
- set BIN_ROOT = $ROOT_PATH/suse32
- endif
- breaksw
- case x86_64:
- set BIN_ROOT = $ROOT_PATH/linux
- if (-f /etc/SuSE-release) then
- set BIN_ROOT = $ROOT_PATH/suse32
- endif
- if ($set64bit == 1 || ! -e $BIN_ROOT/bin/leda) then
- set BIN_ROOT = $ROOT_PATH/amd64
- if (-f /etc/SuSE-release) then
- set BIN_ROOT = $ROOT_PATH/suse64
- endif
- endif
- breaksw
- default
- goto error_Unsupported_platform # make it to point to BIN_ROOT of linux
- endsw
- if ( ! $?LD_LIBRARY_PATH ) then
- setenv LD_LIBRARY_PATH $BIN_ROOT/bin
- else
- setenv LD_LIBRARY_PATH ${BIN_ROOT}/bin:$LD_LIBRARY_PATH
- endif
- breaksw
- case AIX:
- switch ($sys_release)
- case 1:
- case 3:
- if ($?LIBPATH) then
- setenv LIBPATH ${LIBPATH}:$ROOT_PATH/rs6000/bin
- else
- setenv LIBPATH $ROOT_PATH/rs6000/bin
- endif
- set BIN_ROOT = $ROOT_PATH/rs6000
- breaksw
- default
- goto error_Unsupported_platform
- breaksw
- endsw
- breaksw
- default
- goto error_Unsupported_platform
- breaksw
- endsw
- ### set executables ###
- set leda = "$BIN_ROOT/bin/leda "
- ### test and executables ###
- if !( -e $leda) then
- echo "[Error] $leda not found \!"
- exit(1)
- else
- if !( -x $leda) then
- echo "[Error] $leda : Execute permission denied"
- exit(1)
- endif
- endif
- ### execute command ###
- ### use explicitly exec to forbid errors when executing in bg
- if ( $?LEDA_RUN_BATCH_PRINT ) then
- echo "$leda $realArg:q"
- endif
- $leda $realArg:q
- set leda_status = $status
- ### tmpFile is for t2b regression, remove it before exit
- set tmpFile = "$PWD/tmp_t2b_constrains.tcl"
- if ( -e $tmpFile) then
- rm $tmpFile
- endif
- exit($leda_status)
- ######################################################################
- error_Unsupported_platform:
- echo ""
- echo "[ERROR] $sys $sys_release : Unsupported platform\!"
- exit(1)
复制代码
你看一下目录权限把,看是否赋予普通用户合法的权限
应该从setenv:too many argument找原因
可能是用户的.cshrc中设置setenv有问题,而root的.cshrc中没有问题
看看你的leda的安装路径是否有一些不合法的自付,比如空格等
。