Fedora 19/20 编译安装 Epics base 、extension、edm

来源:互联网 发布:原生js点击隐藏 编辑:程序博客网 时间:2024/06/06 06:46

说明:本机系统为fc19,架构为 linux_x86, (即环境变量 EPICS_HOST_ARCH)。文中操作经过默认distribution从头开始的编译安装成功。


安装目录为: /root/softw/epics/base.3.14.12.4         //此为环境变量EPICS_BASE,即为/base 目录,即为base的 $(TOP)目录。epics官方文档中好像只成为base/  ,以后改环境的时候要加版本号

1.去官网下载 base、extension、edm 三个包。

文件结构如:

- myepics  - base  - extensions     - src       - alh       - edm     - etc

解压缩,准备开始,读官方文档和他人经验。


2.base的编译


2.1安装 dependency

yum install perl 

yum install gcc-c++

yum install readline-devel

yum install perl-ExtUt*

yum install perl-Pod-Checker

##  安装完perl-ExtUt*之后可能还需要将 ExtUt*文件从 /usr/share/vendor/perl5/xxx下cp到 /usr/share/perl5下--理会精神


压缩包中/base/documantation/README.1st 为安装说明,列出了依赖的软件,可以依照他说的全都装一遍。

针对本机经验的话,其中需要注意的是gcc、perl 、和一个比较烦的叫 gnu readline的东西


2.1.1 readline

//如果安装 readline-devel ,则不需要作此更改

目测是类此给代码标颜色检查拼写的东西,但是查来查去 readline的关键字很多,也不知道要装那个。fedora里自带的readline不管用


官方安装文档中专门提到了这个问题:    (不过我开始没看懂)(COMMENT OUT是注释掉的意思!! )


说可以注释掉 startup/CONFIG_SITE.COMMON.linux-x86 中的一行。


打开看,三套 × 两行,这样子的(RL=readline):


#XXXXXX  第一种:需要 RL

RL blahblahblah

#XXXXXX 第二种:需要XRL

#XRL blahblah

#XXXXXX 第三种:需要¥%XRL

#¥%XRL blahblah


所以这些是说一共有三种readline,针对不同情况的系统

可见第一种情况是默认的,所谓RL也是depdency里提到的那种。安装步骤原文的意思是如果没有安装RL可以在这里把 这一行(即RL blahblahblah)注释掉。

是加#,不是//

开始没看懂,后来找了些攻略,都说只有两处需要处理,一处就是这里。不处理的靠Fedora自带的readline 去make可以看到readline出问题。

CentOS5.4编译和安装EPICS 中提到了需要额外安装的包,(readline-devel)没试过,但是靠谱。


把这一行注释掉之后,make就没有RL的问题了。


      2.1.2  gcc

fedora 19/20的发行版都有gcc,但是make不通过说g++有问题  g++的yum名字不叫g++......叫gcc-c++.....坑

yum install gcc-c++


      2.1.3 perl相关

发行版默认有perl5 大概5.18的版本,远高于官方文档中所需的perl版本,但是裸make显示perl相关的两个问题:找不到podchecker  和 xsubpp 两个命令。

yum install perl-Pod-Checker    //解决podchecker

xsubpp是属于 perl-ExtUtils下的,

查到:

 

perl-ExtUtils-XSBuilder.noarch : Modules that parse C header files and create XS
                               : glue code
perl-ExtUtils-XSpp.noarch : C++ variant of Perl's XS language

及其他


怀疑是其中的某个。没仔细试,

yum install perl-ExtUti*  //解决xsubpp


记得它们依赖perl-devel。



2.2.环境变量

他们所说的第二处,是环境变量。EPICS_HOST_ARCH  可以 export命令改,也可以在.bashrc里添加改。


推荐enockipp 的博客中有转Michael d 《Getting started》

这样的环境变量设置很方便: 

export EPICS_BASE="${HOME}/myepics/base"export EPICS_HOST_ARCH=`${EPICS_BASE}/startup/EpicsHostArch`export PATH="${PATH}:${EPICS_BASE}/bin/${EPICS_HOST_ARCH}"export LD_LIBRARY_PATH="${LD_LIBRARY_PATH}:${EPICS_BASE}/lib/${EPICS_HOST_ARCH}"


把这些加进.bashrc或者其他的环境变量文件里

 



2.3结论

(1)环境变量

export EPICS_BASE="${HOME}/myepics/base"export EPICS_HOST_ARCH=`${EPICS_BASE}/startup/EpicsHostArch`export PATH="${PATH}:${EPICS_BASE}/bin/${EPICS_HOST_ARCH}"export LD_LIBRARY_PATH="${LD_LIBRARY_PATH}:${EPICS_BASE}/lib/${EPICS_HOST_ARCH}"
系统架构可以通过安装包里的脚本获得,perl XXXXX.pl   可以uname获得 

(2).安装 readline-devel或者注释掉readline那一行

README.1st中提到的目录自己注释掉readline那一行,前面加#


(3).安装g++、perl-ExtUt*、perl-Pod-Checker


yum install perl 

yum install gcc-c++

yum install readline-devel

yum install perl-ExtUt*

yum install perl-Pod-Checker

make

make install


 感谢参考博客


3.extension的编译

##########

4.edm的安装

edm 与一般extension不同。edm在make 成功,安装成功后,还需要进行配置才能使用。

#需要现在/epics/extensions/configure/RELEASE 文件中 修改 :

# Location of external products
#EPICS_BASE=$(TOP)/../base

#base 为 base3.14.12.4--理会精神

4.1编译安装

安装常见问题两种,缺少各种库各种dependency;环境变量设置有问题;

本机经验:先不要为EDM改、添加任何环境变量。编译安装成功后用setup.sh

4.1.2  dependency

yum install motif-devel

yum install libXtst-devel

yum install giflib-devel

make

若出现错误:png.cc  line 1639 ZLIB_VERSIONI 没有定义,在报错目录的png.cc文件中 ,添加 include<zlib.h>

make

make install

4.2configuration

/edm/setup 目录下的setup.sh文件

cd /edm/setup

chmod +x setup.sh

export HOST_ARCH=linux-x86

source setup.sh

//setup.sh就是配置的脚本,添加环境变量、edm对象、list之类的东西;

//网上有的经验是手动进行配置setup里面的内容,若setup.sh失败,需要手动做的话,参照setup.sh里的内容,以及./setup.sh  所的提示结果进行

//然后可以将setup.sh 改的环境变量加到.bash里   env | grep EDM


然后是重点:

在编译安装成功,source setup.sh成功后,应当可以运行edm,>$EDM

本机出现错误:font init failed - abort

查查查,2008-10年左右有一些bug report,说是fc8上就是编译不了,问题能解决,但是改不进安装包,需要的rpm文件也不好找


解决方案:

“xset fp+ /usr/share/X11/fonts/75dpi”

// 在/fonts/目录下除了encoding和util之外的文件是字体文件,因为他们之中有font.dir

//视桌面环境,可能没有75dpi这个字体。也有人用100dpi的,

:yum install *75dpi*      //此时/usr/share/X11/fonts下应该有个75dpi文件夹了,但是单独安装75dpi是不够的

:xset fp+ /usr/share/X11/fonts/75dpi

:$EDM

出现了

0 0