2017-9-8 23:12:34 [显示全部楼层]
10121浏览
查看: 10121|回复: 2

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

[复制链接]

前言

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

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

通过本文你将学到:

  • 树莓派的软件源一探
  • 如何查找最快的软件源
  • 如何通过多线程加速软件更新下载
  • 如何使用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



pATAq  版主
 楼主|

发表于 2017-9-8 23:13:02

@Ash 效果很棒,非常感谢!
回复

使用道具 举报

Ash  管理员

发表于 2017-9-11 10:13:32

pATAq 发表于 2017-9-8 23:13
@Ash 效果很棒,非常感谢!

呦吼~ 好棒!
感谢测试反馈~
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

为本项目制作心愿单
购买心愿单
心愿单 编辑
[[wsData.name]]

硬件清单

  • [[d.name]]
btnicon
我也要做!
点击进入购买页面
上海智位机器人股份有限公司 沪ICP备09038501号-4

© 2013-2024 Comsenz Inc. Powered by Discuz! X3.4 Licensed

mail