idl for linux
本文主要记录在linux系统中安装idl踩过的坑
下载idl安装包
由于安装时不在学校,所以找了个破解版,这是我从某个角落里找到的网盘链接,密码e6xq。
安装
创建安装目录,在终端输入:
sudo mkdir /usr/local/exelis
进入这个目录,并把下载的压缩文件放置在这个目录下,解压文件,在压缩文件文件夹终端输入:
tar -xvf idl83envi51linux.x86_64.tar.gz
执行安装程序,终端输入:
sudo ./install.sh
安装过程,根据提示,有一个是要输入创建的文件名,选择yes/no。一般一路yes即可。
- 在终端输入idl,应该可以进入idl环境,或者输入idlde进入图形界面,如果有报错查看问题下面解决方案。
但此时尚未完成破解,提示许可证错误,有7分钟的使用限制。
破解
- 新建一个文本文件license.dat,内容如下。
hostname
即可看到(有时候修改过计算机名会出现问题,要保证/etc/hosts
文件中有真实的host名)。
license文件内容(点击展开)
1 | ########### license file comments, do not delete ############### |
修改计算机Mac地址
先在终端输入:
ifconfig
获得红圈部分然后输入
sudo ifconfig enp2s0 hw ether 00:14:C2:3D:6E:AC
记得将粗体部分替换成红圈内的(后面的要和license中的一致)可以再次输入ifconfig查看是否修改成功,若系统版本较新,
ifconfig
命令要改成ip
命令:
1 | sudo ip link set dev enp2s0 down |
手动安装许可证
终端输入
sudo /usr/local/exelis/idl/bin/exelislicense
在对话框中,选择第三项Install a license you have received,点Next
然后找到并选中之前更改并保存过的license.dat,点OK
然后一路next直到finish
对于部分Linux桌面系统或者干脆没有安装桌面的Linux系统,图形软件库可能有缺失,那么可以这样解决
将证书文件
license.dat
放置到/usr/local/exelis/license/
目录下先后执行下述命令
1
2
3cd /usr/local/exelis/idl/bin
sudo ./lmgrd_install
sudo ./lmgrd
如果出现找不到证书之类的问题,可能是环境变量缺失,可以在执行最后一步时加一个-c的参数指定路径:
sudo ./lmgrd -c /usr/local/exelis/license/license.dat
问题解决
找不到libXp.so.6动态链接库
Debian系(如ubuntu)去这里下载libXp-1.0.3-5.fc31.x86_64.rpm文件(由于时效问题,版本号可能不一致,注意系统架构使用最新的即可),解压后把里面的libXp.so.6和libXp.so.6.2.0拷贝出来,直接放到目录/usr/local/exelis/idl/bin/bin.linux.x86_64/下面
Arch系 (包括Manjaro等变种)有AUR支持,可以不必手动添加缺失的库了,直接命令
1 | yay -S libxp |
缺少lmgrd 报错:error: “lmgrd: not found”
进入/usr/local/exelis/idl/bin文件夹中查找,执行./lmgrd
(可能需要sudo)
Can’t make directory /usr/tmp/.flexlm, errno:2(No such file or directory)
可以自行创建该文件夹后重新执行
证书软件lmgrd
报错
安装证书后仍有时间限制,错误提示为The license server manager (lmgrd) has not been started yet
,是lmgrd证书软件的问题,进入/usr/local/exelis/idl/bin文件夹中查找,执行./lmgrd
,结果返回错误信息:
1 | /lmgrd:行459: /usr/local/exelis/idl83/bin/bin.linux.x86_64/lmgrd: 没有那个文件或目录 |
但是该目录下次文件存在,仔细检查,发现是32位函数库的依赖问题,在不能执行的文件目录下运行file ./lmgrd
,观察返回结果:./lmgrd: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-lsb-x86-64.so.3, for GNU/Linux 2.6.9, stripped
,发现是lsb库缺失,
- Debian系下执行命令
1 | sudo apt install lsb-core |
- Arch系下执行命令:
1 | yay -S ld-lsb |
然后返回/usr/local/exelis/idl/bin目录,执行一次./lmgrd
,发现可以执行,结束后再次进入idl环境发现破解成功。
重启后破解失效
再次执行 1
2
3sudo ifconfig enp2s0 hw ether 00:14:C2:3D:6E:AC
cd /usr/local/exelis/idl/bin
sudo ./lmgrd
对于较新的系统ifconfig命令变化为了ip命令,修改网卡的命令有调整。
首先查看mac详细信息:
1 | ip link show |
紧接着更改mac地址(先关闭网卡执行后再打开网卡):
1 | sudo ip link set dev enp2s0 down |
再执行
1 | cd /usr/local/exelis/idl/bin |
仅能使用命令行,无法使用idlde
打开窗口
应该是gtk图像窗口依赖的问题,个人的桌面是KDE桌面,默认使用qt而非gtk来构建图像窗口.
本人先安装了使用gtk的输入法软件fcitx,这样使用idlde
命令可以正常打开使用软件,但是问题并未完全解决,软件的简单使用没有问题了,但是仍然无法直接调用浏览器使用帮助文档。
不能使用帮助文档
个人遇到的报错是online_help_html: 1: gconftool-2: not found
,所以安装并配置一下即可。
安装: 1
sudo apt install gconf2 gconf-defaults-service
配置(按照个人需求更改firefox为个人的默认浏览器如google-chrome或microsoft-edge): 1
2gconftool-2 --type=string --set /desktop/gnome/url-handlers/http/command "/usr/bin/firefox %s"
gconftool-2 --type=string --set /desktop/gnome/url-handlers/https/command "/usr/bin/firefox %s"
配置成功后没有报错仍然打不开文档,个人分析仍然是一些gtk软件库缺失的问题。 由于依赖关系比较复杂而且在IDL中没有具体写明,同时也没有报错提醒,我没有找到具体缺少哪些依赖。最终我安装了整个GNOME桌面,这样缺失的软件库依赖问题解决了,帮助可以正常在浏览器打开。
默认语言不是中文
这个是个小问题,在执行idlde
时加入一个参数即可 1
idlde -nl zh