2013年6月21日金曜日

lmutil: Command not found.

知る人ぞ知るlmutilとかlmstatというコマンドに関して・・・



CentOS6なホストがいくつかあるのですが、ホストによって、動いたり動かなかったり。



% /なんとか/かんとか/lmutil
/なんとか/かんとか/lmutil: Command not found.



動かない・・・なぜ?



% file lmutil
lmutil: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.9, stripped



動くホストで、ldd lmutilして確認してみると



/lib64/ld-lsb-x86-64.so.3 => /lib64/ld-linux-x86-64.so.2 (0x00007faf9bf9e000)



という、「ldなんとか.so」のところで、違いがあるようです。



うごかないホストでは
% ls -l /lib64/ld*
-rwxr-xr-x. 1 root root 154464 Jan 31 20:30 /lib64/ld-2.12.so*
lrwxrwxrwx. 1 root root     10 Feb  6 18:03 /lib64/ld-linux-x86-64.so.2 -> ld-2.



うごくホストでは
% ls -l /lib64/ld*
-rwxr-xr-x 1 root root 154464 Feb 21 22:12 /lib64/ld-2.12.so*
lrwxrwxrwx 1 root root     10 May 30 16:51 /lib64/ld-linux-x86-64.so.2 -> ld-2.12.so*
lrwxrwxrwx 1 root root     20 May 30 16:58 /lib64/ld-lsb-x86-64.so -> ld-linux-x86-64.so.2*
lrwxrwxrwx 1 root root     20 May 30 16:53 /lib64/ld-lsb-x86-64.so.3 -> ld-linux-x86-64.so.2*


straceしてみたり



% strace lmutil
execve("lmutil", ["/なんとか/かんとか"...], [/* 47 vars */]) = -1 ENOENT (No such file or directory)
dup(2)                                  = 3
fcntl(3, F_GETFL)                       = 0x8002 (flags O_RDWR|O_LARGEFILE)
fstat(3, {st_mode=S_IFCHR|0620, st_rdev=makedev(136, 6), ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7ffaafc85000
lseek(3, 0, SEEK_CUR)                   = -1 ESPIPE (Illegal seek)
write(3, "strace: exec: No such file or di"..., 40strace: exec: No such file or directory
) = 40
close(3)                                = 0
munmap(0x7ffaafc85000, 4096)            = 0
exit_group(1)                           = ?



なぜexecveで「No such file or directory」なのかよくわからなかったり。



というわけでネット検索。



http://stackoverflow.com/questions/5234088/execve-file-not-found-when-stracing-the-very-same-file



ふむ。



ld-lsb-x86-64.soでネット検索したりしてたら、わかりました。



http://software.intel.com/en-us/articles/flexlm-license-manager-20-may-fail-when-lsb-3-is-not-met



Linuxには「LSB」とかいうものがあるそうです。



http://ja.wikipedia.org/wiki/Linux_Standard_Base



動くホストでは、「redhat-lsbなんとか」というRPMパッケージがインストールされていました。



% rpm -q -a | grep redhat-lsb
redhat-lsb-compat-4.0-7.el6.centos.x86_64
redhat-lsb-printing-4.0-7.el6.centos.x86_64
redhat-lsb-4.0-7.el6.centos.x86_64
redhat-lsb-core-4.0-7.el6.centos.x86_64
redhat-lsb-graphics-4.0-7.el6.centos.x86_64



% lsb_release
LSB Version:    :base-4.0-amd64:base-4.0-noarch:core-4.0-amd64:core-4.0-noarch:graphics-4.0-amd64:graphics-4.0-noarch:printing-4.0-amd64:printing-4.0-noarch



一方、動かないホストでは、redhat-lsbは1つもインストールされていませんでした。



というわけで、yum install redhat-lsb して解決。



えらくたくさんインストールされましたが



Dependencies Resolved

================================================================================
Package                     Arch      Version                 Repository  Size
================================================================================
Installing:
redhat-lsb                  x86_64    4.0-7.el6.centos        base        11 k
Installing for dependencies:
at                          x86_64    3.1.10-43.el6_2.1       base        60 k
bc                          x86_64    1.06.95-1.el6           base       110 k
cdparanoia-libs             x86_64    10.2-5.1.el6            base        47 k
cvs                         x86_64    1.11.23-15.el6          base       711 k
ed                          x86_64    1.1-3.3.el6             base        72 k
foomatic                    x86_64    4.0.4-1.el6_1.1         base       251 k
foomatic-db                 noarch    4.0-7.20091126.el6      base       980 k
foomatic-db-filesystem      noarch    4.0-7.20091126.el6      base       4.4 k
foomatic-db-ppds            noarch    4.0-7.20091126.el6      base        19 M
gettext                     x86_64    0.17-16.el6             base       1.8 M
gstreamer-plugins-base      x86_64    0.10.29-2.el6           base       940 k
libmng                      x86_64    1.0.10-4.1.el6          base       165 k
liboil                      x86_64    0.3.16-4.1.el6          base       121 k
libtheora                   x86_64    1:1.1.0-2.el6           base       129 k
libvisual                   x86_64    0.4.0-9.1.el6           base       135 k
pax                         x86_64    3.4-10.1.el6            base        69 k
perl-CGI                    x86_64    3.51-131.el6_4          updates    208 k
perl-ExtUtils-MakeMaker     x86_64    6.55-131.el6_4          updates    292 k
perl-ExtUtils-ParseXS       x86_64    1:2.2003.0-131.el6_4    updates     44 k
perl-Test-Harness           x86_64    3.17-131.el6_4          updates    230 k
perl-Test-Simple            x86_64    0.92-131.el6_4          updates    111 k
perl-devel                  x86_64    4:5.10.1-131.el6_4      updates    421 k
phonon-backend-gstreamer    x86_64    1:4.6.2-26.el6_4        updates    126 k
qt                          x86_64    1:4.6.2-26.el6_4        updates    3.9 M
qt-sqlite                   x86_64    1:4.6.2-26.el6_4        updates     51 k
qt-x11                      x86_64    1:4.6.2-26.el6_4        updates     12 M
qt3                         x86_64    3.3.8b-30.el6           base       3.5 M
redhat-lsb-compat           x86_64    4.0-7.el6.centos        base        10 k
redhat-lsb-core             x86_64    4.0-7.el6.centos        base        25 k
redhat-lsb-graphics         x86_64    4.0-7.el6.centos        base        13 k
redhat-lsb-printing         x86_64    4.0-7.el6.centos        base        11 k
time                        x86_64    1.7-37.1.el6            base        26 k

Transaction Summary
================================================================================
Install      33 Package(s)

Total download size: 46 M







20130620




0 件のコメント:

コメントを投稿