自制 PPA 国内加速镜像

最近把服务器系统从 CentOS 更改为 Ubuntu,Ubuntu 系统本身的源可以用阿里云或者 tuna 的镜像,速度很快很稳定。但是搜了一圈却没有发现有 ppa 的镜像,更别说国内的镜像了。ppa 上有许多官方仓库中没有的包,或者官方仓库并不提供某些包的最新版本,但可以在 ppa 上找到,比如官方源里的 php 版本目前是 7.0,而 ppa 上的是 7.1

在 google 的搜索结果中发现了一份 gist 代码,功能就是制作一个 ppa 镜像,简单看了下代码,发现是使用 wget 命令直接递归下载 ppa 服务器上的文件,这说明 ppa 仓库就是一堆静态文件。

这就很简单了,用国内 CDN 指向 ppa 域名即可。经过测试,国内阿里云的 CDN 回源速度比较理想,在阿里云 CDN 控制台创建一个新的 CDN 域名,如 ppa.leo108.com,源站类型选择“源站域名”,填入 ppa.launchpad.net,端口 80 即可。等 CDN 配置完成,将 ppa.leo108.com cname 到指定的域名就完成了 CDN 的配置。

接下来测试一下这个镜像能否正常运行:

1.在服务器上执行 LC_ALL=C.UTF-8 add-apt-repository -y ppa:ondrej/php 添加一个 ppa 的 php 源。
2.修改 /etc/apt/sources.list.d/ppa_ondrej_php_{{ distribution_release }}.list 文件,将里面的 ppa.launchpad.com 替换为 ppa.leo108.com
3.执行 apt update && apt install -y php7.1-cli

目测平均下载速度在 200K 以上,比起直连 ppa 还是要稳定得多。

注:

add-apt-repository 命令会自动添加 ppa 仓库的 pgp key 到系统中。如果直接修改 sources.list 则在执行 apt install 的时候会提示 The following signatures couldn't be verified because the public key is not available: NO_PUBKEY XXXX,这种情况下需要执行 apt-key adv --keyserver keyserver.ubuntu.com --recv-keys KEY_ID,再次执行 install 即可。

本作品采用《CC 协议》,转载必须注明作者和本文链接
本帖由 Summer 于 6年前 加精
leo
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
讨论数量: 4
codejam

支持

6年前 评论

失效了,推荐另一个网友自建的ppa源lanuchpad.moruy.cn,目前还能用

4年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!