【ROS】对目前在Ubuntu中ROS遇到source问题总结

最近对Ubuntu上各个工作区间进行source时遇到了几个问题,简单总结了一下,有一些心得,想记录下来也和大家分享一下。

  1. source命令简单介绍
  2. 通过source单个工作区间的setup.bash文件来配置该功能包环境
  3. source在home里的.bashrc文件解决每次cmake工作区间后都要source的问题
  4. source在home里的.bashrc文件无效问题

1.source命令简单介绍

命令用法:source FileName
作用: source命令的作用就是用来执行FileName脚本。
注:该命令通常用命令“.”来替代。
如:source .bash_rc 与 . .bash_rc 是等效的。

2.通过source单个工作区间的setup.bash文件来配置该功能包环境

在这,我用我使用的名为racecar工作区间来给大家演示一下

A.进入工作区间(cd 工作区间的名字)

cd racecar

B.source 工作区间(即source工作区间的环境配置文件)

source devel/setup.bash

3.source在home里的.bashrc文件解决每次cmake工作区间后都要source的问题

A.首先,介绍一下Linux的环境配置文件----.bashrc文件
我的理解它是用来配置bash shell的,这个文件主要保存个人的一些个性化设置,如命令别名、路径等。如果在home下直接查找,是找不到的,因为.bashrc文件是隐藏文件,我们Ctrl+H一下就能看到所有的隐藏文件,包括.bashrc。下图中左上角第一个

在这里插入图片描述
B.可能说的有点难懂,下面我还是用我的工作区间racecar给大家演示一下。
双击.bashrc文件,打开后你会发现里面有很长的代码,不用管代码有多长,直接到文件最底部,因为我们的工作只是在.bahsrc文件里添加我们工作区间的环境。

a.添加格式
第一种,也是我最常用的直接波浪线再加工作区间的.bash文件路径

source ~/racecar/devel/setup.bash

最下面加一行就好,你可以加多个工作区间的.bash文件路径在里面,都会有效

第二种,写全部路径,从home/用户名/工作区间/.bash文件的路径

source /home/用户名/racecar/devel/setup.bash

b.每次你修改.bashrc文件后,要记得source一下.bashrc文件,一定不要忘,否则你的添加是无效的!

source ~/.bashrc

c.大功告成,这样以后你在编译工作区间时就不需要一次次的进行source,只cmake一下就好了

4. source在home里的.bashrc文件无效问题

前段时间,不知道什么原因,我在.bashrc文件中添加的环境变量失效了,哪怕我source多遍.bashrc文件都没有用,每次编译我的工作区间racecar时cmake都要再单独source一下。对于严谨的我来说,这个问题是不能出现的。(其实是为了偷懒,哈哈)
经过我的不断尝试,我发现了问题所在,下面这段代码

if [ -f /opt/ros/kinetic/setup.bash ]; then
	. /opt/ros/kinetic/setup.bash
fi

这段代码也是在.bashrc代码的最底部,之前我的每一个工作区间的source路径前面都带了这一段代码,使得一些工作区间只能再从终端进行一遍遍source才能用。现在我只留一段上面的代码,把所有的source路径放在这段代码下面,就全能用了。
在这里插入图片描述
完美解决!

如果你在Ubuntu下用上述方法解决不了该问题,那就把你需要进行source的工作区间的.bash路径(或现在用的工作区间的.bash路径)放在.bashrc文件最末尾然后Ctrl+S保存,该问题就解决了。

发布了19 篇原创文章 · 获赞 8 · 访问量 3852

猜你喜欢

转载自blog.csdn.net/weixin_45087775/article/details/102764887