IDLのインストール

動作環境

公式にサポートされるバージョン

詳細な表を表示
WindowsLinuxMacUnixVMS
IDL 9.010, 11 (64 bit)Kernel 4.18.0以上, glibc 2.28以上 (64 bit)12, 13 (Mシリーズ, Intel 64 bit), XQuartz 2.8.5--
IDL 8.910, 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.310, 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.210, 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.110 (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.810 (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.27 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.17 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.17 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.27, 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.17, 8, 10 (64 bit)Kernel 2.6.32, glibc 2.12 (64 bit)10.9, 10.10 (Intel 64 bit), XQuartz 2.7.4Solaris 10 (SPARC 64 bit, Intel 64 bit)-
IDL 8.3, 8.4XP 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.4Solaris 10 (SPARC 64 bit, Intel 64 bit)-
IDL 8.2XP 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.1XP 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.0XP 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.1XP 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.0XP, 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.42000 (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.32000 (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.22000, 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.12000, 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.0NT 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.698, 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.598, 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.495 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.395, 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.295, 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)

デフォルトのインストール先 (IDL_DIR環境変数)

Xはメジャーバージョン、Yはマイナーバージョンを表す数字(IDL 8.7.3の場合X=8、Y=7)。このパスが IDL_DIR 環境変数として設定される。

Linux, Unix (unix installer / command line installer の Macを含む)

/usr/local/nv5/idl -> idlXY のように、バージョン番号を含まないパスでも参照できるようにシンボリックリンクが張られる。

IDL 8.0, 8.1 のみ階層が1つ深くなっていることに注意。

Windows

64ビット版Windowsに32ビット版IDLをインストールするとインストール先は C:\Program Files (x86)\... 以下になる。

Mac (native installer)

/usr/local/ が /Applications/ となる以外はLinux/Unix と同じ。

ライセンスファイルのデフォルトの場所

Linuxの場合、具体的には以下のようになる。

インストール (IDL 8.6以降@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をインストールする。

  1. # CentOS 8, Fedora 32
  2. sudo dnf install libnsl.x86_64

CentOS 8 や Ubuntu 20.04 LTS などで idlde 起動時に Failed to load module "canberra-gtk-module" というメッセージが出る場合には、以下のパッケージをインストールする。イベントサウンドを再生するためのモジュールなので、インストールしなくても実用上の問題は少ない。

  1. # CentOS 8, Fedora 32
  2. sudo dnf install libcanberra-gtk2.x86_64
  3. # CentOS 7
  4. sudo yum install libcanberra-gtk2.x86_64
  5. # Ubuntu 20.04 LTS
  6. 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 をインストールする。

  1. # CentOS 8, Fedora 32
  2. sudo dnf install libXpm.x86_64
  3. # CentOS 7
  4. 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 をインストールする。

  1. # Ubuntu 20.04 LTS
  2. 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内蔵のフォントが使われるため、インストールしなくても実用上の問題は少ない(プロパティ画面などで表示されるフォントが少々見苦しくなる場合がある)。

  1. # CentOS 8, Fedora 32
  2. sudo dnf install xorg-x11-fonts-ISO8859-1-75dpi.noarch
  3. # CentOS 7
  4. sudo yum install xorg-x11-fonts-ISO8859-1-75dpi.noarch
  5. # Ubuntu 20.04 LTS
  6. 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でGraphics Function利用時にSegmentation Fault等の問題

Linux 版 IDL (特に 8.8.1 以降)で Graphics Function 利用時 に次のような症状が発生することがある。idl をソフトウェアレンダリングモード (IDL_GR_X_RENDERER=1) で動かすことで改善する場合がある。

Linux 版 IDLDE 8.7.1以前でGraphics Functionが動作しない

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 では発生しなかったので、修正された?

  1. % IDLITWINDOW::ONEXPOSE: Failure to acquire window rendering context.
  2. % Unable to acquire device context.
  3. % Execution halted at: $MAIN$

Wayland環境での問題

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でこの問題は発生しなかったので、最近の環境では大丈夫?

libX11 1.7.1以前での問題

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を立ち上げる。

  1. #include <X11/Xlibint.h>
  2. #define __USE_GNU
  3. #include <dlfcn.h>
  4. XFontStruct *XLoadQueryFont(
  5. register Display *dpy,
  6. _Xconst char *name)
  7. {
  8. if (name == NULL) return NULL;
  9. XFontStruct *(*f)(Display *, _Xconst char *) = dlsym(RTLD_NEXT, "XLoadQueryFont");
  10. return (*f)(dpy, name);
  11. }

Xvnc利用時の問題

Xvnc (vncserver) 上でLinux版IDLを利用していて、グラフィックス出力時にXvncが頻繁にクラッシュ(Segmentation Fault)する場合には、Xvnc (vncserver) の起動時に -bs オプションをつけるか、環境変数IDL_GR_X_RETAINの値を0か2に設定する(IDL開始後にDEVICE, RETAIN=2 として設定することも可能)と改善する場合がある。

Mesa 23.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には以下のような記録が残る。

  1. # IDL 8.8.2
  2. traps: idl[3595] general protection fault ip:7f3ac32d73b0 sp:7ffdf3b7c640 error:0 in libidl.so[7f3ac2a00000+daa000]
  3. # IDL 8.8.3
  4. traps: idl[3756] general protection fault ip:7f0fdbedd6e0 sp:7ffd2a7e7400 error:0 in libidl.so[7f0fdb600000+db0000]
  5. # IDL 8.9
  6. traps: idl[3643] trap stack segment ip:7f325484fd88 sp:7ffc67149600 error:0 in libidl.so[7f3254000000+cf2000]
  7. # IDL 9.0
  8. 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関数を使うようにすることで回避できる。

  1. # Fedora の場合
  2. env LD_PRELOAD=/usr/lib64/libglapi.so.0 idl
  3. # Ubuntu の場合
  4. env LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libglapi.so.0 idl

Cairo 1.17.8, HarfBuzz 5.0.0以降を利用時の問題

2023年2月にリリースされたCairo 1.17.8以降、または2022年7月にリリースされたHarfBuzz 5.0.0以降を利用している環境(Ubuntu 23.04以降, Fedora 37以降など)において、Linux版IDLDEで次のようなメッセージが表示され起動しない。

  1. Idlde:
  2. An error has occurred. See the log file
  3. /home/user/.idl/idl/idlworkbench-config-idl5.0/1703627916856.log.

生成されたログファイルを見ると次のような内容になっている。

表示する
  1. !SESSION 20xx-xx-xx xx:xx:xx.xxx -----------------------------------------------
  2. eclipse.buildId=unknown
  3. java.version=17.0.4.1
  4. java.vendor=Eclipse Adoptium
  5. BootLoader constants: OS=linux, ARCH=x86_64, WS=gtk, NL=ja_JP
  6. Framework arguments: -outofprocess
  7. Command-line arguments: -os linux -ws gtk -arch x86_64 -outofprocess
  8. !ENTRY org.eclipse.osgi 4 0 xxxx-xx-xx xx:xx:xx.xxx
  9. !MESSAGE Application error
  10. !STACK 1
  11. java.lang.UnsatisfiedLinkError: Could not load SWT library. Reasons:
  12. 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
  13. 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
  14. 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
  15. Can't load library: /home/user/.swt/lib/linux/x86_64/libswt-pi4-gtk-4944r26.so
  16. Can't load library: /home/user/.swt/lib/linux/x86_64/libswt-pi4-gtk.so
  17. Can't load library: /home/user/.swt/lib/linux/x86_64/libswt-pi4.so
  18. at org.eclipse.swt.internal.Library.loadLibrary(Library.java:348)
  19. at org.eclipse.swt.internal.Library.loadLibrary(Library.java:257)
  20. (略)

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を起動する。

  1. # Fedora の場合
  2. env LD_PRELOAD=/usr/lib64/libfreetype.so.6 idlde
  3. # Ubuntu の場合
  4. env LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libfreetype.so.6 idlde

この問題はIDL 9.0で解決された。

複数のユーザーで利用する時の問題

最近のLinux環境で複数のユーザーで古いライセンス(IDL 8.6~8.8で使われていたライセンス)のIDLを使用する場合で、特定のユーザーでは正常に動作するにもかかわらず、他のユーザーでは

  1. (null): [1,7e4,7,0[74100008,1,1202014b]] Internal. : Internal. (code : 1947205640) (cll_internal.cpp : 495) (code : 1947205640) (CLLFloatingLicenseThread.cpp : 468)
  2. CLLFloatingLicenseInitialize failed to start the license thread.
  3. Unable to obtain an IDL license.

というエラーが出てIDLを起動できない場合、カーネルパラメータprotected_regularの値を0にする必要がある。

  1. sudo sysctl -w fs.protected_regular=0

再起動後も設定を保持するには/etc/sysctl.conffs.protected_regular=0を加える。

インストール (IDL 8.7.3@Mac)

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 8.3~8.5@Linux)

この節は過去のバージョンに関する古い内容です

IDL を実行するには libXp.so.6, libXpm.so.4 が必要だが、標準では入っていない場合がある。いくつかの環境で検証した結果:

不足しているライブラリをインストールする場合、CentOSでは次のようにしてインストールする。

  1. 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もインストールする必要がある。

  1. wget http://jp.archive.ubuntu.com/ubuntu/pool/main/libx/libxp/libxp6_1.0.1-2ubuntu0.12.04.2_amd64.deb
  2. dpkg -i libxp6_1.0.1-2ubuntu0.12.04.2_amd64.deb

その他、細かいエラー・警告メッセージの対処については、IDL 8.6以降の項目を参照。

/usr/local/bin にシンボリックリンクを張る

IDLインストール時に /usr/local/bin/ にシンボリックリンクを張らなかった場合には、次のようにしてシンボリックリンクを張ることができる。

IDL 8.6以降では、harrisディレクトリでcreate_symlinksスクリプトを実行する。

  1. cd /usr/local/harris
  2. idl87/bin/create_symlinks

ライセンスの設定

インストール時に設定しなかった場合には、license.dat を $IDL_DIR/../license/ に設置する。詳細は ライセンス管理を参照。

インストール (IDL 8.2@linux)

この節は過去のバージョンに関する古い内容です

IDL 8.2 を CentOS 5.9 (x86_64) と CentOS 6.4 (x86_64) にインストールする場合のメモ。CentOS 5 は “Desktop - Gnome Desktop”、CentOS 6 は “Desktop” をインストールした。

必要なライブラリ (CentOS 5.9 x86_64)

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) が必要。

  1. yum install libXp.x86_64

32-bit 版IDL (idl -32 または idlde -32) を使うためには libXpm.so.4 (i386)、libXmu.so.6 (i386) が必要。

  1. yum install libXpm.i386 libXmu.i386

必要なライブラリ (CentOS 6.4 x86_64)

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) が必要。

  1. 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 使用時のみ必要。

  1. 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) で日本語入力を行う場合にはさらにモジュールのインストールが必要である。

  1. yum install ibus-libs.i686 ibus-gtk.i686 gtk2-immodule-xim.i686

