ROS安装过程遇到的bug及解决办法

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


一、版本注意

安装时注意版本:
ubuntu18.04

sudo apt install ros-melodic-desktop-full

ubuntu20.04

sudo apt install ros-noetic-desktop-full

ROS有Melodic、Lunar、Kinetic不同的种类对应着不同的ubuntu版本,
Melodic 主要对应:Ubuntu Artful (17.10), Bionic (18.04 LTS) 以及Debian Stretch
Kinetic 主要对应:Ubuntu Wily (15.10) and Ubuntu Xenial (16.04 LTS),
在安装的过程中要根据自己的ubuntu系统版本选择对应的ROS类型进行安装,
具体可以参考官网
官网链接:http://wiki.ros.org/melodic/Installation/Ubuntu

二、解决ros-noetic-desktop-full安装过程中未满足的依赖关系问题

2.0 pg: 从公钥服务器接收失败:服务器故障

原因:要保证Ubuntu能上网
参考链接:http://t.csdn.cn/mRHl3
主要步骤:将网络适配器设置为桥接状态
在这里插入图片描述
在这里插入图片描述

2.1 有几个软件包无法下载,要不运行 apt-get update 或者加上 --fix-missing 的选项再试试?

更换为中科大源后解决,具体操作为:
(1)打开ubantu的软件与更新,选择ubantu软件。
(2)将下载自设为其他站点,选择中国科技大学镜像源(…ustc.edu…),如图3所示。
(3)关闭,并选择重新载入软件。
在这里插入图片描述

2.1 问题

下列软件包有未满足的依赖关系:
ros-noetic-desktop-full : 依赖: ros-noetic-desktop 但是它将不会被安装
依赖: ros-noetic-perception 但是它将不会被安装
依赖: ros-noetic-simulators 但是它将不会被安装
依赖: ros-noetic-urdf-sim-tutorial 但是它将不会被安装
E: 无法修正错误,因为您要求某些软件包保持现状,就是它们破坏了软件包间的依赖关系。

2.2 解决办法

将所提到的四个依赖软件包进行aptitude安装:

sudo aptitude install ros-melodic-desktop ros-melodic-perception ros-melodic-simulators ros-melodic-urdf-sim-tutorial

会出现一个未满足依赖关系的软件包libgpgme11,但是提示我这个软件包已经安装了,就是版本太高不匹配才报错

在这里插入图片描述
在这里插入图片描述
是否接受该解决方案?选择n,会提示降级软件包,我这里降级了两次,就算选了两次n

最后接受方案,开始安装:
在这里插入图片描述
最后安装好4个依赖包后,就可以安装ros-melodic了:
在这里插入图片描述
安装ros-noetic

sudo apt install ros-noetic-desktop-full

完成

最后总结一下:自己看了看apt-get和aptitude的区别,看到了:aptitude 解决依赖关系比 apt-get 更智能. 有时用 apt-get 安装软件时会出现 “XXX 需要 XXXX, 但 XXX已安装” 这类的错误. 这通常是因为某些软件包过新造成的. 可以进行降级。此时使用 aptitude, aptitude 会发现问题并给出几个解决方案,我们只需接受符合心意的方案就可以了.
参考链接:http://t.csdn.cn/EyqOR

2.3 通过aptitude降级包解决依赖问题(E:无法修正错误,因为您要求某些软件包保持现状)

Linux下的依赖关系令人头疼,尤其是提示如下错误的时候:

下列软件包有未满足的依赖关系:
xxx : 依赖: xxx 但是它将不会被安装
E: 无法修正错误,因为您要求某些软件包保持现状,就是它们破坏了软件包间的依赖关系。

查了一下,有很多是因为要安装的包需要依赖较低级的包,所以可以通过 sudo aptitude install 来尝试通过降级解决问题。

比如我要安装libgtk2.0-dev,但是这货的依赖都是较低版本的包,导致这个包没法安装,解决方法如下:

sudo apt-get install aptitude
# 安装 aptitude 包管理器

sudo aptitude install libgtk2.0-dev
# 提示未满足依赖关系,给出了类似1) libcairo2-dev [未安装的] 等提示,问是否接受该解决方案?[Y/n/q/?]

n
# 不接受该解决方案,然后会提示降级下列软件包,问是否接受该解决方案?[Y/n/q/?] 

y
# 接受降级,此时会发现新安装包列表里果然有libgtk2.0-dev,然后会提示您要继续吗?[Y/n/?]

y
# 继续,确认安装

# 安装成功!其他搞不定的包也可以如此尝试,不过降级之前需要仔细看下版本号变化,如果差太多还需要慎重考虑

参考链接:https://www.codeprj.com/blog/b6a8271.html

三、ERROR: default sources list file already exists: /etc/ros/rosdep/sources.list.d/20-default.list

错误信息:ERROR: default sources list file already exists:
/etc/ros/rosdep/sources.list.d/20-default.list
Please delete if you wish to re-initialize

解决办法:
【第一步】

