本文列举了一些在xilinx嵌入式系统部署双机热备时的一些报错信息及其错误原因与相应的解决方法
1. 报错信息:
在./configure keepalived时报错:
configure: error:
!!! OpenSSL is not properly installed on your system. !!!
!!! Can not include OpenSSL headers files. !!!
错误原因:
配置过程中未在系统中找到相应的openssl头文件和库文件
解决方案:
安装openssl库,并将openssl路径导入PATH
2.报错信息:
在terminal执行openssl时报错:
openssl: error while loading shared libraries: libssl.so.1.1: cannot open sh
错误原因:
libssl.so.1.1软链接失效
解决方案:
ln -s /usr/local/openssl/lib/libssl.so.1.1 /usr/lib64/libssl.so.1.1
ln -s /usr/local/openssl/lib/libcrypto.so.1.1 /usr/lib64/libcrypto.so.1.1
3.报错信息:
make keepalived时报错:
fatal error: openssl/ssl.h: No such file or directory
错误原因:
make时找不到openssl库
解决方案:
在Makefile文件的CFLAGS后面加-I/usr/include
4.报错信息:
在某些开发板上运行service keepalived start
时报错:
$Starting keepalived: /etc/init.d/keepalived: 72: daemon: not found
错误原因:
开发板未安装daemon
解决方案:
apt-get install daemon
注:板子不能联网的话这个问题不好解决
5.报错信息:
在上一个问题安装完daemon后继续报错:
touch: cannot touch `/var/lock/subsys/keepalived’: No such file or directory
错误原因:
不能在创建/var/lock/subsys/keepalived文件。正常Ubuntu或者CentOS系统/var/lock下都有/subsys文件夹。这个文件夹下创建的文件是正在运行的程序或者服务的标识符,例如keepalived文件如果存在,证明keepalived正在运行。
解决方案:
mkdir /var/lock/subsys
chmod +x /var/lock/subsys
6.报错信息:
安装libnl-3-200时报错:
ldconfig deferred processing now taking place
/sbin/ldconfig.real: /usr/lib/libOpenVG.so is not a symbolic link
错误原因:
因为libOpenVG.so正常情况下应该是一个符号链接,而不是实体文集件,修改其为符号链接即可
解决方案;
mv libOpenVG.so libOpenVG.so.0
ln -slibOpenVG.so.0 libOpenVG.so
7.报错信息:
源码安装heartbeat执行:
./ConfigureMe configure \> --disable-swig --disable-snmp-subagent
报错:
libtoolize:
COPYING.LIB' not found in
/usr/share/libtool/libltdl’
错误原因:
未安装libtool
解决方案:
安装libtool-2.4.6
下载libtool-2.4.6地址http://ports.ubuntu.com/pool/main/libt/libtool/
8.报错信息:
配置heartbeat时报错:
tar: libltdl: Cannot stat: No such file or directory
tar: Exiting with failure status due to previous errors
./bootstrap exiting due to error (sorry!).
解决方案:
在bootstrap第265行处注释如下代码:
#tar -cf libltdl.tar libltdl/
#rm -rf libltdl
9.报错信息:
打开虚拟机时出现开启磁块disk的操作失败
解决方案:
打开虚拟机目录,用记事本打开 (虚拟机名).vmx.找到vmci0.present,将其值从TURE改为FALSE.
或者删除目录下的所有后缀为.lck的文件
10.报错信息:
交叉编译popt时报错:
checking for va_copy() function… configure: error: cannot run test program
错误原因:
在configure文件中查找错误原因搜索va_copy()可知是因为变量ac_cv_va_copy无法被自动配置上
解决方案:
echo ac_cv_va_copy=yes > arm-linux.cache
./configure --prefix=/usr/local/popt --host=arm-none-linux-gnueabi CC=arm-none-linux-gnueabi-gcc --cache-file=arm-linux.cache
给它指定cache file
11:报错信息:
交叉编译keepalived是报错:
undefined reference to `rpl_malloc’
错误原因:
是交叉编译时autotools认为工具链的libc中不包含malloc和realloc,然后默认替换成了rpl_malloc和rpl_realloc。
解决方案:
去lib/config.h中把:
#define
malloc rpl_malloc
#define
realloc rpl_realloc
注释掉,重新编译。