RoboMaster视觉教程Linux(一)保姆级换源教程
感觉Linux的平台学习最好的方法是直接使用Linux系统,什么命令不懂就学习什么命令,如果身边能有一个比较了解Linux的同学,有什么不会的直接请教。学习的速度会大大加快!
像一些书比如《鸟哥的Linux私房菜》,《Linux就该这么学》都比较厚,看了也不一定用得上。如果一定要看,感觉《Linux就该这么学》要更易读一些。
基本指令本系列就不说了。用着用着就会了。除了各种指令,还有Linux下Gcc以及Clang的编译,也应该掌握基本内容。
首先说换源,因为这个东西很重要,但是出错还很坑爹。
文章目录
- 3.1 档案类型(Archive type)
- 3.2 仓库地址 (Repository URL)
- 3.3 发行版 (Distribution)
- 3.4 软件包分类 (Component)
一 为什么要换源
拿Ubuntu来说,安装软件一般使用sudo apt install panckage-name
命令,而ubuntu 的默认软件源是美国的,所以下载起来特别慢,所以需要将软件下载的源改成国内。
所谓换源,其实就是更改软件下载的网址,从美国网址换到国内网址。而所谓的源(网址)保存在/etc/apt/sources.list中。
二 注意事项
不要直接粘贴复制更改sources.list中的内容。
因为不同的系统,不同的硬件平台,sources.list中的内容都不一样。
比如有的平台网址前面试http,有的是https,如果不搭配就会报一个关于https的错误。需要运行
从而能够使用HTTPS,但这时你可能已经改了sources.list文件,那么你的apt就用不了了。所以陷入死循环。不要轻易复制粘贴
三 sources.list文件解析
Ubuntu使用apt来管理软件包,apt可以将软件库存储在如下文件中:
/etc/apt/sources.list和/etc/apt/sources.list.d/*.list
sources.list储存Ubuntu官方软件。/etc/apt/sources.list.d/
目录下的*.list
文件为在单独文件中写入源的地址提供了一种方式,通常用来安装第三方的软件。
我们换源是换sources.list,关于第三方软件的安装,我们需要自己写入apt repository,一般没有多余的选择。
随便打开一个sources.list文件(已经换为USTC的源):
以字符’#'开头的行代表该行是一行注释
不以’#'开头的行是apt repository,
每一个apt仓库可以分为档案类型、仓库地址、四大部分。
3.1 档案类型(Archive type)
条目的第一个词 deb 或是 deb-src 表明了所获取的软件包档案类型。
deb: 二进制包仓库
deb-src: 二进制包的源码库
我们一般是使用deb包直接安装。所以有的人换源的时候只更改deb,deb-src直接注释掉了。我觉得还是都保留吧。
3.2 仓库地址 (Repository URL)
条目的第二个词就包所在的地址,可以是网络地址,也可以是本地的镜像地址。
换源就是更改这个网址,所以其他三大部分不要改,只改这个部分,更换仓库地址为其他地理位置更靠近自己的镜像来提高下载速度
一般阿里云的时延低,我都换成阿里云。
3.3 发行版 (Distribution)
跟在仓库地址后的是发行版。许多系统使用Linux内核,这些使用Linux内核的系统成为发行版。
发行版有两种分类方法,一类是发行版的具体代号,如 xenial
,trusty
, precise
等;还有一类则是发行版的发行类型,如oldstable
, stable
, testing
和 unstable
。
另外,在发行版后还可能有进一步的指定,如 xenial-updates
, trusty-security
, stable-backports
等。
可以用命令lsb_release -sc来查看当前系统的代号。
3.4 软件包分类 (Component)
debian和Ubuntu有着不的分类。
拿Ubuntu来说:
自由软件 | 非自由软件 | |
官方支持的 | Main | Restricted |
非官方,社区支持 | Universe | Multiverse |
PS:当然,大家可能已经发现最上面的示例,URL网址后是五个字符串:他们除了指明了按发行版和软件包类型之外,其实还是那个网址里面的五个文件夹。表示从对应文件夹下载。大家可以打开URl看一下。
四 最佳换源步骤
注意:在更改sources.list之前,最好先备份一下:
1.修改sourses.list
在输入sudo gedit sources.list后,会打开这个sources.list文件,把cn.archive.ubuntu(其他人的电脑可能是id.archive.ubuntu或者是ports.ubuntu security.ubuntu
)换成mirrors.aliyun
其实就是将http://与/ubuntu之间的内容改为mirrors.aliyun.com。(或者是https://与/ubuntu之间的内容)
比如,原来是
deb http://cn.archive.ubuntu.com/ubuntu/ bionic-proposed main restricted universe multiverse
改为
deb http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse
2.换源后更新
正常情况下,上面的指令可以很方便地执行,但是也有可能出错。出的错有太多种可能。这里放置一个链接,大家如果有错可以从这里找,或者干脆百度。
五 测试是否成功
怎么测试呢?只要你安装下面这些库成功了。那么就是换源成功。一些库很有用
六 报错参考集锦
6.1 报错如:
比如说缺少公钥publickey,还有无法fetch等等,我按照上面进行过的步骤删除或者添加公钥,最后也没有成功。这些错误是一起报出来的,但是像我这样一个个上网搜索,按照网络教程弄,最后能够达到不报错的目的,但是更新完后不成功。
如果按照每一个报错提示上网搜索解决方案其实没用。
最终做法是在sources.list.d文件夹里删除了ros-latest.list和bzindovic-ubuntu-suitesparse-bugfix-1319687-xenial.list这两个东西就成功了。秘钥什么的不用管
删除这些东西之后,再次执行
sudo apt clean
sudo apt update
sudo apt upgrade
6.2 Temporary failure resolving ‘mirrors.aliyun.com’
是没有设置好dns 设置dns链接
也可以用移动之后重命名的方式
6.3 manifold网络报错
这个无法连接有可能是网络不好,登录百度或者ping一下看看网络连接
6.4 无法获取 dpkg 前端锁 (/var/lib/dpkg/lock-frontend),是否有其他进程正占用它?
微信公众号
欢迎大家关注我的个人公众号,现阶段主要总结Robomaster相关的计算机视觉知识。
公众号名称:三丰杂货铺