为什么明明存在的文件,系统反馈说不存在?

其它类软件,非上述版软件
回复
cheerland
帖子: 35
注册时间: 2017-02-13 16:00
系统: win10+ubuntu

为什么明明存在的文件,系统反馈说不存在?

#1

帖子 cheerland » 2019-09-10 11:40

一个遥感类专业软件envi,需要一个许可管理器license manager,安装完成后不无法启动,我想手动加载,
sudo /etc/init.d/sys5_idl_lmgrd start
系统提示
/usr/local/exelis/idl83/bin/lmgrd: 459: exec: /usr/local/exelis/idl83/bin/bin.linux.x86_64/lmgrd: not found
查看文件内容
ls /usr/local/exelis/idl83/bin/bin.linux.x86_64|grep lmgrd
idl_lmgrd
lmgrd
手动点击目录内lmgrd无响应
cyan@gameCenterU:~$ ps -aux|grep lmgrd
cyan 11513 0.0 0.0 15964 1080 pts/1 S+ 09:30 0:00 grep --color=auto lmgrd
系统进程中也找不到
现在我想请教的是:如果不是软件本身有问题,单从系统管理方面讲,我该怎么样判断问题在哪,以何种思路去解决,需要哪些系统管理方面的技术储备?
头像
astolia
论坛版主
帖子: 6492
注册时间: 2008-09-18 13:11

Re: 为什么明明存在的文件,系统反馈说不存在?

#2

帖子 astolia » 2019-09-11 9:40

elf loader不对。这算年经帖了

代码: 全选

readelf -l /usr/local/exelis/idl83/bin/bin.linux.x86_64/lmgrd |grep interpreter
列出的loader在你系统上没有。not found指这个,而不是lmgrd

一般而言安装lsb-core就可以了,或者直接做个到/lib/x86_64-linux-gnu/ld-linux-x86-64.so.2的软链接
cheerland
帖子: 35
注册时间: 2017-02-13 16:00
系统: win10+ubuntu

Re: 为什么明明存在的文件,系统反馈说不存在?

#3

帖子 cheerland » 2019-09-12 10:27

问题解决了,写一下过程供后来者参考:

readelf -l /usr/local/exelis/idl83/bin/bin.linux.x86_64/lmgrd |grep interpreter
[Requesting program interpreter: /lib64/ld-lsb-x86-64.so.3]

确实是没有这个“介入器”,本来想省点事装lsb-core的,但是:

sudo apt install lsb-core
[sudo] password for cyan:
Reading package lists... Done
Building dependency tree
Reading state information... Done
lsb-core is already the newest version (9.20160110ubuntu0.2).
You might want to run 'apt-get -f install' to correct these:
The following packages have unmet dependencies:
cups : Depends: cups-common (>= 2.1.3-4ubuntu0.9) but 2.1.3-4ubuntu0.7 is to be installed
cups-bsd : Depends: cups-common (>= 2.1.3-4ubuntu0.9) but 2.1.3-4ubuntu0.7 is to be installed
cups-client : Depends: cups-common (>= 2.1.3-4ubuntu0.9) but 2.1.3-4ubuntu0.7 is to be installed
E: Unmet dependencies. Try 'apt-get -f install' with no packages (or specify a solution).

试了apt-get -f install,不行,一堆错误,跟我装的这个idl8.3有关,其中主要的错误有:

insserv: warning: script 'lmgrd' missing LSB tags and overrides
insserv: warning: script 'sys5_idl_lmgrd' missing LSB tags and overrides
insserv: Starting sys5_idl_lmgrd depends on plymouth and therefore on system facility `$all' which can not be true!
insserv: exiting now without changing boot order!
update-rc.d: error: insserv rejected the script header
dpkg: error processing package util-linux (--configure):
subprocess installed post-installation script returned error exit status 1
Errors were encountered while processing:
util-linux
E: Sub-process /usr/bin/dpkg returned an error code (1)

此路不通,然后我就试着做了个软链接,把对 /lib64/ld-lsb-x86-64.so.3的请求指向/lib/x86_64-linux-gnu/ld-linux-x86-64.so.2
ln -s /lib/x86_64-linux-gnu/ld-linux-x86-64.so.2 /lib64/ld-lsb-x86-64.so.3
然后再执行
/usr/local/exelis/idl83/bin/bin.linux.x86_64/lmgrd -c 'license文件全路径'就可以启动license manager了

另外,如果启动license manager后显示端口被占,可以查看进程
ps -aux|grep lmgrd
cyan 28032 0.0 0.0 17376 3008 pts/0 S 09:48 0:00 /usr/local/exelis/idl83/bin/bin.linux.x86_64/lmgrd -c /usr/local/exelis/license/license.lic
cyan 28033 0.0 0.1 137624 6252 ? Ssl 09:48 0:00 idl_lmgrd -T gameCenterU 11.11 3 -c /usr/local/exelis/license/license.lic --lmgrd_start 5d79a3d6
cyan 28659 0.0 0.0 15964 1016 pts/1 S+ 10:21 0:00 grep --color=auto lmgrd
通过进程的pid来结束已有进程:
sudo kill 28032 -9
sudo kill 28033 -9
然后再启动一次/usr/local/exelis/idl83/bin/bin.linux.x86_64/lmgrd -c 'license文件全路径'就可以了。

接下来我去试一下看能不能把cups搞好,最后谢谢版主astolia的指点,你的智慧与时间照亮我的天空。
回复