1. Mesa(opengl)的安装
首先到http://mesa3d.org/上的http://sourceforge.net/project/showfiles.php?group_id=3下载3个压缩包:
MesaDemos-7.0.3.tar.gz
MesaGLUT-7.0.3.tar.gz
MesaLib-7.0.3.tar.gz
然后在root用户下用tar –zxf解压其中的一个,它就把三个都解压到一个目录下了。
例如是/root/mesa/Mesa-7.0.3/, 进入该目录make linux-x86。网站上有安装指南。
如果只写make,它会提供一系列系统叫你选。我们选linux-x86.
当编译结束后,进入lib,ls -all可以看到:
lrwxrwxrwx 1 brian users 10 Mar 26 07:53 libGL.so -> libGL.so.1*
lrwxrwxrwx 1 brian users 19 Mar 26 07:53 libGL.so.1 -> libGL.so.1.5.060100*
-rwxr-xr-x 1 brian users 3375861 Mar 26 07:53 libGL.so.1.5.060100*
lrwxrwxrwx 1 brian users 11 Mar 26 07:53 libGLU.so -> libGLU.so.1*
lrwxrwxrwx 1 brian users 20 Mar 26 07:53 libGLU.so.1 -> libGLU.so.1.3.060100*
-rwxr-xr-x 1 brian users 549269 Mar 26 07:53 libGLU.so.1.3.060100*
lrwxrwxrwx 1 brian users 12 Mar 26 07:53 libglut.so -> libglut.so.3*
lrwxrwxrwx 1 brian users 16 Mar 26 07:53 libglut.so.3 -> libglut.so.3.7.1*
-rwxr-xr-x 1 brian users 597754 Mar 26 07:53 libglut.so.3.7.1*
lrwxrwxrwx 1 brian users 11 Mar 26 08:04 libGLw.so -> libGLw.so.1*
lrwxrwxrwx 1 brian users 15 Mar 26 08:04 libGLw.so.1 -> libGLw.so.1.0.0*
-rwxr-xr-x 1 brian users 20750 Mar 26 08:04 libGLw.so.1.0.0*
lrwxrwxrwx 1 brian users 14 Mar 26 07:53 libOSMesa.so -> libOSMesa.so.6*
lrwxrwxrwx 1 brian users 23 Mar 26 07:53 libOSMesa.so.6 -> libOSMesa.so.6.1.060100*
-rwxr-xr-x 1 brian users 23871 Mar 26 07:53 libOSMesa.so.6.1.060100*
libGL is the main OpenGL library (i.e. Mesa).
libGLU is the OpenGL Utility library.
libglut is the GLUT library.
libGLw is the Xt/Motif OpenGL drawing area widget library.
libOSMesa is the OSMesa (Off-Screen) interface library.
网站上说
cd into the Mesa lib/ directory.
setenv LD_LIBRARY_PATH ${cwd} (if using csh or tcsh shell)
or,
export LD_LIBRARY_PATH=${PWD} (if using bash or sh shell)
主程序文件:http://geant4.web.cern.ch/geant4/support/download.shtml上得到source file,选Unix tar format
数据库文件:有6个data files,下载下来就好。
预编译库文件:pre-combiled libraries. 它是预先编译好的lib,解压缩后,会有readme和一个lib4.9.1.p02文件夹,文件夹下是Linux-g++目录,里面有111个.a库文件。当安装完geant4,会发现它的lib下也有一个Linux-g++目录,里面是根据用户要求的库文件,这取决与用户安装时候的设定,里面可能有.a和.so文件。
下一步是Doing the Initial Build
进入/home/geant4/G4install/geant4.9.1
./Configure -build
开始交互式编译过程
其实在geant4.9.1下,有隐藏的.config目录,
在/home/geant4/G4install/geant4.9.1/.config/bin/Linux-g++下有config.sh文件,它记录了整个安装过程。一般来讲,如果不是首次安装,它会问你是否要采用旧的config.sh作为默认选项,如果上次安装出了问题,我建议就不要选它作为默认。写n即可。
You will be asked a series of questions.
In most cases, you can just take the default response (by hitting carriage return回车).
But pay close attention so that you do not accept the default for the following questions:
When it says:
Could not find CLHEP installed on this system!
Please, specify where CLHEP is installed:
First, confirm that you have installed your CLHEP to
/home/geant4/G4install/clhep-2.0.3.1
注意不要把/2.0.3.1/CLHEP写进去,它是底层安装目录,
而不是安装后的目录/home/geant4/G4install/clhep-2.0.3.1。
Or wherever you've decided to keep CLHEP.
Make sure you have lib, bin and include subdirectories in that directory.
If not, recheck your CLHEP installation. If so, proceed.
基本都默认就好了,除了opengl的no改成yes,还有raytracer的no改成yes。
Take the default for everything else except:
When it asks about:
G4VIS_BUILD_OPENGLX_DRIVER
G4VIS_USE_OPENGLX
Enter: y
This tells Geant4 that you want to include the optional OpenGL Visualization driver.
When it asks about:
G4VIS_BUILD_RAYTRACERX_DRIVER
G4VIS_USE_RAYTRACERX
Enter: y
This tells Geant4 that you want to include the optional RayTracerX Visualization driver.
Take the default for everything else.
但是安装脚本会寻找opengl的位置,有时候能找到,说在/usr/X11R6下,有时候找不到,我们需要指定,写/usr/X11R6。这个在后面可以看到,其实就是指定了OGLHOME=/usr/X11R6
Opengl被root用户移动到/usr/X11R6下。头文件header files位于/usr/X11R6/include/GL下,而库文件位于/usr/X11R6/lib下。
有时也会问Qt4在那里,自己指定/usr/local/Trolltech/Qt-4.3.4,这个在后面也可以看到。
这次对于visualization tools只选了opengl,其余的什么dawn,OpenInventor都不选,以后再说,因为我也不懂。
最后,会说
Once all of the questions have been answered, you will be told:
WARNING: the generated configuration file
can be edited if necessary!
You can introduce any change to the configuration file
/u/ey/perl/geant4/geant4.9.0/.config/bin/Linux-g++/config.sh before the final installation.
To do so,
use a shell escape now (e.g. !vi /u/ey/perl/geant4/geant4.9.0/.config/bin/Linux-g++/config.sh).
Press [Enter] to start installation or use a shell escape to edit config.sh:
就是说可以现在退出,去编译config.sh文件。如果不修改,则回车开始安装,
然后编译开始,很长很长时间,几个小时。
编译过程文件写在 .config/bin/Linux-g++/g4make.log里面。
最后出现
####################################################
# Your Geant4 installation seems to be successful!
# To be sure please have a look into the log file:
# /u/ey/perl/geant4/geant4.9.0/.config/bin/Linux-g++/g4make.log
####################################################
可能装好了。
然后执行./Configure
会生成env.csh和env.sh文件。
现在可以退出终端。
在geant4.9.1目录下建立一个g4work文件夹,这个文件夹随便建立那里都可以,我建立这里而已。它是作为用户的工作目录的。
不管网站怎么写的,我们为了方便,不想每次执行geant4都配置环境变量,因此我们修改用户的.bashrc文件。
在里面添加:
export G4WORKDIR=/home/geant4/G4install/geant4.9.1/g4work
export LD_LIBRARY_PATH=/home/geant4/G4install/clhep-2.0.3.1/lib:home/geant4/G4install/geant4.9.1/lib/Linux-g++:/usr/lib:/usr/local/Trolltech/Qt-4.3.4/lib (指定这些目录为库lib的路径)
当然也可以再加一个$LD_LIBRARY_PATH在所有目录之前,并在等号后面用双引号括起内容。但我发现geant4用户以前并没有定义这个变量,所以加不加无所谓。
Source /home/geant4/G4install/geant4.9.1/env.sh (写这行以后,每次启动终端,都会显示Geant4的环境变量的)
Export QTDIR=/usr/local/Trolltech/Qt-4.3.4,其实这一行在安装geant4之前就应该写了。