前言
之前安装的 REDHAWK2.3.1 在使用过程中存在着问题,花了整整三天才把问题解决,期间尝试了不同的 CentOS7.4 和 REDHAWK 版本,其实没啥必要,本应该遇到什么问题就去解决什么问题,而不是逃避去找相互兼容的版本。
一、CentOS7.4 安装
参考我之前的博客CentOS详细安装教程
二、REDHAWK2.3.1 安装
参考官方安装REDHAWK2.3.1安装
1、第1个问题及解决方案
问题1:
这里对在安装过程中出现的一些问题给出解决方案:
[sudo] gnep 的密码:
gnep 不在 sudoers 文件中。此事将被报告。
解决方法:
按照下面的命令顺序执行:
su root chmod u+w /etc/sudoers vim /etc/sudoers
按下图新增内容:
注:gnep 是我的本机用户名,你需要把其换成自己的用户名
再按照下面的命令顺序执行:
chmod 440 /etc/sudoers su gnep
2、第2个问题及解决方案
问题2:
/var/run/yum.pid 已被锁定,PID 为 14251 的另一个程序正在运行。
Another app is currently holding the yum lock; waiting for it to exit…
解决方法:
删除 /var/run/yum.pid 即可:
sudo rm -r /var/run/yum.pid
3、第3个问题及解决方案
问题3:
执行以下命令安装 REDHAWK 开发软件,出现了下图的报错
sudo yum groupinstall "REDHAWK Development"
import omniidl
ImportError: No module named omniidl
上面的报错就导致下面进入到 python 命令行之后执行 from ossie.utils import sb
实现导入 sandbox 模块出现同样的报错:
解决方法:
①、下载并编译安装 omniORB
wget https://sourceforge.net/projects/omniorb/files/omniORB/omniORB-4.2.4/omniORB-4.2.4.tar.bz2 tar -xjf omniORB-4.2.4.tar.bz2 cd omniORB-4.2.4/ ./configure --prefix=/usr/local/omniORB make sudo make install
配置环境变量:
vi ~/.bashrc export PATH=$PATH:/usr/local/omniORB/bin export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/omniORB/lib source ~/.bashrc
再次进入到 python 命令行之后执行 from ossie.utils import sb
实现导入 sandbox 模块
这次的报错和上次不同,意味着刚刚的修改生效了
import _omniidl
ImportError: No module named _omniidl
②、本地下载及编译 omniORBpy
wget https://sourceforge.net/projects/omniorb/files/omniORBpy/omniORBpy-4.2.4/omniORBpy-4.2.4.tar.bz2 tar -xjf omniORBpy-4.2.4.tar.bz2 cd omniORBpy-4.2.4 ./configure --with-omniorb=/usr/local/omniORB/ make sudo make install
③、修改 PYTHONPATH 环境变量
vi ~/.bashrc export PYTHONPATH=/usr/local/redhawk/core/lib64/python:/usr/local/redhawk/core/lib/python:/usr/local/omniORB/lib/python2.7/site-packages/:/usr/local/omniORB/lib64/python2.7/site-packages source ~/.bashrc
④、进入到 python 命令行之后执行 from ossie.utils import sb
实现导入 sandbox 模块:
三、打开 REDHAWK 测试
终端输入下面命令打开 REDHAWK IDE
rhide
创建一个组件的项目, 单击 “生成所有实现” 按钮
编译通过