材料准备:

CentOS 7 x86_64

IDL 8.2,下载自 ftp://ftp.lowell.edu/incoming/temp/old/IDL_Clients/v8.2/idl82sp2linux.x86_64.tar.gz

参考资料:

[1] centos6.9安装idl8.2,亲测成功!!!

[2] ubuntu下IDL8安装及破解步骤(已自测通过)

[3] centos 7 物理机添加虚拟网卡

[4] LINUX IDL8.4安装 那些坑!

 

安装步骤:

1、下载IDL

mkdir ~/Downloads/IDL

cd ~/Downloads/IDL

wget ftp://ftp.lowell.edu/incoming/temp/old/IDL_Clients/v8.2/idl82sp2linux.x86_64.tar.gz

 

2、找到相应的license破解文件

2.0 license文件

在网上找到一个破解文件,内容如下,并将其保存为 license.dat 文件。

############ license file comments, do not delete ###############
# License Number(s):705016
SERVER xxx bc305bd94286 1700
USE_SERVER
DAEMON idl_lmgrd
INCREMENT idl idl_lmgrd 8.200 1-jan-0000 12 B5ED924F5F29E2AF
VENDOR_STRING=705016TOHOKU ck=186 SIGN="0B28 D32E 6E90 74D9
A0BB F2ED AC90 F39D 318D F197 26FB B996 C8C4 B225 76C8 009A
52FD AB87 3FE1 06B9 1AA9 FD57 A46E 94A8 3764 9F97 D1F8 2653
D36D 7018"
INCREMENT idl_bridge_assist idl_lmgrd 8.200 1-jan-0000 2
F2004C85D332BFF5 VENDOR_STRING=705016TOHOKU ck=105 SIGN="08BA
CD27 8E25 5309 ED01 983C 59C6 183A EE24 A464 706F F499 3607
416A 0CE1 16D8 425F CC40 3C90 8BAB 9E1E ECFB D9C5 C9E4 3517
1D7E 1B8F 296C 3DC3 1AEB"
INCREMENT idl_video_write idl_lmgrd 8.200 1-jan-0000 2
F0A17234C4CCC039 VENDOR_STRING=705016TOHOKU ck=92 SIGN="08A2
A99F F7DB 7C58 9AF8 B52F D70F 3B6E F686 DE0F FDB7 CE79 BD82
3494 500F 0A12 5C97 8375 0AE0 E848 0B20 69CA AFA2 DE8D AC10
8173 DBFC B93E 574A DBB4"
INCREMENT idl_wavelet idl_lmgrd 8.200 1-jan-0000 2 20B1118017C42245
VENDOR_STRING=705016TOHOKU ck=41 SIGN="0DBC 606C 1E2D 3FD8
19FD 61DE F909 3BCD E7E4 5314 30BA 60CC 015D 0BD0 100D 1E33
CC5A 96F0 64C0 9B08 D033 E075 1DBA DE77 AE90 08A8 8AB7 C4C3
0037 C672"
FEATURESET idl_lmgrd D093522208F1C61A
##################### end of license file #######################

 

破解文件的 SERVER xxx bc305bd94286 1700 一行,提供了许可文件适用的用户名和Mac地址。

其中,红色字段(xxx)是主机名,需要将它替换为本机的主机名,它是bash命令hostname的返回值。

蓝色字段(bc305bd94286)是MAC地址,需要在本机上生成一个与它一致的MAC地址,可以采用参考资料[3]中的方法生成虚拟MAC地址,具体操作如下。

2.1 获取xxx

