XCrySDen在CentOS上的傻瓜式安裝方法
XCrySDen在CentOS上的傻瓜式安裝方法
文/Sobereva@北京科音 2020-Jul-22
1 前言
XCrySDen(http://www.xcrysden.org)是非常流行的第一性原理程序Quantum ESPRESSO用戶經常用的重要工具,可以觀看輸入輸出文件、觀看軌跡、設置k點等,而且作圖效果挺不錯。XCrySDen在Ubuntu上比較容易運行,但對于做計算化學的人用得非常多的CentOS就不那么容易了。XCrySDen很老的版本提供了semishared版,在CentOS里解壓后就能運行,但較新的XCrySDen官方只提供了shared版(至少是對于撰文時最新的1.6.2版而言),里面涉及的一些動態庫在CentOS里沒有相應的源。為了讓CentOS用戶用XCrySDen毫無障礙,筆者在CentOS下編譯了XCrySDen,并且同時提供了傻瓜式編譯的源代碼包。
2 預編譯版XCrySDen的安裝
下載http://www.shanxitv.org/attach/564/xcrysden-1.6.2_sobereva.tar.gz。解壓后,進入此目錄,運行./xcrysden就可以啟動了。如果在~/.bashrc目錄下加上export PATH=$PATH:[XCrySDen的目錄名],則重新進入終端后就可以在任意目錄下直接啟動XCrySDen了。
這個筆者編譯的XCrySDen 1.6.2在CentOS 7系列各個版本上都可以運行。如果讀者裝系統的時候裝的方式和《在VMware 15中安裝CentOS 7.6的完整過程視頻演示》(http://www.shanxitv.org/454)里演示的相同,不需要裝額外的庫就可以直接運行。如果運行時提示缺庫,Google一下報錯提示,用yum安裝相應的包即可。
對于CentOS 8.0,筆者發現沒法直接運行,但只要把解壓后目錄下的tcl目錄下的xcInit.tcl里的兩處0m都改為0就可以運行,并且關閉程序的時候必須點擊右上角強行關閉。
3 XCrySDen的編譯
下面是基于筆者修改的XCrySDen 1.6.2的源代碼包的編譯過程。前面說的筆者的預編譯版如果能正常用就沒必要自己編譯。在CentOS 7.x和8.0下按以下方法都能編譯通過。
運行以下命令安裝編譯過程要用的庫
yum install libGL-devel libGLU-devel libXmu-devel
機子里應當已經裝了gcc和gfortran,如果沒裝的話運行yum install gcc-gfortran來安裝。
下載筆者修改的源代碼包:http://www.shanxitv.org/attach/564/xcrysden-1.6.2_src_sobereva.tar.gz。解壓后進入其中,運行make all即可,大約5分鐘就能編譯完畢。之后直接運行./xcrysden即可啟動。
對于某些CentOS版本,比如CentOS 7.4,編譯中途可能失敗,需要在解壓目錄下的Makefile中的X_LIB=后面加入-lXss選項,然后重新make all。經測試至少對于CentOS 7.7不用加這個。
關于筆者修改的XCrySDen源代碼包的一些細節:Make.sys文件是在system/Make.sys-shared基礎上修改的,原先的這個文件完全沒法用,筆者改了許多地方才終于令編譯能成功。具體改了哪些,自行對照Make.sys-shared就知道了。Makefile文件也做了修改,把all:后面的mesa去掉了,因為CentOS的源直接就有這個,通過前述的yum步驟已經安裝了,因此就沒必要再在make all的時候編譯了。其實對于CentOS 8,由于源里的tcl/tk已經升為了XCrySDen 1.6.2要求的8.6版,因此不編譯tcl/tk而直接通過源來裝也不是不可以。另外,原本make all的時候會自動下載tcl、tk、Togl、fftw、bwidget包,但在大陸地區由于網速問題,很容易中途下載失敗。因此筆者直接將這些壓縮包放到了external/src目錄下,這樣編譯過程中就會自動利用,而不自動下載這些包了。