apt与apt-get是Ubuntu最常用的软件安装指令,二者之间的差异其实很小,绝大部分的功能与语法是一样的,对初学者来说用 apt 可以少打几个字符,比较简单。如果想要深入探索二者之间的差异,请自行到百度上搜索。
因为系统的安装是需要 root 身份,因此实际的执行指令都需要由“sudo”与”apt”二者结合,后面再根据功能添加“install(安装)“、”update(更新)“、”search(搜索)“、”autoremove(完全删除)“等指令。
建议实际执行时可以添加”-y“参数,强制”同意“执行,省掉在过程中还得接受系统询问(Y/n)的选项。在撰写 .sh 批量执行脚本时,这个”-y“参数就会非常有用,一连串的指令能顺利执行而不受中断。
apt/apt-get的源列表存放在 /etc/apt/sources.list 这个纯文字档里面,需要root身份才能进行编辑,我们使用gedit这个全文编辑器会比较方便,包括搜索、复制、粘贴等动作都十分轻松,非常类似Windows的Notepad这个编辑器。
首先启动一个终端,执行以下指令看一下 /etc/apt/sources.list内容:
1 | $ sudo gedit /etc/apt/sources.list |
---|
会看到如下截屏的内容(部分),可以看到这里的列表全部的都指到境外的原始服务器“http://ports.ubuntu.com/ubuntu-ports/”,这会影响我们的下载速度,需要修改。
网上有非常多修改Ubuntu源的教程,不过这边必须特别提醒,需要注意Ubuntu的版本与CPU架构的组合,如果使用错误会导致后面更多的错误,这点需要非常小心。
国内的搭建源服务器的单位非常多,绝大部分是学术单位为主,也有一些商业单位所搭建的镜像服务器也是不错的。经过长期的体验之后,本书推荐清华大学与中科大这两所国内科技尖端学府的服务器,稳定性与性能是比较好的。不过这些都可能因为区域差异而产生不同的效果,最好根据自己的体验去进行修改,没有绝对的好与坏。
这里以清华大学源为例,访问 https://mirrors.tuna.tsinghua.edu.cn/ ,然后在”搜索“栏位中输入”Ubuntu“,看到如下截屏将Ubuntu相关的部分都列出来。
由于Jetson Nano属于ARM版的Ubuntu,必须选择”ubuntu-ports”的部分,如果选择第一个“ubuntu”部分,后面会导致apt更新与安装失败!接着点选”ubuntu-ports”旁边的“?”链接,会进到https://mirrors.tuna.tsinghua.edu.cn/help/ubuntu-ports/网页,这里是我们需要的内容。
先看最下方的说明,确认这里提供的镜像内容与Jetson Nano需要的版本是一致的,然后在上方“选择你的Ubuntu版本”右方选择正确的版本。检查都正确无误之后,就能将框框内的内容透过鼠标邮件的复制、粘贴功能,添加到 /etc/apt/sources.list 最前面(如下图),然后存档推出编辑即可。
【注意】网上有些教程告诉大家用“替代”的方式,就是将原本的列表都删除,只保留清华源列表。这种方式经过验证会产生不少错误,比较好的方式是“添加列表”而不是“取代”,这点需要特别强调。
(修改后的 /etc/apt/sources.list)
修改完后记得执行以下指令,让系统更新一下。
1 | $ sudo apt update |
---|
添加pip2/pip3境内源列表
pip2/pip3是python2/python3最重要的软件安装工具,使用之前需要先执行以下指令进行安装:
12 | $ sudo apt update$ sudo apt install -y python-pip python3-pip |
---|
pip2/pip3与apt/apt-get有类似的境外源性能问题,这里同样选择清华大学所提供的境内源,同样登录 https://mirrors.tuna.tsinghua.edu.cn/ ,然后在”搜索“栏位中输入”pypi“,就会出现下面截图。
同样点选“?”链接进入https://mirrors.tuna.tsinghua.edu.cn/help/pypi/,就会出现下面的指导说明,只要按照指导去执行就可以了。
1. 临时使用:
每次执行pip3 install时都加上 -i https://pypi.tuna.tsinghua.edu.cn/simple ,来将使用的源指向境内的源,可以提升安装的性能与成功率。例如
1 | $ sudo pip3 install jetson-stats -i https://pypi.tuna.tsinghua.edu.cn/simple |
---|
2. 设为默认:
一次性地将pip3 install 的源指向https://pypi.tuna.tsinghua.edu.cn/simple,就不用每次都需要输入 -i https://pypi.tuna.tsinghua.edu.cn/simple,
1 2 | $ sudo pip3 config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple$ sudo -H pip3 install jetson-stats |
---|
【注意1】在python的世界里,版本问题经常是容易混淆的。Jetson Nano安装的Ubuntu 18.04自带python 2.7与python 3.6两个版本,对应的pip工具也有版本的分别。有些机器上的pip指令对应到python2.7,有些则对应到3.6,这该如何区隔?
建议 1:执行下面指令,识别pip指令所对应的python版本
1 | $ sudo pip3 --version |
---|
看看显示的信息是下面哪个?
12 | pip 20.2.4 from /usr/local/lib/python2.7/dist-packages/pip (python 2.7)pip 20.0.2 from /usr/local/lib/python3.6/dist-packages/pip (python 3.6) |
---|
建议 2:直接使用 pip2 指令对应 python 2.7、用 pip3 指令对应 python3.6,这是最简单不会产生混淆的用法。
【注意2】可能有人发现到,有些地方使用”sudo -H“有些地方则不用,到底该如何选择?
建议:使用pip如果不加”sudo -H”的话,则安装的环境只针对该用户有效。如果一台设备有多人使用的话,为了避免环境与版本之间的冲突,就最好”不使用sudo -H”;如果只有一个用户使用的话,则推荐使用”sudo -H”来安装,这样更为容易管理些。