idl for linux

本文主要记录在linux系统中安装idl踩过的坑

下载idl安装包

由于安装时不在学校,所以找了个破解版,这是我从某个角落里找到的网盘链接,密码e6xq。

安装

  1. 创建安装目录,在终端输入:sudo mkdir /usr/local/exelis

  2. 进入这个目录,并把下载的压缩文件放置在这个目录下,解压文件,在压缩文件文件夹终端输入:tar -xvf idl83envi51linux.x86_64.tar.gz

  3. 执行安装程序,终端输入:sudo ./install.sh​

安装过程,根据提示,有一个是要输入创建的文件名,选择yes/no。一般一路yes即可。

  1. 在终端输入idl,应该可以进入idl环境,或者输入idlde进入图形界面,如果有报错查看问题下面解决方案

但此时尚未完成破解,提示许可证错误,有7分钟的使用限制。

破解

  1. 新建一个文本文件license.dat,内容如下。
注意要把hostname(liujunyan-PC)改成自己的,终端输入hostname即可看到(有时候修改过计算机名会出现问题,要保证/etc/hosts文件中有真实的host名)。
license文件内容(点击展开)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
########### license file comments, do not delete ###############  
# License Number(s):601929, 601930, 601931
SERVER liujunyan-PC 0014C23D6EAC 1700
DAEMON idl_lmgrd
INCREMENT envi idl_lmgrd 5.200 1-jan-0000 25 A0AF46067DB79B28 \
VENDOR_STRING="601929Aristotle University of Thessaloniki" \
ck=79 SIGN="124F 6488 6C93 93F7 FC9D 82AD FE97 2A33 8772 9218 \
210A EE7B F635 FD6B 62BC 0336 476C 1E43 FBBA 2E21 D4DB D9FF \
5EE4 1CE5 E4FC C24D 4412 4906 79F1 7CF5"
INCREMENT envi_cartosat idl_lmgrd 5.200 1-jan-0000 25 \
07ADA3E226D2DC03 VENDOR_STRING="601929Aristotle University of \
Thessaloniki" ck=88 SIGN="0C8F 6911 0C8F CEEE 50DB C63F CAF6 \
E40F 855F F658 44D3 A39E 96D7 B7F6 203A 10E1 8713 0E2D B25A \
1777 B21B D76B 280F 32F9 0CD9 C1BC 895B F2EB 57D3 6780"
INCREMENT idl idl_lmgrd 8.400 1-jan-0000 150 5D09E789C7AEC186 \
VENDOR_STRING="601929Aristotle University of Thessaloniki" \
ck=134 SIGN="0821 45F2 7018 3B27 8A72 9B6F 19A4 5EA7 7DFE E189 \
AD47 78FE C6DF 8E94 466A 0061 71C5 9D26 B9B9 DDC0 759E FD54 \
314A F4BF E4F2 9DE3 D1D1 BEA5 B28A 8825"
INCREMENT idl_bridge_assist idl_lmgrd 8.400 1-jan-0000 25 \
3FBA25E00C033CA1 VENDOR_STRING="601929Aristotle University of \
Thessaloniki" ck=54 SIGN="0758 1151 AB37 A1C5 F584 DD79 EC95 \
686B 0BC9 670A 5267 6684 E9F9 C6B4 A1D4 0792 084C 33C9 F64E \
0A34 0D98 3586 F8E0 1286 982A 2CFB 490D BC2C F543 CC99"
INCREMENT idl_mpeg2_read idl_lmgrd 8.400 1-jan-0000 25 \
BFFC777493EEFECD VENDOR_STRING="601929Aristotle University of \
Thessaloniki" ck=155 SIGN="1D60 D2A7 2B56 792F 814A 70D7 AF8C \
DFCB 8996 77B6 AE86 E378 3684 B24C 35C0 0B5D BA99 DDF7 33A3 \
C03A D5E1 5558 DAE5 EAEB 9617 A404 7D6D 7B8B 7CD0 4BB0"
INCREMENT idl_video_write idl_lmgrd 8.400 1-jan-0000 25 \
82F8735ACE1B5513 VENDOR_STRING="601929Aristotle University of \
Thessaloniki" ck=110 SIGN="14E7 200C E674 09C4 8B4D 32CB 4281 \
804D 589E 3622 62ED FE4B 21B0 5C2F 11A8 0B91 A194 FF48 C8EA \
5835 C676 5BEC F697 9A05 EF20 C483 DBB2 C6E1 6442 1895"
INCREMENT idl_wavelet idl_lmgrd 8.400 1-jan-0000 25
4C023885497F6291 \
VENDOR_STRING="601929Aristotle University of Thessaloniki" \
ck=53 SIGN="1245 2A0A 5398 DEDC B7BE 8194 3103 9C91 3949 FDC3 \
8389 BED6 15AF 0551 8525 140F 1E02 BF6D 099E 3850 63D4 8D71 \
17B0 5952 492F 033B 9021 A38C D109 9236"
INCREMENT envi_flaash idl_lmgrd 5.200 1-jan-0000 5
FB1ED5E49F5333A9 \
VENDOR_STRING="601930Aristotle University of Thessaloniki" \
ck=112 SIGN="03C0 5980 E339 B0D0 0A03 697D E359 3752 1BF6 C4E0 \
36E6 D69A D07F 2909 FDC4 0477 7BAE F034 DA7D 8BFC CBE3 380A \
3024 2FEA A382 7ABC 40B8 D84A 45E7 2F3E"
INCREMENT envi_dem_extract idl_lmgrd 5.200 1-jan-0000 5 \
EC96A2DB72398303 VENDOR_STRING="601931Aristotle University of \
Thessaloniki" ck=110 SIGN="0EDA F21A 83F5 36B9 23EE 44F6 2318 \
FE47 CD48 0655 9825 E3B7 D859 D5D8 270D 118E 4F37 F1A3 8889 \
7AAD 4BA9 F54A C8AF C7FD 2F30 D56F 7F24 4D56 57C0 02CE"
FEATURESET idl_lmgrd 6DE41CF834E7CE14

##################### end of license file #######################
  1. 修改计算机Mac地址

    先在终端输入:ifconfig获得红圈部分

    然后输入sudo ifconfig enp2s0 hw ether 00:14:C2:3D:6E:AC记得将粗体部分替换成红圈内的(后面的要和license中的一致)

    可以再次输入ifconfig查看是否修改成功,若系统版本较新,ifconfig命令要改成ip命令:

1
2
3
sudo ip link set dev enp2s0 down
sudo ip link set dev enp2s0 address 00:14:C2:3D:6E:AC
sudo ip link set dev enp2s0 up
  1. 手动安装许可证

    终端输入sudo /usr/local/exelis/idl/bin/exelislicense

    在对话框中,选择第三项Install a license you have received,点Next

    然后找到并选中之前更改并保存过的license.dat,点OK

    然后一路next直到finish

    对于部分Linux桌面系统或者干脆没有安装桌面的Linux系统,图形软件库可能有缺失,那么可以这样解决

    1. 将证书文件license.dat放置到/usr/local/exelis/license/目录下

    2. 先后执行下述命令

      1
      2
      3
      cd /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
3
sudo 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
2
3
sudo ip link set dev enp2s0 down
sudo ip link set dev enp2s0 address 00:14:C2:3D:6E:AC
sudo ip link set dev enp2s0 up

再执行

1
2
cd /usr/local/exelis/idl/bin
sudo ./lmgrd

仅能使用命令行,无法使用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
2
gconftool-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

正在加载今日诗词....