提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
文章目录
- 一、版本注意
- 二、解决ros-noetic-desktop-full安装过程中未满足的依赖关系问题
- 三、ERROR: default sources list file already exists: /etc/ros/rosdep/sources.list.d/20-default.list
- 四、ERROR:linux bash: /home/huzai/.bashrc: 权限不够
- 五、ROS运行小海龟程序报错:ERROR:Command 'roscore' not found, but can be installed with: apt install python3-roslaunch Please ask your administrator
- 六、linux新建用户并授权
- 七、root用户无法启动vscode 的解决方法
- 八、Linux新建用户无法从图形界面登陆
- 九、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
一、版本注意
安装时注意版本:
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’键回车”
则解决了最初的问题,可以继续输入运行小海龟的程序。
六、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
七、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