本次安装系统为Rocky Linux release 8.5
1 打开一个命令行终端,切换到root权限,执行以下安装命令,安装依赖包:
[root@rockygu ~]# dnf install epel-release
[root@rockygu ~]# dnf config-manager --set-enabled powertools
[root@rockygu ~]# dnf install gcc gcc-c++ gcc-toolset-9-make readline-devel perl-ExtUtils-Install make
[root@rockygu ~]# dnf install re2c
[root@rockygu ~]# dnf install rpcgen libtirpc-devel
[root@rockygu ~]# dnf install libnet-devel libpcap-devel libusb-devel
[root@rockygu ~]# dnf install xorg-x11-proto-devel libX11-devel libXext-devel
[root@rockygu ~]# dnf install zeromq-devel
[root@rockygu ~]# dnf install boost-devel
[root@rockygu ~]# dnf install opencv-devel
2 下载以下资源到计算机本地的一个目录中EPICSareaDetector模块-C++文档类资源-CSDN下载包含:1:EPICSbaseR7-0.4.1;2:areaDetector依赖的synApps模更多下载资源、学习资料请访问CSDN下载频道.https://download.csdn.net/download/yuyuyuliang00/85645174
3 本次安装,打算把这些包安装到/usr/local/EPICS目录并且解压下,操作如下:
[root@VM-0-14-rockylinux ~]# cd /usr/local/
[root@VM-0-14-rockylinux local]# tar -xvzf /home/blctrl/areadetector.tar.gz
EPICS/
EPICS/synApps/
EPICS/synApps/support/
...
EPICS/synApps/support/motor
EPICS/base-7.0.4.1.tar.gz
[root@VM-0-14-rockylinux local]# cd EPICS/
[root@VM-0-14-rockylinux EPICS]# ls
base-7.0.4.1.tar.gz synApps
[root@VM-0-14-rockylinux EPICS]#
4 在当前目录中解压base-7.0.4.1.tar.gz,并且对解压生成文件建立一个软连接:
[root@VM-0-14-rockylinux EPICS]# tar -xvzf base-7.0.4.1.tar.gz
base-R7.0.4.1/modules/database/test/std/link/epicsRunLinkTests.c
...
base-R7.0.4.1/documentation/ReleaseChecklist.html
base-R7.0.4.1/README
[root@VM-0-14-rockylinux EPICS]# ln -s base-R7.0.4.1 base
[root@VM-0-14-rockylinux EPICS]# ls
base base-7.0.4.1.tar.gz base-R7.0.4.1 synApps
[root@VM-0-14-rockylinux EPICS]#
5 在/etc/profile.d/下新建一个文件epics.sh,并且在文件中添加以下三行:
[root@VM-0-14-rockylinux EPICS]# cat /etc/profile.d/epics.sh
export EPICS_BASE=/usr/local/EPICS/base
export EPICS_HOST_ARCH=$(${EPICS_BASE}/startup/EpicsHostArch)
export LD_LIBIARY_PATH=${LD_LIBRARY_PATH}:${EPICS_BASE}/lib/${EPICS_HOST_ARCH}
export PATH=${EPICS_BASE}/bin/${EPICS_HOST_ARCH}:${PATH}
6 在终端中使得上面的环境变量生效,并且进入base目录,执行make进行编译
[root@VM-0-14-rockylinux EPICS]# source /etc/profile.d/epics.sh
[root@VM-0-14-rockylinux EPICS]# cd base
[root@VM-0-14-rockylinux base]# make
make -C ./configure install
make[1]: Entering directory '/usr/local/EPICS/base-R7.0.4.1/configure'
perl -CSD ../src/tools/makeMakefile.pl O.linux-x86_64 ../..
mkdir -p O.Common
make -C O.linux-x86_64 -f ../Makefile TOP=../.. \
...
make[4]: Nothing to be done for 'install'.
make[4]: Leaving directory '/usr/local/EPICS/base-R7.0.4.1/modules/pva2pva/iocBoot/iocwfdemo'
make[3]: Leaving directory '/usr/local/EPICS/base-R7.0.4.1/modules/pva2pva/iocBoot'
make[2]: Leaving directory '/usr/local/EPICS/base-R7.0.4.1/modules/pva2pva'
make[1]: Leaving directory '/usr/local/EPICS/base-R7.0.4.1/modules'
[root@VM-0-14-rockylinux base]#
7 测试安装base之后产生的命令行工具caget,caput和cainfo:
[root@VM-0-14-rockylinux base]# caget
No pv name specified. ('caget -h' for help.)
[root@VM-0-14-rockylinux base]# caput
No pv name specified. ('caput -h' for help.)
[root@VM-0-14-rockylinux base]# cainfo
No pv name specified. ('cainfo -h' for help.)
[root@VM-0-14-rockylinux base]#
8 安装areaDetector模块所依赖的包:alive, autosave, seq, iocStat, ipac, sscan, calc, asyn和busy, 进入/usr/local/EPICS/synApps/support目录,更改confgure目录以及以上给出模块中configure目录下RELEASE文件中SUPPORT和EPICS_BASE的值:
SUPPORT=/usr/local/EPICS/synApps/support
EPICS_BASE=/usr/local/EPICS/base
9 按以上给出模块的顺序,分别进入以上模块中,执行makeclean和make命令:
[root@VM-0-14-rockylinux alive]# make clean
make -C ./configure clean
make[1]: Entering directory '/usr/local/EPICS/synApps/support/alive-R1-1-1/configure'
...
make[1]: Leaving directory '/usr/local/EPICS/synApps/support/alive-R1-1-1/tests'
[root@VM-0-14-rockylinux alive]# make
make -C ./configure install
make[1]: Entering directory '/usr/local/EPICS/synApps/support/alive-R1-1-1/configure'
...
make[1]: Leaving directory '/usr/local/EPICS/synApps/support/alive-R1-1-1/tests'
[root@VM-0-14-rockylinux alive]# cd ..
[root@VM-0-14-rockylinux support]# cd autosave;make clean;make;cd ..
...
[root@VM-0-14-rockylinux support]# cd seq;make clean;make;cd ..
...
[root@VM-0-14-rockylinux support]# cd iocStats;make clean;make;cd ..
...
[root@VM-0-14-rockylinux support]# cd ipac;make clean;make;cd ..
...
[root@VM-0-14-rockylinux support]# cd sscan;make clean;make;cd ..
...
[root@VM-0-14-rockylinux support]# cd calc;make clean;make;cd ..
...
[root@VM-0-14-rockylinux support]# cd asyn;make clean;make;cd ..
...
[root@VM-0-14-rockylinux support]# cd busy;make clean;make;cd ..
...
10 进入support下areaDetector模块,查看目录结构:
[root@VM-0-14-rockylinux support]# cd areaDetector
[root@VM-0-14-rockylinux areaDetector]# pwd
/usr/local/EPICS/synApps/support/areaDetector
[root@VM-0-14-rockylinux areaDetector]# ls
ADADSC ADDexela ADmar345 ADPerkinElmer ADPSL ADVimba makeADPrebuilt
ADAndor ADEiger ADmarCCD ADPhotonII ADPvCam aravisGigE Makefile
ADAndor3 ADEiger-2 ADMerlin ADPICam ADQImaging configure NDDriverStdArrays
ADAravis ADEiger-master ADMMPAD ADPilatus ADRIXSCam documentation NDDriverStdArrays-master
ADBruker ADEiger-master.zip ADMythen ADPilatus-master ADRoper DriverReleaseChecklist.txt pvaDriver
ADCameraLink ADFastCCD ADMythen-master ADPixirad ADSimDetector ffmpegServer pvaDriver-master
ADCompVision ADFireWireWin ADMythen-master.zip ADPluginBar ADSpinnaker ffmpegViewer README.md
ADCore ADGenICam ADnED ADPluginEdge ADSupport firewireDCAM RELEASE.md
ADCore-master ADLambda ADPCO ADPointGrey ADURL INSTALL_GUIDE.md specsAnalyser
ADCSimDetector ADLightField ADPcoWin ADProsilica ADViewers LICENSE
11 接着进入configure目录,编辑配置文件:
更改RELEASE_BASE.local,RELEASE_LIBS.local,RELEASE_PRODS.local和RELEASE_SUPPORT.local四个文件中SUPPORT和EPICS_BASE的值:SUPPORT=/usr/local/EPICS/synApps/support和EPICS_BASE=/usr/local/EPICS/base
[root@VM-0-14-rockylinux areaDetector]# cd configure
[root@VM-0-14-rockylinux configure]# ls
CONFIG EXAMPLE_CONFIG_SITE.local.linux-x86 EXAMPLE_RELEASE_SUPPORT.local.win32-x86
CONFIG_SITE EXAMPLE_CONFIG_SITE.local.linux-x86_64 Makefile
CONFIG_SITE.local EXAMPLE_CONFIG_SITE.local.linux-x86_64-gcc42 RELEASE
CONFIG_SITE.local.linux-x86_64 EXAMPLE_CONFIG_SITE.local.linux-x86.vxWorks-ppc32 RELEASE_BASE.local
CONFIG_SITE.local.linux-x86_64.linux-arm EXAMPLE_CONFIG_SITE.local.linux-x86.win32-x86-mingw RELEASE_LIBS_INCLUDE
CONFIG_SITE.local.vxWorks EXAMPLE_CONFIG_SITE.local.linux-x86.win32-x86-mingw-static RELEASE_LIBS.local
CONFIG_SITE.local.win32-x86 EXAMPLE_CONFIG_SITE.local.WIN32 RELEASE.local
CONFIG_SITE.local.win32-x86-static EXAMPLE_RELEASE_BASE.local.win32-x86 RELEASE_PRODS_INCLUDE
CONFIG_SITE.local.windows-x64 EXAMPLE_RELEASE_LIBS.local RELEASE_PRODS.local
CONFIG_SITE.local.windows-x64-static EXAMPLE_RELEASE.local RELEASE_SUPPORT.local
copyFromExample EXAMPLE_RELEASE.local.APS_Jenkins RULES
copyToExample EXAMPLE_RELEASE.local.linux-x86 RULES_DIRS
diffFromExample EXAMPLE_RELEASE.local.linux-x86_64 RULES.ioc
EXAMPLE_CONFIG_SITE.local EXAMPLE_RELEASE.local.win32-x86 RULES_TOP
EXAMPLE_CONFIG_SITE.local.darwin-x86 EXAMPLE_RELEASE_PRODS.local
EXAMPLE_CONFIG_SITE.local.Linux EXAMPLE_RELEASE_SUPPORT.local
[root@VM-0-14-rockylinux configure]#
12 回退一级,编译areaDetector下的模块,编译顺序:ADSupport->ADCore->NDDriverStdArrays->pvaDriver
[root@VM-0-14-rockylinux areaDetector]# cd ADSupport; make clean; make; cd ..
...
[root@VM-0-14-rockylinux areaDetector]# cd ADCore; make clean; make; cd ..
...
[root@VM-0-14-rockylinux areaDetector]# cd NDDriverStdArrays; make clean; make; cd ..
...
[root@VM-0-14-rockylinux areaDetector]# cd pvaDriver; make clean; make; cd ..
...
13 编译探测器模块: ADSimDetector,ADPilatus, ADEiger(此三个模块没有先后顺序)
[root@VM-0-14-rockylinux areaDetector]# cd ADSimDetector; make clean; make; cd ..
...
[root@VM-0-14-rockylinux areaDetector]# cd ADPilatus; make clean; make; cd ..
...
[root@VM-0-14-rockylinux areaDetector]# cd ADEiger; make clean; make; cd ..
...