我们装librealsense和realsense-ros时,通常有两种方式,一个是两个都源码编译安装,一个是两个都二进制安装(当然还有一种librealsense二进制安装,realsense-ros源码编译安装,这种需要注意一下版本匹配的问题)。
这里说明一下realsense2-camera是realsense-ros的功能包之一,下面说realsense-ros默认就是指realsense2_camera功能包
如果两个都源码编译安装(源码编译安装可以参考 https://mp.weixin.qq.com/s/Slb1wuVw0ocl7ROGLvtsSA ),卸载是很方便的,librealsense只需要在对应build文件夹下运行sudo make uninstall就可以了,realsense-ros则直接删除掉整个工作空间即可。
如果是二进制安装librealsense和realsense-ros,我们想卸载时该如何操作,这里介绍一下。
其实二进制安装realsense-ros时,就会同时把对应依赖的librealsense也一起二进制安装了,而且两者版本是匹配的。
二进制安装realsense2_camera的时候,实际是装了两个东西
也就是运行sudo apt-get install ros-noetic-realsense2-camera时
一个是
ros-noetic-librealsense2
一个是
ros-noetic-realsense2-camera
也就是它会自动把版本匹配的librealsense也装上
我们后面如果要卸载二进制安装的librealsense和realsense-ros,其实也就是卸载上面这两个就可以卸载完全,然后我们可以自己去源码编译安装自己需要的版本的librealsense和realsense-ros,不用担心和二进制安装的librealsense冲突什么的。
而且终端有显示对应librealsense和realsense-ros的版本信息
现在ROS1上二进制安装realsense功能包,基本librealsense版本就是2.50.0,realsense-ros版本就是2.3.2,因为ROS1的realsense功能包到2.3.2之后就没有更新了,2.3.2的功能包对应的librealsense版本是2.50.0
我们运行 roslaunch realsense2_camera rs_camera.launch时,终端打印也会显示librealsense和realsense-ros版本信息
卸载二进制安装的librealsense和realsense-ros可以用下面这个命令,不会影响源码编译安装的librealsense和realsense-ros
dpkg -l | grep "realsense" | cut -d " " -f 3 | xargs sudo dpkg --purge
librealsense/doc/distribution_linux.md at master · IntelRealSense/librealsense · GitHub
这个命令的作用是卸载系统中与 "realsense" 相关的软件包。我们可以将这个命令分成几个部分来解释:
dpkg -l:这个命令列出系统中所有已安装的软件包及其状态。
grep "realsense":这个命令从 dpkg -l 的输出中筛选出包含 "realsense" 的行,即与 Realsense 相关的软件包。
cut -d " " -f 3:这个命令从 grep 的输出中提取第三个字段(以空格为分隔符),通常这个字段包含了软件包的名称。
xargs sudo dpkg --purge:这个命令将前面提取到的软件包名称传递给 sudo dpkg --purge 命令,--purge 选项表示彻底卸载软件包,包括其配置文件。sudo 是以超级用户权限执行命令。
整个命令的作用是找到系统中与 "realsense" 相关的所有已安装软件包,并将它们彻底卸载。
再次说明一下,dpkg -l只会找到二进制安装的librealsense和realsense-ros,源码编译安装的librealsense和realsense-ros不会找到,不会受到影响。
从下图可以看到,通过dpkg -l | grep "realsense"
命令,就可以找到ros-noetic-librealsense2和ros-noetic-realsense2-camera这两个包,再结合cut -d " " -f 3
命令可以把这两个包的名称单独提取出来
运行dpkg -l | grep "realsense" | cut -d " " -f 3 | xargs sudo dpkg --purge
命令后终端显示如下图所示
这样我们可以自己完全卸载二进制安装的librealsense和realsense-ros之后,我们再在一个板卡上装librealsense和realsense-ros时,可以灵活选择尝试是源码编译安装还是二进制安装,如果一种方式装了使用效果不太好可以自己完全卸载掉换另一种方式,不用担心比如先二进制安装了,不能完全卸载掉,然后想换源码编译安装又怕librealsense版本冲突的问题。