本家様 https://www2.mrc-lmb.cam.ac.uk/personal/pemsley/coot/
coot200714,xray/coot
ソースコードから作る coot/source
本家様のダウンロードサイトから左上の「Download Binaries」リンクをクリックして、その中の release/ から最新版バイナリーを得ます。
ここでは rockylinux8 で動かしたいので「coot-0.9.8.92-binary-Linux-x86_64-scientific-linux-7.6-python-gtk2.tar.gz」を選びます(20240831時点)
これを「/apps/src/coot-0.9.8.92-binary-Linux-x86_64-scientific-linux-7.6-python-gtk2.tar.gz」とかに置いて
[root@rockylinux ~]# cat /etc/redhat-release
Rocky Linux release 8.10 (Green Obsidian)
[root@rockylinux ~]#
[root@rockylinux ~]# dnf install libpng15 compat-openssl10
[root@rockylinux ~]# cd /apps
[root@rockylinux apps]# tar xf src/coot-0.9.8.92-binary-Linux-x86_64-scientific-linux-7.6-python-gtk2.tar.gz
と展開します。
起動用のEnvironmentModulesは下記のようにします
「/apps/modulefiles/coot」
#%Module1.0
#
set-alias coot /apps/coot-Linux-x86_64-scientific-linux-7.6-gtk2-python/bin/coot
このmodulefilesをloadして「coot」と打てば使えます.
[saber@rockylinux ~]$ module use /apps/modulefiles/
[saber@rockylinux ~]$ module load coot
[saber@rockylinux ~]$ coot
提供されている「coot-0.9.8.92-binary-Linux-x86_64-scientific-linux-7.6-python-gtk2.tar.gz」をrockylinux9に入れて動かしてみると、下記のようにエラーが出て使えなかった
[illya@rockylinux9 ~]$ /apps/coot-Linux-x86_64-scientific-linux-7.6-gtk2-python/bin/coot
/apps/coot-Linux-x86_64-scientific-linux-7.6-gtk2-python/libexec/coot-bin: error while loading shared libraries: libpng15.so.15: cannot open shared object file: No such file or directory
. ------ Coot crashed - trying to diagnose -----
ldd -r on guile gives:
linux-vdso.so.1 (0x00007ffc4d775000)
libguile.so.17 => /apps/coot-Linux-x86_64-scientific-linux-7.6-gtk2-python/lib/libguile.so.17 (0x00007fc8c6a00000)
libgmp.so.10 => /apps/coot-Linux-x86_64-scientific-linux-7.6-gtk2-python/lib/libgmp.so.10 (0x00007fc8c6600000)
libcrypt.so.1 => /lib64/libcrypt.so.1 (0x00007fc8c6e11000)
libm.so.6 => /lib64/libm.so.6 (0x00007fc8c6d36000)
libltdl.so.3 => /apps/coot-Linux-x86_64-scientific-linux-7.6-gtk2-python/lib/libltdl.so.3 (0x00007fc8c6200000)
libdl.so.2 => /lib64/libdl.so.2 (0x00007fc8c6d2f000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x00007fc8c6d2a000)
libc.so.6 => /lib64/libc.so.6 (0x00007fc8c5e00000)
/lib64/ld-linux-x86-64.so.2 (0x00007fc8c6e58000)
Guile 1.8.8
Copyright (c) 1995, 1996, 1997, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation
Guile may be distributed under the terms of the GNU General Public Licence;
certain other uses are permitted as well. For details, see the file
`COPYING', which is included in the Guile distribution.
There is no warranty, to the extent permitted by law.
catching the crash log:
coot-exe: "/apps/coot-Linux-x86_64-scientific-linux-7.6-gtk2-python/libexec/coot-bin"
/usr/bin/ls
-rwxr-xr-x. 1 illya illya 273336584 Sep 6 2023 /apps/coot-Linux-x86_64-scientific-linux-7.6-gtk2-python/libexec/coot-bin
coot-version:
/apps/coot-Linux-x86_64-scientific-linux-7.6-gtk2-python/libexec/coot-bin
/apps/coot-Linux-x86_64-scientific-linux-7.6-gtk2-python/libexec/coot-bin: error while loading shared libraries: libpng15.so.15: cannot open shared object file: No such file or directory
platform:
/usr/bin/uname
Linux rockylinux9 5.14.0-427.18.1.el9_4.x86_64 #1 SMP PREEMPT_DYNAMIC Mon May 27 16:35:12 UTC 2024 x86_64 x86_64 x86_64 GNU/Linux
core: #f
No core file found. No debugging
[illya@rockylinux9 ~]$
っと無理みたい. これを無理やりでも動かす方法はある.
っで不足のライブラリを入れても
[root@rockylinux9 ~]# dnf install libpng15 mesa-libGLU openldap-compat
最後に「libssl.so.10」が要求される。この「libssl.so.10」を含むパッケージはrockylinux9では提供されていない。
っで「libssl.so.10」はrockylinux8では「compat-openssl10-1.0.2o-4.el8_6.x86_64.rpm」に含まれている。なのでこれをrebuildすれば、、と思うがエラーが出てダメ.
なのでソースから作る. 使うソースは openssl-1.0.2系
[root@rockylinux9 ~]# wget https://openssl.org/source/old/1.0.2/openssl-1.0.2u.tar.gz
[root@rockylinux9 ~]# tar xf openssl-1.0.2u.tar.gz
[root@rockylinux9 ~]# cd openssl-1.0.2u/
[root@rockylinux9 openssl-1.0.2u]# ./Configure shared --prefix=/apps/openssl-1.0.2 linux-x86_64
[root@rockylinux9 openssl-1.0.2u]# vi Makefile
Makefileを修正します
--- Makefile.orig 2024-09-01 01:40:26.908680823 +0900
+++ Makefile 2024-09-01 01:41:35.741390251 +0900
@@ -9,9 +9,8 @@
MINOR=0.2
SHLIB_VERSION_NUMBER=1.0.0
SHLIB_VERSION_HISTORY=
-SHLIB_MAJOR=1
-SHLIB_MINOR=0.0
-SHLIB_EXT=.so.$(SHLIB_MAJOR).$(SHLIB_MINOR)
+SHLIB_MAJOR=10
+SHLIB_EXT=.so.$(SHLIB_MAJOR)
PLATFORM=linux-x86_64
OPTIONS=enable-shared --prefix=/apps/openssl-1.0.2 no-ec_nistp_64_gcc_128 no-gmp no-jpake no-krb5 no-libunbound no-md2 no-rc5 (略
CONFIGURE_ARGS=shared --prefix=/apps/openssl-1.0.2 linux-x86_64
@@ -345,7 +344,7 @@
link-shared:
@ set -e; for i in $(SHLIBDIRS); do \
$(MAKE) -f $(HERE)/Makefile.shared -e $(BUILDENV) \
- LIBNAME=$$i LIBVERSION=$(SHLIB_MAJOR).$(SHLIB_MINOR) \
+ LIBNAME=$$i LIBVERSION=$(SHLIB_MAJOR) \
LIBCOMPATVERSIONS=";$(SHLIB_VERSION_HISTORY)" \
symlink.$(SHLIB_TARGET); \
libs="$$libs -l$$i"; \
@@ -359,7 +358,7 @@
libs="$(LIBKRB5) $$libs"; \
fi; \
$(CLEARENV) && $(MAKE) -f Makefile.shared -e $(BUILDENV) \
- LIBNAME=$$i LIBVERSION=$(SHLIB_MAJOR).$(SHLIB_MINOR) \
+ LIBNAME=$$i LIBVERSION=$(SHLIB_MAJOR) \
LIBCOMPATVERSIONS=";$(SHLIB_VERSION_HISTORY)" \
LIBDEPS="$$libs $(EX_LIBS)" \
link_a.$(SHLIB_TARGET); \
修正したらmakeします
[root@rockylinux9 openssl-1.0.2u]# make
[root@rockylinux9 openssl-1.0.2u]# make install
っでEnvironmentModulesは下記のようにします
#%Module1.0
#
prepend-path LD_LIBRARY_PATH /apps/openssl-1.0.2/lib/
set-alias coot /apps/coot-Linux-x86_64-scientific-linux-7.6-gtk2-python/bin/coot
そうすると一応起動する.
っが、、起動中に下記文言を言われる
/apps/coot-Linux-x86_64-scientific-linux-7.6-gtk2-python/libexec/coot-bin: /apps/openssl-1.0.2/lib/libssl.so.10: no version information available (required by /apps/coot-Linux-x86_64-scientific-linux-7.6-gtk2-python/lib/libcurl.so.4)
/apps/coot-Linux-x86_64-scientific-linux-7.6-gtk2-python/libexec/coot-bin: /apps/openssl-1.0.2/lib/libcrypto.so.10: no version information available (required by /apps/coot-Linux-x86_64-scientific-linux-7.6-gtk2-python/lib/libcurl.so.4)
/apps/coot-Linux-x86_64-scientific-linux-7.6-gtk2-python/libexec/coot-bin: /apps/openssl-1.0.2/lib/libcrypto.so.10: no version information available (required by /apps/coot-Linux-x86_64-scientific-linux-7.6-gtk2-python/lib/libcurl.so.4)
致命的なエラーではないと思えるが、、、
気になるならソースから作るしかないみたい
参照coot/source
export LIBGL_ALWAYS_INDIRECT=1
こっちも参照CUDA/GL
cootのサイトで提供しているubuntu版は「coot-0.9.8-binary-Linux-x86_64-ubuntu-20.04.4-python-gtk2.tar.gz」が最新っぽい。っでこれは ubuntu20.04向け.
ubuntu22.04とかでは動きません。「libssl.so.1.1」が足りないとして止まります。rockylinux9の「libssl.so.10」に似てます.
っでじゃぁー同じようにlibssl.so.1.1を自作して回避させてみる.
root@ubuntu22:~# grep PRETTY_NAME /etc/os-release
PRETTY_NAME="Ubuntu 22.04.3 LTS"
root@ubuntu22:~# cd /apps/src/
root@ubuntu22:/apps/src# wget https://openssl.org/source/old/1.1.1/openssl-1.1.1w.tar.gz
root@ubuntu22:/apps/src# tar xf openssl-1.1.1w.tar.gz
root@ubuntu22:/apps/src# cd openssl-1.1.1w/
root@ubuntu22:/apps/src/openssl-1.1.1w# ./Configure shared --prefix=/apps/openssl-1.1.1w linux-x86_64
root@ubuntu22:/apps/src/openssl-1.1.1w# make && make install
っでEnvironmentModulesは下記のようにします
「/apps/modulefiles/coot」
#%Module1.0
prepend-path LD_LIBRARY_PATH /apps/openssl-1.1.1w/lib
prepend-path PATH /apps/coot-Linux-x86_64-ubuntu-20.04.4-gtk2-python/bin
っでloadしてcootを立ち上げると
と起動できた. 起動中の文言にエラーっぽいものはなかったです
同じように「libssl.so.1.1」が足りないとして止まります。
なのでこちらも同様、openssl-1.1.1w.tar.gzをコンパイルして入れます
root@ubuntu24:~# grep PRETTY_NAME /etc/os-release
PRETTY_NAME="Ubuntu 24.04.1 LTS"
root@ubuntu24:~# cd /apps/src/
root@ubuntu24:/apps/src# wget https://openssl.org/source/old/1.1.1/openssl-1.1.1w.tar.gz
root@ubuntu24:/apps/src# tar xf openssl-1.1.1w.tar.gz
root@ubuntu24:/apps/src# cd openssl-1.1.1w/
root@ubuntu24:/apps/src/openssl-1.1.1w# ./Configure shared --prefix=/apps/openssl-1.1.1w linux-x86_64
root@ubuntu24:/apps/src/openssl-1.1.1w# make && make install
EnvironmentModulesも同様に
「/apps/modulefiles/coot」
#%Module1.0
prepend-path LD_LIBRARY_PATH /apps/openssl-1.1.1w/lib
prepend-path PATH /apps/coot-Linux-x86_64-ubuntu-20.04.4-gtk2-python/bin
とします。
起動してみると下記のようになります。起動の際、文言にエラーのようなものはこちらでもありませんでした。