树莓派软件源加速完全攻略(测试Markdown)

2017-09-081.4万
AI 快速预览详细 收起
本文介绍了如何在Raspbian及其衍生系统上设置最快的软件源,通过多线程下载技术加速软件更新,并使用tsocks让任意程序使用地图。首先,通过ccrm脚本查找连接质量最高的三个软件源,并修改sources.list文件。然后,使用apt-fast工具实现多线程下载,加快软件包下载速度。此外,还介绍了如何处理第三方源和使用多个软件源的方法。

前言

原创文章,转载引用务必注明链接。水平有限,如有疏漏,欢迎指正。

最近群里看到好些新入手树莓派的,关于软件源的问题存在疑惑,所以特地写这篇文章,讨论关于软件源的设置问题。

通过本文你将学到:

  • 树莓派的软件源一探
  • 如何查找最快的软件源
  • 如何通过多线程加速软件更新下载
  • 如何使用tsocks让任意程序使用地图

本文仅在Raspbian及其衍生系统(这里是DietPi)上验证。

树莓派软件源探秘

什么是软件源

相当于软件仓库的地址。我们在Windows下安装软件,需要手动到网站去下载,以及安装.Net/C/VB运行环境才行,升级软件也要一个一个去弄,虽然有了各种软件管家,但是基本过程都是一样的。

然而,在Linux下,通过软件包管理系统,可以很方便地一个命令安装升级各种软件,你要做的不过是搜索并安装。而存放软件文件并提供软件目录索引的服务器就是软件仓库。由于世界各地网络情况并不相同,所以有大量软件仓库镜像,方便大家可以方便地选择最近的服务器下载以加快速度,而Debian系的操作系统会把软件仓库的访问地址存在/etc/apt/sources.list里面。/etc是Linux系统存放配置文件的地方,apt是Debian使用的软件包管理系统,用来自动管理软件并满足依赖。sources.list字面意思就是源地址。

一探软件源

我们看看sources.list里面有什么:

cat /etc/apt/sources.list # 内容如下:
deb http://mirrors.ustc.edu.cn/raspbian/raspbian/ jessie main non-free contrib

deb表示deb软件包|软件源地址|系统版本|软件包类型。

  • deb是Debian的软件包格式,类似exe之于Windows,rpm之于RedHat
  • ☆软件源地址:告诉系统去哪里搜索下载软件
  • Debian一般有三个版本oldstable, stable, testing。其中stable是稳定版,目前版本代号jessie,软件包较新,上一版是wheezy。
  • 软件包类型,默认是主要、非自由和贡献。

如何寻找最快的软件源

好多人都会直接说,换个国内源就行啦,然而国内源很多,加上ISP有电信联通等,那么如何找到最快的软件源呢?

可以看我之前写的文章《树莓派笔记之使用netselect选择最快Raspbian软件源》

特地在github上建了个脚本ccrm ,简介如下:

  • 包含Raspbian官方亚洲源,补齐国内软件源
  • 本质是使用netselect命令

运行之后会输出连接质量最高的三个软件源,修改sources.list文件即可,以中国科技大学(ustc)为例,编辑/etc/apt/sources.list文件,删除原文件所有内容,用以下内容取代:

deb http://mirrors.ustc.edu.cn/raspbian/raspbian/ jessie main non-free contrib
deb-src http://mirrors.ustc.edu.cn/raspbian/raspbian/ jessie main non-free contrib

更新源地址之后,还要重建本地软件列表:sudo apt-get update

还有一个拖后腿的

更新过程中发现一个archive.raspbian.org地址访问速度很慢,但是sources.list里面并没有看到这个地址,原来/etc/apt/sources.list.d里面还有东西。

d代表directory目录的意思,该目录下存放第三方源,作为主源的补充。

内容如下:

我们搜索了之后发现ustc有该源的镜像,修改/etc/apt/sources.list.d/raspi.list为以下内容:

deb https://mirrors.ustc.edu.cn/archive.raspberrypi.org/ jessie main ui

此时再执行sudo apt-get update会发现速度大大提升。

加速软件包下载

apt-fast多线程下载

迅雷、旋风之类的工具要比用IE浏览器下载文件速度快很多,这是因为他们使用了多线程下载技术,从服务器下载文件时,会将一个文件分为多个文件块同时下载,然后在本地合并成完整的文件,这相比于单线程从头下载要快很多。同样的,apt系统默认单文件从头下载,我们如果使用多线程方式可以加快下载速度,当然如果你本身下载就很快的话就不要这么做了,毕竟会加大服务器负担。

该工具使用shell脚本配合Linux下流行的下载工具aria2实现加速下载的作用。

安装使用apt-fast

# 自动下载安装apt-fast(会自动安装aria2和git)
sudo /bin/bash -c "$(curl -sL http://dwz.cn/5nTqJK)"

完成以上命令即可使用apt-fast代替apt-get命令,如

apt-fast update
apt-fast upgrade
apt-fast install XXX
apt-fast clean

使用多个软件源

我们可以修改/etc/apt-fast.conf配置文件,增加多个软件源地址,相当于多服务器加速下载,但是务必保证各个软件源同步上游进度一致,否则可能会出现软件包依赖环境不满足或者冲突的问题。

其他软件源

常用的还有Node.js, 这个可以使用淘宝源或者ustc。

终极大法tsocks



创作许可协议

本项目采用 None(不开放任何权利,保留所有权利) 进行许可。

评论(1)
pATAq
pATAq
作者
@Ash 效果很棒,非常感谢!
Ash1
Ash1回复pATAq
呦吼~ 好棒!
感谢测试反馈~
- 没有更多了 -