SELinux が有効になっている環境

64bit版IDL の場合は SELinux が enforced でも特に問題ないはず。

SELinux が enforced になっているCentOS 5.9環境で 32bit版IDL 8.2を動かそうとすると次のようなエラーがでる。

  1. /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 コマンドでセキュリティコンテキストを適切に設定すればよい。

  1. chcon -c -t textrel_shlib_t /usr/local/exelis/idl82/bin/bin.linux.x86/libidl.so.8_2

/usr/local/bin にシンボリックリンクを張る

インストーラで/usr/local/binにシンボリックリンクを張らなかった場合(例えばインストールディレクトリをNFSで共有している場合など)には、次のようにしてシンボリックリンクを張ることができる。

itt(IDL 8.1以前)またはexelis(IDL 8.2)ディレクトリでinstallスクリプトを実行する。installスクリプトが置かれている階層は、IDLのバージョンにより異なる。NOT_INTERACTIVE をつけない場合には、確認メッセージが表示される。

  1. # IDL 7.1の場合
  2. cd /usr/local/itt
  3. idl71/bin/install NOT_INTERACTIVE
  4. # IDL 8.1の場合
  5. cd /usr/local/itt
  6. idl/idl81/bin/install NOT_INTERACTIVE
  7. # IDL 8.2の場合
  8. cd /usr/local/exelis
  9. idl82/bin/install NOT_INTERACTIVE
西田圭佑 (NISHIDA Keisuke)
nishida at kwasan.kyoto-u.ac.jp