2.2 修改本机的MAC地址 (摘自资料[3]

新建一个虚拟网格eth1,要不然有的网络环境可能会导致您的计算机出现无法上网的情况,这需要安装tunctl工具。

2.2.1 确认内核是否支持tun/tap

确认内核是否有tun模块

[...] $ modinfo tun

filename:       /lib/modules/3.10.0-957.el7.x86_64/kernel/drivers/net/tun.ko.xz
alias:          devname:net/tun
alias:          char-major-10-200
license:        GPL
author:         (C) 1999-2004 Max Krasnyansky <maxk@qualcomm.com>
description:    Universal TUN/TAP device driver
retpoline:      Y
rhelversion:    7.6
srcversion:     A215175F959FA6FE8B76ECD
depends:        
intree:         Y
vermagic:       3.10.0-957.el7.x86_64 SMP mod_unload modversions
signer:         CentOS Linux kernel signing key
sig_key:        B7:0D:CF:0D:F2:D9:B7:F2:91:59:24:82:49:FD:6F:E8:7B:78:14:27
sig_hashalgo:   sha256

加载内核模块

[...] $ modprobe tun

[...] $ lsmod | grep tun

tun                    27141  2

执行以上命令后,出现如上输出,说明模块加载成功。

 

2.2.2 创建和配置虚拟网卡

确认是否有tunctl命令,如果没有则安装它。

可直接装rpm包(参考的https://pkgs.org/centos-7/nux-misc-x86_64/tunctl-1.5-12.el7.nux.x86_64.rpm.html

下载rpm源码,解压,并复制到相应的IDL安装目录内:

[xxx@del idl]$ wget http://li.nux.ro/download/nux/misc/el7/x86_64/tunctl-1.5-12.el7.nux.x86_64.rpm
[xxx@del idl]$ sudo rpm -ivh ./tunctl-1.5-12.el7.nux.x86_64.rpm

 

注意,虚拟网卡的MAC地址,要与步骤2.0中的license文件中的蓝色字段(bc305bd94286)保持一致,即:

[xxx@del idl]$ tunctl -t eth1 -u root

[xxx@del idl]$ sudo ifconfig eth1 hw ether bc:30:5b:d9:42:86  

[xxx@del idl]$ ifconfig -a #查看你的虚拟网卡eth1的MAC地址是否已修改成功。
...
eth1: flags=4098<BROADCAST,MULTICAST>  mtu 1500
        ether bc:30:5b:d9:42:86  txqueuelen 1000  (Ethernet)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
...

(注:下载的license文件,有可能不能使用,这就需要在安装完IDL文件,重复2.0这一步,具体可参考后文中 Bug.2 一小节的内容)

至此,IDL安装前的准备工作,就做好了。接下来,开始IDL的安装过程。

 

3. 安装IDL

mkdir /opt/idl

cp ./idl82sp2linux.x86_64.tar.gz /opt/idl

sudo tar -xopf idl82sp2linux.x86_64.tar.gz

sudo ./install.sh 

安装过程,根据提示,有一个是要输入安装的目标路径,其余皆是yes/no的选项,一般yes即可。

 

在弹出的license对话框中,首先选择第三项Install a license you have received,点Next

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

然后同时选择Install license manager以及Start license manager,点Next(这一步默认两者都是选种的状态,小方框凹进去,所以到这一步直接点Next)

再点击Finish,结束​

4. 开机自动执行

以上操作,在重启或者断网之后,都会失效,需要重新进行license的相关操作才行。

将虚拟网卡的设置写入开机脚本,这样重启之后就不用重新进行license的相关操作就能使用idl了。

[xxx@del bin]$ sudo vi /etc/rc.local

在 /etc/rc.local 中,将以下代码加到 exit 0 (可能没有 "exit 0" 这一句)的前面,然后保存:

#create a vitual network card for activation of idl8.2
ifconfig eth1 down
tunctl
-t eth1 -u root ifconfig eth1 hw ether bc:30:5b:d9:42:86 ifconfig eth1 up

要让这个文件开机自动执行,还需要增加可执行权限:  chmod +x /etc/rc.d/rc.local 

 

同时,系统的 license 文件变量,也需要在~/.bashrc文件中同步更新,将idl的license文件一并添加到系统变量($LM_LICENSE_FILE)里:

[xxx@del bin]$ echo $LM_LICENSE_FILE  # 查询已有的 license 文件列表
/opt/pgi/license.dat
[xxx@del bin]$ vi ~/.bashrc           # 在文件内的 LM_LICENSE_FILE 字段,增加 IDL 的 license 文件(红色字段,就是新增的IDL的license文件)
...
export LM_LICENSE_FILE=$PGI/license.dat:/opt/idl/license/license.dat
... [xxx@del bin]$
echo $LM_LICENSE_FILE # 再次查询 license 文件列表,看是否更新成功 /opt/pgi/license.dat:/opt/idl/license/license.dat

之后,执行   source ~/.bashrc  ,使 ~/.bashrc 中所作的修改立即生效。

 

Bug:可能遇到的各种问题

Bug.1:找不到libXp.so.6动态链接库

 在终端下输入 idl 并回车,很可能会出现如下错误信息:

… /opt/idl/idl82/bin/bin.linux.x86_64/: libXp.so.6: cannot open shared object file: No such file or directory

 该信息是因为没有安装64位的libXp.so.6动态链接库。

    解决办法是,到这里下载libXp-1.0.3-4.fc30.x86_64.rpm文件,然后双击打开,把里面的libXp.so.6和libXp.so.6.2.0拷贝出来,直接放到IDL的安装目录/opt/idl/idl82/bin/下面,命令如下:

wget https://rpmfind.net/linux/fedora/linux/releases/30/Everything/x86_64/os/Packages/l/libXp-1.0.3-4.fc30.x86_64.rpm

rpm2cpio libXp-1.0.3-4.fc30.x86_64.rpm | cpio -idv  # 解压rpm文件

sudo cp /mnt/Disk2T/L/software/LINUX/libXp/usr/lib64/libXp.so.6 /opt/idl/idl82/bin/bin.linux.x86_64/

sudo cp /mnt/Disk2T/L/software/LINUX/libXp/usr/lib64/libXp.so.6.2.0 /opt/idl/idl82/bin/bin.linux.x86_64/

 再次运行 idl,则不会出现上述错误信息。


Bug.2:license文件没有生效

如果选择的license文件不可用,则打开 idl 的时候,会出现如下信息:

[xxx@del bin]$ idl
IDL Version 8.2.2 (linux x86_64 m64). (c) 2012, Exelis Visual Information Solutions, Inc.
% LICENSE MANAGER: No such feature exists.
  Feature:       idl
  License path:  /opt/pgi/license.dat:/opt/idl/license/license.dat:/opt/idl/license/*.lic:
  FLEXnet Licensing error:-5,357
  For further information, refer to the FLEXnet Licensing documentation,
  available at "www.acresso.com"..
  License file: /opt/pgi/license.dat:/opt/idl/license/license.dat:/opt/idl/license/*.lic
% Entering timed demo mode. Each session is limited to 7 minutes of operation. Printing and file saving
   are disabled.
  
  To learn more about our license options for this product, please contact your account manager or
   Exelis Visual Information Solutions, Inc. at info@exelisvis.com.

IDL> exit

出现这个问题的原因是,license文件已经失效,需要重新寻找新的可用的license文件。

解决办法是,继续搜索可用的license文件,重复步骤 2.0,然后在 idl 的安装目录下,使用 exelislicense 程序手动安装license。​

[xxx@del bin]$ vi license.dat

[xxx@del bin]$ cd /opt/idl/idl82/bin
[xxx@del bin]$ sudo ./exelislicense IDL Version 8.2.2 (linux x86_64 m64). (c) 2012, Exelis Visual Information Solutions, Inc. % Embedded IDL: ITTVIS IDL floating licenses, 99999-1. % Embedded IDL: ITTVIS IDL floating licenses, 99999-1. % Loaded DLM: XML. % Loaded DLM: URL.
[xxx@del bin]$ idl IDL Version 8.2.2 (linux x86_64 m64). (c) 2012, Exelis Visual Information Solutions, Inc. Installation number: 705016. Licensed for use by: TOHOKU IDL> exit

执行 exelislicense 程序,会弹出对话框,操作步骤如下:

(1)选择第三项Install a license you have received (小方框凹下表示选中),点Next;

(2)找到并选中用于激活的license.dat,点OK;

(3)同时选择Install license manager以及Start license manager,点Next(这一步,两者都默认已选中,所以到这一步直接点Next);

(4)点击Finish,结束​。 

 

Bug.3: TCP 端口1700,被占用

在执行 /opt/idl/idl82/bin/lmgrd 程序时,有时会遇到 “The TCP port number in the license, 1700, is already in use.”的报错。

解决办法:

(1)查看端口1700的进程 ,终端输入:  lsof -i:1700

(2)杀死进程: kill pid

(3)查看包含lmgrd的进程: ps -aux|grep lmgrd

posted on 2019-09-25 09:49  Certainly  阅读(2194)  评论(0编辑  收藏  举报