公式にサポートされるバージョン
Windows | Linux | Mac | Unix | VMS | |
---|---|---|---|---|---|
IDL 9.0 | 10, 11 (64 bit) | Kernel 4.18.0以上, glibc 2.28以上 (64 bit) | 12, 13 (Mシリーズ, Intel 64 bit), XQuartz 2.8.5 | - | - |
IDL 8.9 | 10, 11 (64 bit) | Kernel 4.18.0以上, glibc 2.28以上 (64 bit) | 11.5, 12 (M1, Intel 64 bit), XQuartz 2.8.5 | - | - |
IDL 8.8.3 | 10, 11 (64 bit) | Kernel 4.18.0以上, glibc 2.28以上 (64 bit) | 10.14, 10.15, 11, 12 (Intel 64 bit), 11, 12 (M1), XQuartz 2.8.2 | - | - |
IDL 8.8.2 | 10, 11 (64 bit) | Kernel 3.10.0以上, glibc 2.17以上 (64 bit) | 10.14, 10.15, 11, 12 (Intel 64 bit), 11, 12 (M1), XQuartz 2.8.1 | - | - |
IDL 8.8.1 | 10 (64 bit) | Kernel 3.10.0以上, glibc 2.17以上 (64 bit) | 10.14, 10.15, 11 (Intel 64 bit), 11 (M1), XQuartz 2.8.1 | - | - |
IDL 8.7.3, 8.8 | 10 (64 bit) | Kernel 3.10.0以上, glibc 2.17以上 (64 bit) | 10.14, 10.15 (Intel 64 bit), XQuartz 2.7.11 | - | - |
IDL 8.7.2 | 7 SP1, 8, 10 (64 bit) | Kernel 2.6.32, glibc 2.12 (64 bit) | 10.11, 10.12 (Intel 64 bit), XQuartz 2.7.11 | - | - |
IDL 8.7, 8.7.1 | 7 SP1, 8, 10 (64 bit) | Kernel 2.6.32, glibc 2.12 (64 bit) | 10.10, 10.11 (Intel 64 bit), XQuartz 2.7.11 | - | - |
IDL 8.6, 8.6.1 | 7 SP1, 8, 10 (64 bit) | Kernel 2.6.32, glibc 2.12 (64 bit) | 10.10, 10.11 (Intel 64 bit), XQuartz 2.7.11 | ? | - |
IDL 8.5.2 | 7, 8, 10 (64 bit) | Kernel 2.6.32, glibc 2.12 (64 bit) | 10.10, 10.11 (Intel 64 bit), XQuartz 2.7.4 | - | - |
IDL 8.5, 8.5.1 | 7, 8, 10 (64 bit) | Kernel 2.6.32, glibc 2.12 (64 bit) | 10.9, 10.10 (Intel 64 bit), XQuartz 2.7.4 | Solaris 10 (SPARC 64 bit, Intel 64 bit) | - |
IDL 8.3, 8.4 | XP SP2, Vista, 7, 8 (32 bit, 64 bit) | Kernel 2.6.32, glibc 2.12 (64 bit) | 10.8, 10.9 (Intel 64 bit), XQuartz 2.7.4 | Solaris 10 (SPARC 64 bit, Intel 64 bit) | - |
IDL 8.2 | XP SP2, Vista, 7 (32 bit, 64 bit) | Kernel 2.6.9, glibc 2.3.4, GTK+ 2.4.13 (32 bit, 64 bit) | 10.6, 10.7 (Intel 64 bit) | Solaris 10 (SPARC 64 bit, Intel 64 bit) | - |
IDL 8.1 | XP SP2, Vista, 7 (32 bit, 64 bit) | Kernel 2.6, glibc 2.5, GTK+ 2.10 (32 bit, 64 bit) | 10.5.7 10.6 (Intel 32 bit, 64 bit) | Solaris 10 (SPARC 32 bit, SPARC 64 bit, Intel 64 bit) | - |
IDL 8.0 | XP SP2, Vista, 7 (32 bit, 64 bit) | Kernel 2.6.9, glibc 2.3.4, GTK+ 2.4.13 (32 bit, 64 bit) | 10.5.7 10.6 (Intel 32 bit, 64 bit) | Solaris 10 (SPARC 32 bit, SPARC 64 bit, Intel 64 bit) | - |
IDL 7.1 | XP SP2, Vista (32 bit, 64 bit) | Kernel 2.6.9, glibc 2.3.4, GTK+ 2.4.13 (32 bit, 64 bit) | 10.5.7 (PowerPC 32 bit, Intel 32 bit, Intel 64 bit) | Solaris 10 (SPARC 32 bit, SPARC 64 bit, Intel 64 bit) | - |
IDL 7.0 | XP, Vista (32 bit, 64 bit) | Kernel 2.6, glibc 2.5, GTK+ 2.10 (32 bit, 64 bit) | 10.4, 10.5.1 (PowerPC 32 bit), 10.4.8 with X11 Update version 1.1.2, 10.5.1 (Intel 32 bit, Intel 64 bit) | Solaris 10 (SPARC 32 bit, 64 bit) | - |
IDL 6.4 | 2000 (32 bit), XP, Vista (32 bit, 64 bit) | Kernel 2.4, 2.6, glibc 2.3 (32 bit, 64 bit) | 10.4 (PowerPC G4, G5 32 bit), 10.4 with X11 Update version 1.1.2 (Intel 32 bit) | AIX 5.1 (RS/6000 32 bit, 64 bit), IRIX 6.5.1 (MIPS 32 bit, 64 bit), Solaris 9, 10 (SPARC 32 bit, 64 bit) | - |
IDL 6.3 | 2000 (x86 32 bit), XP (x86 32 bit, x64 64 bit) | Kernel 2.4, 2.6, glibc 2.3 (x86 32 bit, x86_64 64 bit) | 10.3, 10.4 (PowerPC G4, G5 32 bit) | HP-UX 11.0 (PA-RISC 32 bit, 64 bit), AIX 5.1 (RS/6000 32 bit, 64 bit), IRIX 6.5.1 (MIPS 32 bit, 64 bit), Solaris 8, 9, 10 (SPARC 32 bit, 64 bit) | - |
IDL 6.2 | 2000, XP (x86 32 bit) | Fedora Core 3 (x86 32 bit), RHEL 3.x (x86 32 bit, x86_64 64 bit) | 10.3, 10.4 (PowerPC G4, G5) | HP-UX 11.0 (PA-RISC 32 bit, 64 bit), AIX 5.1 (RS/6000 32 bit, 64 bit), IRIX 6.5.1 (MIPS 32 bit, 64 bit), Solaris 8, 9 (SPARC 32 bit, 64 bit) | - |
IDL 6.1 | 2000, XP (x86 32 bit) | Red Hat 7.1, 9, RHEL 3.x (x86 32 bit) | 10.3 (PowerPC G4, G5) | HP-UX 11.0 (PA-RISC 32 bit, 64 bit), AIX 5.1 (RS/6000 32 bit, 64 bit), IRIX 6.5.1 (MIPS 32 bit, 64 bit), Solaris 8, 9 (SPARC 32 bit, 64 bit) | - |
IDL 6.0 | NT 4.0, 2000, XP (x86 32 bit) | Red Hat 7.1, 8, 9 (x86 32 bit) | 10.2.x (PowerPC G4) | Tru64 5.1 (Alpha 64 bit), HP-UX 11.0 (PA-RISC 32 bit, 64 bit), AIX 5.1 (RS/6000 32 bit, 64 bit), IRIX 6.5.1 (MIPS 32 bit, 64 bit), Solaris 8, 9 (SPARC 32 bit, 64 bit) | - |
IDL 5.6 | 98, NT 4.0, 2000, XP (x86) | Red Hat 7.1 (x86) | 10.1, 10.2 (PowerPC G4) | Tru64 5.1 (Alpha), HP-UX 11.0 (PA-RISC), AIX 5.1 (RS/6000), IRIX 6.5.1 (MIPS), Solaris 8 (SPARC 32bit, 64 bit) | - |
IDL 5.5 | 98, NT 4.0, 2000 (x86) | Red Hat 6.0, 7.1 (x86), Red Hat 6.2 (Alpha) | 8.6, 9.x (PowerPC) | Tru64 5.1 (Alpha), HP-UX 11.0 (PA-RISC), AIX 4.3 (RS/6000), IRIX 6.5.1 (MIPS), Solaris 8 (SPARC 32 bit, 64 bit, x86) | - |
IDL 5.4 | 95 OSR2, 98, NT 4.0, 2000 (x86) | Red Hat 6.0, 6.2 (x86), Red Hat 6.2 (Alpha) | 8.x, 9.x (PowerPC) | Tru64 4.0 (Alpha), HP-UX 10.20, 11.0 (PA-RISC), AIX 4.3 (RS/6000), IRIX 6.4, 6.5 (MIPS), Solaris 2.6 (SPARC 32 bit, x86), 7 (SPARC 32 bit, 64 bit, x86), 8 (SPARC 32 bit, 64 bit) | VMS 7.1 (Alpha) |
IDL 5.3 | 95, 98, NT 4.0 (x86), NT 4.0 (Alpha) | Red Hat 6.0 (x86) | 8.1 (PowerPC) | Tru64 4.0 (Alpha), HP-UX 10.20, 11.0 (PA-RISC), AIX 4.3 (RS/6000), IRIX 6.4, 6.5 (MIPS), Solaris 2.6 (SPARC, x86) | VMS 7.1 (Alpha) |
IDL 5.2 | 95, 98, NT 4.0 (x86), NT 4.0 (Alpha) | 2.0 (x86) | 8.1 (PowerPC) | Digital Unix 4.0 (Alpha), HP-UX 10.20 (PA-RISC), AIX 4.3 (RS/6000), IRIX 6.2 (MIPS), Solaris 2.6 (SPARC, x86) | VMS 7.1 (Alpha) |
Xはメジャーバージョン、Yはマイナーバージョンを表す数字(IDL 8.7.3の場合X=8、Y=7)。このパスが IDL_DIR 環境変数として設定される。
/usr/local/nv5/idl -> idlXY のように、バージョン番号を含まないパスでも参照できるようにシンボリックリンクが張られる。
IDL 8.0, 8.1 のみ階層が1つ深くなっていることに注意。
64ビット版Windowsに32ビット版IDLをインストールするとインストール先は C:\Program Files (x86)\... 以下になる。
/usr/local/ が /Applications/ となる以外はLinux/Unix と同じ。
Linuxの場合、具体的には以下のようになる。
IDL 8.6とIDL 8.9でそれぞれライセンスシステムが変わった。ライセンス設定の詳細は ライセンス管理を参照。
IDL 8.6~8.8で用いられたライセンスシステムでは、フローティングライセンスのクライアントにおいて、ユーザーが、$IDL_DIR/../license/flexera/
および $IDL_DIR/../license/flexera-sv/
に書き込みできる必要がある。IDLのインストールディレクトリをNFSなどを用いて複数のマシンで共有するなどのため、これらのディレクトリに書き込みできない場合には、適当な場所に書き込み可能なディレクトリを作成し、シンボリックリンクを張る必要がある。
Linux 版IDLではインストール先のディレクトリやファイルのパーミッションが 777, 775, 666, 664 等 (他のユーザーが書き込み可) になっているものが存在するので、書き込めないようにパーミッションを変更しておく。ただし、IDL 8.6~8.8で用いられたライセンスシステムではlicense/flexera と license/flexera-sv だけは全てのユーザーが書き込めるようになっている必要がある。
IDL 8.6 から libXp.so.6 はIDLに同梱されるようになったので、別途インストールする必要はない。
glibc 2.26 以降を採用したLinuxディストリビューション(CentOS 8、Fedora 32 など)で Graphics Function などを使用した時に libnsl.so.1: cannot open shared object file: No such file or directory
というエラーメッセージが表示される場合、次のようにしてlibnsl.so.1をインストールする。
# CentOS 8, Fedora 32
sudo dnf install libnsl.x86_64
CentOS 8 や Ubuntu 20.04 LTS などで idlde 起動時に Failed to load module "canberra-gtk-module"
というメッセージが出る場合には、以下のパッケージをインストールする。イベントサウンドを再生するためのモジュールなので、インストールしなくても実用上の問題は少ない。
# CentOS 8, Fedora 32
sudo dnf install libcanberra-gtk2.x86_64
# CentOS 7
sudo yum install libcanberra-gtk2.x86_64
# Ubuntu 20.04 LTS
sudo apt install libcanberra-gtk-module
idl/idlde起動時に /usr/local/harris/idl87/bin/bin.linux.x86_64/idl: error while loading shared libraries: libXpm.so.4: cannot open shared object file: No such file or directory
などというエラーメッセージがでて起動しない場合、次のようにして libXpm.so.4 をインストールする。
# CentOS 8, Fedora 32
sudo dnf install libXpm.x86_64
# CentOS 7
sudo yum install libXpm.x86_64
idl/idlde起動時に /usr/local/harris/idl88/bin/bin.linux.x86_64/idl: error while loading shared libraries: libtinfo.so.5: cannot open shared object file: No such file or directory
などというエラーメッセージがでて起動しない場合、次のようにして libtinfo.so.5 をインストールする。
# Ubuntu 20.04 LTS
sudo apt install libtinfo5
CentOS 7, 8, Fedora 32, Ubuntu 20.04 LTS などでGraphics Function 使用時に Warning: Cannot convert string "-adobe-helvetica-medium-r-normal-*-*-120-75-75-p-*-iso8859-1" to type FontStruct
という警告が出る場合、足りないフォントをインストールしてやればよい。ただし、グラフィックスの描画にはIDL内蔵のフォントが使われるため、インストールしなくても実用上の問題は少ない(プロパティ画面などで表示されるフォントが少々見苦しくなる場合がある)。
# CentOS 8, Fedora 32
sudo dnf install xorg-x11-fonts-ISO8859-1-75dpi.noarch
# CentOS 7
sudo yum install xorg-x11-fonts-ISO8859-1-75dpi.noarch
# Ubuntu 20.04 LTS
sudo apt install xfonts-75dpi
Linux 版IDLで、Graphics Function や Object Graphics の使用時に、IDL が Segmentation Fault でクラッシュしたり、ウィンドウが真っ白になったりなどの現象が生じることがある。これらの問題はソフトウェアレンダリングモード(IDL_GR_X_RENDERER=1
)に変更することで改善する場合がある。一方で古いIDLではソフトウェアレンダリングモードでは不具合が生じるため、デフォルト設定のハードウェアレンダリングモード(IDL_GR_X_RENDERER=0
)を使う必要がある。ソフトウェアレンダリングモードへの変更方法はこちらを参照。
Linux 版 IDL (特に 8.8.1 以降)で Graphics Function 利用時 に次のような症状が発生することがある。idl をソフトウェアレンダリングモード (IDL_GR_X_RENDERER=1
) で動かすことで改善する場合がある。
% WIDGET_EVENT: Failure to acquire window rendering context.
や % WIDGET_EVENT: Unable to acquire device context.
というエラーメッセージが表示され、Graphics Function が正常に動作しない (SSH で X11 Forwarding 利用時に発生しやすい?)Linux 版 IDL 8.7.1 以前の idlde をソフトウェアレンダリングモード(IDL_GR_X_RENDERER=1
)で動かした際、Graphics Function で次のようなエラーメッセージが表示されて利用できない場合には、xorg.conf を編集して X server で Xinerama を有効にする必要がある (非推奨)。コマンドライン版のidlではこの問題は発生しない。また、idlde をハードウェアレンダリングモード(IDL_GR_X_RENDERER=0
; デフォルト設定)で使用している場合にもこの問題は発生しない場合がある(CentOS 7.8ではハードウェアレンダリングモードに設定することで改善したが、CentOS 8.2では改善しなかった)。この問題は IDL 8.7.2 では発生しなかったので、修正された?
% IDLITWINDOW::ONEXPOSE: Failure to acquire window rendering context.
% Unable to acquire device context.
% Execution halted at: $MAIN$
Waylandを採用したLinuxディストリビューション(CentOS 8、Fedora、Ubuntu など)で Graphics Function や Object Graphics の出力結果に文字が表示されない場合には、ソフトウェアレンダリングモード(IDL_GR_X_RENDERER=1
)に変更することで改善される場合がある。IDL 8.7.1 以前でソフトウェアレンダリングモードの利用が困難な場合は、Wayland ではなく Xorg でログインしてみると改善されることがある。ログイン画面のパスワード入力時に表示される歯車アイコンをクリックし、Xorg を用いるWindow Managerを選択する。CentOS 8では “Classic (X11 display server)” または “Standard (X11 display server) on Xorg” などを、Fedora では “GNOME on Xorg” などを、Ubuntu では “Ubuntu” または “GNOME on Xorg” などを選択する。Fedora 35でこの問題は発生しなかったので、最近の環境では大丈夫?
2021年5月の libX11 の脆弱性 (CVE-2021-31535) 対応パッチを適用した結果、Graphics Function のツールバーの Property ボタンをクリックすると、IDL が Segmentation Fault で落ちるようになった。IDL 8.8.3 でこの問題は修正された (IDL-70804)。IDL が XLoadQueryFont 関数を name=NULL で call しているのがそもそもの原因。libX11 release 1.7.2 以降ではこの問題は発生しない。CentOS 7.9 や Ubuntu 20.04 LTS のように、古い libX11 を用いている場合は、XLoadQueryFont 関数をフックして name == NULL をチェックするか、新しいバージョンの libX11 をビルドしてインストールする。XLoadQueryFont 関数をフックするには、以下のプログラムを、gcc -shared -fPIC XLoadQueryFont_wrapper.c -ldl -o XLoadQueryFont_wrapper.so
としてコンパイルし、env LD_PRELOAD=./XLoadQueryFont_wrapper.so idl
としてIDLを立ち上げる。
#include <X11/Xlibint.h>
#define __USE_GNU
#include <dlfcn.h>
XFontStruct *XLoadQueryFont(
register Display *dpy,
_Xconst char *name)
{
if (name == NULL) return NULL;
XFontStruct *(*f)(Display *, _Xconst char *) = dlsym(RTLD_NEXT, "XLoadQueryFont");
return (*f)(dpy, name);
}
Xvnc (vncserver) 上でLinux版IDLを利用していて、グラフィックス出力時にXvncが頻繁にクラッシュ(Segmentation Fault)する場合には、Xvnc (vncserver) の起動時に -bs
オプションをつけるか、環境変数IDL_GR_X_RETAIN
の値を0か2に設定する(IDL開始後にDEVICE, RETAIN=2
として設定することも可能)と改善する場合がある。
2023年夏にリリースされたMesa 23.2以降を利用している環境(Fedora 39以降など)において、Linux版IDLのグラフィックス表示時にBus error (IDL 8.9, 9.0 の場合)または Segmentation fault (IDL 8.8.x の場合)が発生する。IDLDEを利用している場合には、Fatail error: IDL has encountered a fatal error and will now exit.
というエラーメッセージが表示されてワークスペースが終了してしまう。このエラーはlibidl.so
の_glapi_add_dispatch
関数において、引数の型の不一致により不正なポインタを参照したために発生している。Syslogには以下のような記録が残る。
# IDL 8.8.2
traps: idl[3595] general protection fault ip:7f3ac32d73b0 sp:7ffdf3b7c640 error:0 in libidl.so[7f3ac2a00000+daa000]
# IDL 8.8.3
traps: idl[3756] general protection fault ip:7f0fdbedd6e0 sp:7ffd2a7e7400 error:0 in libidl.so[7f0fdb600000+db0000]
# IDL 8.9
traps: idl[3643] trap stack segment ip:7f325484fd88 sp:7ffc67149600 error:0 in libidl.so[7f3254000000+cf2000]
# IDL 9.0
traps: idl[3678] trap stack segment ip:7f9f9f11dcb6 sp:7ffdae4603c0 error:0 in libidl.so[7f9f9e800000+1054000]
Mesa 23.2 で _glapi_add_dispatch
関数の引数の型と個数が変更((char **, char *)
から (char *)
)されたのが直接的な原因。応急処置として、次のようにしてlibidl.so
ではなく libglapi.so.0
の _glapi_add_dispatch
関数を使うようにすることで回避できる。
# Fedora の場合
env LD_PRELOAD=/usr/lib64/libglapi.so.0 idl
# Ubuntu の場合
env LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libglapi.so.0 idl
2023年2月にリリースされたCairo 1.17.8以降、または2022年7月にリリースされたHarfBuzz 5.0.0以降を利用している環境(Ubuntu 23.04以降, Fedora 37以降など)において、Linux版IDLDEで次のようなメッセージが表示され起動しない。
Idlde:
An error has occurred. See the log file
/home/user/.idl/idl/idlworkbench-config-idl5.0/1703627916856.log.
生成されたログファイルを見ると次のような内容になっている。
!SESSION 20xx-xx-xx xx:xx:xx.xxx -----------------------------------------------
eclipse.buildId=unknown
java.version=17.0.4.1
java.vendor=Eclipse Adoptium
BootLoader constants: OS=linux, ARCH=x86_64, WS=gtk, NL=ja_JP
Framework arguments: -outofprocess
Command-line arguments: -os linux -ws gtk -arch x86_64 -outofprocess
!ENTRY org.eclipse.osgi 4 0 xxxx-xx-xx xx:xx:xx.xxx
!MESSAGE Application error
!STACK 1
java.lang.UnsatisfiedLinkError: Could not load SWT library. Reasons:
no swt-pi4-gtk-4944r26 in java.library.path: /usr/local/harris/idl89/bin/bin.linux.x86_64/jre/lib/server:/usr/local/harris/idl89/bin/bin.linux.x86_64/jre/lib:/usr/local/harris/idl89/bin/bin.linux.x86_64/jre/../lib:/usr/local/harris/idl89/bin/bin.linux.x86_64:/usr/local/harris/idl89/bin/bin.linux.x86_64/dm/lib:/usr/local/harris/idl89/bin/bin.linux.x86_64/jre/lib/server:/usr/local/harris/idl89/bin/bin.linux.x86_64/jre/lib/server/..:/usr/local/harris/idl89/bin/bin.linux.x86_64/jre/lib/server/../native_threads:/usr/java/packages/lib:/usr/lib64:/lib64:/lib:/usr/lib
no swt-pi4-gtk in java.library.path: /usr/local/harris/idl89/bin/bin.linux.x86_64/jre/lib/server:/usr/local/harris/idl89/bin/bin.linux.x86_64/jre/lib:/usr/local/harris/idl89/bin/bin.linux.x86_64/jre/../lib:/usr/local/harris/idl89/bin/bin.linux.x86_64:/usr/local/harris/idl89/bin/bin.linux.x86_64/dm/lib:/usr/local/harris/idl89/bin/bin.linux.x86_64/jre/lib/server:/usr/local/harris/idl89/bin/bin.linux.x86_64/jre/lib/server/..:/usr/local/harris/idl89/bin/bin.linux.x86_64/jre/lib/server/../native_threads:/usr/java/packages/lib:/usr/lib64:/lib64:/lib:/usr/lib
no swt-pi4 in java.library.path: /usr/local/harris/idl89/bin/bin.linux.x86_64/jre/lib/server:/usr/local/harris/idl89/bin/bin.linux.x86_64/jre/lib:/usr/local/harris/idl89/bin/bin.linux.x86_64/jre/../lib:/usr/local/harris/idl89/bin/bin.linux.x86_64:/usr/local/harris/idl89/bin/bin.linux.x86_64/dm/lib:/usr/local/harris/idl89/bin/bin.linux.x86_64/jre/lib/server:/usr/local/harris/idl89/bin/bin.linux.x86_64/jre/lib/server/..:/usr/local/harris/idl89/bin/bin.linux.x86_64/jre/lib/server/../native_threads:/usr/java/packages/lib:/usr/lib64:/lib64:/lib:/usr/lib
Can't load library: /home/user/.swt/lib/linux/x86_64/libswt-pi4-gtk-4944r26.so
Can't load library: /home/user/.swt/lib/linux/x86_64/libswt-pi4-gtk.so
Can't load library: /home/user/.swt/lib/linux/x86_64/libswt-pi4.so
at org.eclipse.swt.internal.Library.loadLibrary(Library.java:348)
at org.eclipse.swt.internal.Library.loadLibrary(Library.java:257)
(略)
IDLに同梱されているFreeTypeのバージョンが古い(FT_Get_Transform関数がない)のが原因なので、$IDL_DIR/bin/bin.linux.x86_64/
にある libfreetype.so
, libfreetype.so.6
, libfreetype.so.6.17.4.so
(数字はIDLのバージョンによって異なる) をどこか他のディレクトリに移動する。
管理者権限がなくてファイルを移動できない場合には、次のようにしてシステムの libfreetype.so.6
をプリロードしでIDLDEを起動する。
# Fedora の場合
env LD_PRELOAD=/usr/lib64/libfreetype.so.6 idlde
# Ubuntu の場合
env LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libfreetype.so.6 idlde
この問題はIDL 9.0で解決された。
最近のLinux環境で複数のユーザーで古いライセンス(IDL 8.6~8.8で使われていたライセンス)のIDLを使用する場合で、特定のユーザーでは正常に動作するにもかかわらず、他のユーザーでは
(null): [1,7e4,7,0[74100008,1,1202014b]] Internal. : Internal. (code : 1947205640) (cll_internal.cpp : 495) (code : 1947205640) (CLLFloatingLicenseThread.cpp : 468)
CLLFloatingLicenseInitialize failed to start the license thread.
Unable to obtain an IDL license.
というエラーが出てIDLを起動できない場合、カーネルパラメータprotected_regular
の値を0にする必要がある。
sudo sysctl -w fs.protected_regular=0
>
再起動後も設定を保持するには/etc/sysctl.conf
にfs.protected_regular=0
を加える。
IDL 8.7.3 を macOS 10.15 (Catalina) にインストールする場合、XQuartz のインストール/再インストールとJava 6の(無理矢理)インストールが必要になる場合がある。詳細はIDL 8.7.3およびENVI 5.5.3をMacOS10.15 (Catalina)で使用する際の注意点を参照。コマンドラインのみ使用し、ワークベンチ(idlde)は使用しない場合には、Java 6は不要。
IDL 8.8 では改善された。
この節は過去のバージョンに関する古い内容です
IDL を実行するには libXp.so.6, libXpm.so.4 が必要だが、標準では入っていない場合がある。いくつかの環境で検証した結果:
不足しているライブラリをインストールする場合、CentOSでは次のようにしてインストールする。
sudo yum install libXp libXpm
Ubuntu 16.04 LTS以降 では、Ubuntu Archive からlibxp6_1.0.1-2ubuntu0.12.04.2_amd64.debをダウンロードしてインストールする。Ubuntu 20.04 LTSでは、multiarch-support_2.27-3ubuntu1_amd64.debもインストールする必要がある。
wget http://jp.archive.ubuntu.com/ubuntu/pool/main/libx/libxp/libxp6_1.0.1-2ubuntu0.12.04.2_amd64.deb
dpkg -i libxp6_1.0.1-2ubuntu0.12.04.2_amd64.deb
その他、細かいエラー・警告メッセージの対処については、IDL 8.6以降の項目を参照。
IDLインストール時に /usr/local/bin/ にシンボリックリンクを張らなかった場合には、次のようにしてシンボリックリンクを張ることができる。
IDL 8.6以降では、harrisディレクトリでcreate_symlinksスクリプトを実行する。
cd /usr/local/harris
>
idl87/bin/create_symlinks
インストール時に設定しなかった場合には、license.dat を $IDL_DIR/../license/ に設置する。詳細は ライセンス管理を参照。
この節は過去のバージョンに関する古い内容です
IDL 8.2 を CentOS 5.9 (x86_64) と CentOS 6.4 (x86_64) にインストールする場合のメモ。CentOS 5 は “Desktop - Gnome Desktop”、CentOS 6 は “Desktop” をインストールした。
IDL 8.2 を CentOS 5.9 (x86_64) にインストールする場合、インストーラの実行には特別なライブラリは必要ない。ただし、License Wizard の実行には libXp.so.6 (x86_64) が必要。
64-bit 版IDL (idl
または idlde
) を使うためには libXp.so.6 (x86_64) が必要。
yum install libXp.x86_64
32-bit 版IDL (idl -32
または idlde -32
) を使うためには libXpm.so.4 (i386)、libXmu.so.6 (i386) が必要。
yum install libXpm.i386 libXmu.i386
IDL 8.2 を CentOS 6.4 (x86_64) にインストールする場合、インストーラの実行には特別なライブラリは必要ない。ただし、License Wizard の実行には libXp.so.6 (x86_64) が必要。
64-bit 版IDL (idl
または idlde
) を使うためには libXp.so.6 (x86_64)、libXpm.so.4 (x86_64) が必要。
yum install libXp.x86_64 libXpm.x86_64
CentOS 6.4 (x86_64) には、デフォルトでは 32-bit 版の各種ライブラリが入っていない。32-bit 版IDL (idl -32
または idlde -32
) を使うためには、glibc, c++, X11, gtk2 関連のライブラリが必要。ただし gtk2 関連のライブラリについては 32-bit 版 IDL Workspace 使用時のみ必要。
yum install libstdc++.i686 libXpm.i686 libXmu.i686 gtk2.i686 PackageKit-gtk-module.i686 libcanberra-gtk2.i686 gtk2-engines.i686
32-bit 版 IDL Workspace (idlde -32
) で日本語入力を行う場合にはさらにモジュールのインストールが必要である。
yum install ibus-libs.i686 ibus-gtk.i686 gtk2-immodule-xim.i686
64bit版IDL の場合は SELinux が enforced でも特に問題ないはず。
SELinux が enforced になっているCentOS 5.9環境で 32bit版IDL 8.2を動かそうとすると次のようなエラーがでる。
/usr/local/exelis/idl82/bin/bin.linux.x86/idl: error while loading shared libraries: /usr/local/exelis/idl82/bin/bin.linux.x86/libidl.so.8.2: cannot restore segment prot after reloc: Permission denied
このようなときは chcon コマンドでセキュリティコンテキストを適切に設定すればよい。
chcon -c -t textrel_shlib_t /usr/local/exelis/idl82/bin/bin.linux.x86/libidl.so.8_2
インストーラで/usr/local/binにシンボリックリンクを張らなかった場合(例えばインストールディレクトリをNFSで共有している場合など)には、次のようにしてシンボリックリンクを張ることができる。
itt(IDL 8.1以前)またはexelis(IDL 8.2)ディレクトリでinstallスクリプトを実行する。installスクリプトが置かれている階層は、IDLのバージョンにより異なる。NOT_INTERACTIVE をつけない場合には、確認メッセージが表示される。
# IDL 7.1の場合
cd /usr/local/itt
idl71/bin/install NOT_INTERACTIVE
# IDL 8.1の場合
cd /usr/local/itt
idl/idl81/bin/install NOT_INTERACTIVE
# IDL 8.2の場合
cd /usr/local/exelis
idl82/bin/install NOT_INTERACTIVE