sudo rm /etc/ros/rosdep/sources.list.d/20-default.list

【第二步】

sudo rosdep init

四、ERROR:linux bash: /home/huzai/.bashrc: 权限不够

例如普通用户是haha
直接把该文件的操作权限, 赋给你要切换的用户

chown -R haha /home/haha

这个命令就是将 /home/haha目录下的文件操作权限赋给haha(user)用户

4.1 出现以下报错是正常现象,fuerte已经多年没有更新,其中的包也是几乎用不到的

ERROR: unable to process source [https://gitee.com/zhao-xuzuo/rosdistro/raw/master/releases/fuerte.yaml]:
	Failed to download target platform data for gbpdistro:
	HTTP Error 404: Not Found

五、ROS运行小海龟程序报错:ERROR:Command ‘roscore’ not found, but can be installed with: apt install python3-roslaunch Please ask your administrator

问题描述:
安装结束后,在终端输入:roscore
在这里插入图片描述
解决方法:可以根据提示在终端输入:

sudo apt install python3-roslaunch

5.1 若软件包有未满足的依赖关系

在这里插入图片描述
问题描述: 则可能是安装ROS系统,环境搭建时存在问题。在环境搭建时双击’Tab’时,ros的命令语句只有少数几个,缺少很多ros的命令语句,其中包括未成功安装’roscore’的可运行文件。

解决办法:
1.通过Ctrl+Alt+T打开终端;
2.在终端输入

sudo apt-get install ros-noetic-desktop

3.继续输入

source ~/.bashrc

4.在终端输入’roscore’并点击‘Enter’键回车”
在这里插入图片描述
则解决了最初的问题,可以继续输入运行小海龟的程序。

参考链接:http://t.csdn.cn/38g15

六、linux新建用户并授权

1.新建admin用户
用以部署使用,减少因漏洞而导致服务器被黑客直接获取root权限的风险

(1)创建用户
新建用户admin

sudo useradd admin

修改admin密码为:admin123

sudo passwd admin123

(2)授权
新创建的用户并不能使用sudo命令,需要给他添加授权。

sudo cd /etc

sudo命令的授权管理是在/etc/sudoers文件里的。

查看当前sudoers文件的权限:

ls -l sudoers

显示如下:则表明只有读的权限,需先修改文件的权限

[root@localhost ~]# ls -l /etc/sudoers
-r–r----- 1 root root 4251 9月 25 15:08 /etc/sudoers

修改sudoers文件权限,添加w权限:
huzai

chmod -v u+w  /etc/sudoers

修改sudoers文件内容

vi sudoers

通过 / Allow root to run any commands anywhere命令找到位置,在后面添加

#xiucai-add
admin ALL=(ALL) ALL

wq保存退出。

把sudoers文件权限还原只有读的权限

chmod -v u-w /etc/sudoers

切换用户,第一次会让输入新用户密码

su admin

如果不想输入密码,则修改sudoers文件admin最后ALL为 NOPASSWD: ALL

最后,给admin用户 /sdata目录所有权限

chown -R admin:admin /sdata

参考链接:http://t.csdn.cn/9lcEp

七、root用户无法启动vscode 的解决方法

7.1vscode with root

今天切换到Ubuntu的root用户进行编码调试,发现VSCode一直无法打开,
命令提示和网上搜索到的都是使用–user-data-dir,但依然无效。

7.2解决方法

sudo gedit .bashrc
# 添加一行
alias code='/usr/share/code/code . --no-sandbox --unity-launch'
# 报存生效
sudo source ~/.bashrc

7.3总结

vscode这一点实在是令人恶心,root权限又不是不用输密码,根本就是多此一举。
linux普通用户安装vscode,Linux下安装并配置VSCode不出错
参考链接:http://t.csdn.cn/ZULwj

八、Linux新建用户无法从图形界面登陆

8.1问题描述

【1】新建的用户无法从图形界面登陆(账号密码均正确的前提下)
【2】输入账户密码后闪一下又回到账户列表

8.2解决办法

【1】删除无法登陆的用户直接新建一个用户(这里以用户名: test 为例),执行以下命令既可以从图形界面登陆:

sudo   adduser    test
sudo   chown    test    /home/test  -R 
sudo   chgrp     test   /home/test   -R

【2】重启登录

reboot

【3】没有 sudo 使用权限 is not in sodu file…

vim   /etc/sudoers  

在 # User privilege specification下添加(以test用户为例)

test  ALL=(ALL)   ALL

九、ubuntu20.04右键怎么添加新建空白文本文件

参考链接:ubuntu20.04右键怎么添加新建空白文本文件

十、RLException: [start_turtle.launch] is neither a launch file in package [hello_vscode] nor is [hello_vscode] a launch file name The traceback for the exception was written to the log file

环境变量设置有问题,重新添加环境变量后再执行roslaunch

catkin_make
source ~/工作空间名/devel/setup.bash
source .bashrc

参考链接:http://t.csdn.cn/yiQG5

  • 2
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值