通过 PPA 升级 Git
【摘要】 1. PPA 是什么PPA(Personal Package Archive)是 Ubuntu/Debian 生态中由 Launchpad 平台托管的个人软件包仓库。它允许开发者或团队在 Ubuntu 官方仓库之外发布更新版本的软件包。 核心特点特点说明托管平台Launchpad(Canonical 运营)地址格式ppa:<用户或团队>/<仓库名>与 apt 的关系作为额外软件源添加到 a...
1. PPA 是什么
PPA(Personal Package Archive)是 Ubuntu/Debian 生态中由 Launchpad 平台托管的个人软件包仓库。它允许开发者或团队在 Ubuntu 官方仓库之外发布更新版本的软件包。
核心特点
| 特点 | 说明 |
|---|---|
| 托管平台 | Launchpad(Canonical 运营) |
| 地址格式 | ppa:<用户或团队>/<仓库名> |
| 与 apt 的关系 | 作为额外软件源添加到 apt 源列表中 |
| 安全性 | 包由上传者签名,系统通过 GPG 密钥验证 |
| 适用场景 | 官方仓库版本过旧,需要上游最新版 |
PPA vs 官方仓库
此次我使用的容器里面OS就比较老,是ubuntu 20.04
官方仓库 (focal-updates)
└── git 2.25.1 ← Ubuntu 20.04 锁定在此版本
PPA (git-core/ppa)
└── git 2.50.1 ← Git 上游团队持续发布最新版
Ubuntu 的 LTS 发行版在发布后,软件版本基本冻结,只做安全补丁回移。如果需要上游最新功能,PPA 是最标准的方式。
2. Git 官方 PPA
Git 项目维护了一个专用 PPA:
ppa:git-core/ppa
- 维护者:Git 上游社区
- 支持架构:amd64, arm64 等
- 支持发行版:每个 Ubuntu 版本都有对应构建
- 更新频率:跟随 Git 上游每个新版本发布
3. 升级步骤详解
第一步:安装依赖工具
apt-get update
apt-get install -y software-properties-common
software-properties-common 提供 add-apt-repository 命令,用于管理 PPA 源。
第二步:添加 PPA 源
add-apt-repository -y ppa:git-core/ppa
这条命令做了三件事:
- 下载 PPA 的 GPG 公钥并加入信任密钥环
- 在
/etc/apt/sources.list.d/下创建.list文件,写入 PPA 的 deb 源地址 - 自动执行
apt-get update刷新包索引
执行后可以在 /etc/apt/sources.list.d/ 中看到类似文件:
git-core-ubuntu-ppa-focal.list
内容为:
deb http://ppa.launchpad.net/git-core/ppa/ubuntu focal main
第三步:安装/升级 Git
apt-get update
apt-get install -y git
apt 会自动选择版本最高的可用包,即 PPA 中的新版本。
完整一键命令
apt-get update -qq && \
apt-get install -y -qq software-properties-common && \
add-apt-repository -y ppa:git-core/ppa && \
apt-get update -qq && \
apt-get install -y -qq git
4. 本次操作实录
环境
- 系统:Ubuntu 20.04 (focal) on ARM64
- 升级前:git 2.25.1(Ubuntu 20.04 官方仓库版本)
- 升级后:git 2.50.1
升级原因
本次需要运行 clone_sparse.sh,该脚本使用了以下较新 Git 特性:
| 特性 | 所需最低版本 | 说明 |
|---|---|---|
git clone --filter=blob:none |
2.22+ | 部分 clone,不下载文件内容 |
git clone --sparse |
2.27+ | clone 时即启用 sparse-checkout 模式 |
git sparse-checkout set |
2.25+ | 设置稀疏检出路径 |
Git 2.25.1 不支持 --sparse 参数,因此必须升级。
升级过程
$ git --version
git version 2.25.1
$ add-apt-repository -y ppa:git-core/ppa
... 下载 GPG 密钥和包索引 ...
$ apt-get install -y git
Unpacking git (1:2.50.1-0ppa1~ubuntu20.04.1) over (1:2.25.1-1ubuntu3.14) ...
Setting up git (1:2.50.1-0ppa1~ubuntu20.04.1) ...
$ git --version
git version 2.50.1
升级后运行脚本
bash ./clone_sparse.sh
仓库 sparse clone 成功。
5. 注意事项
- 生产环境慎用:PPA 包不受 Ubuntu 官方安全团队审计,生产环境建议评估风险
- 版本回退:如需回退,执行
add-apt-repository --remove ppa:git-core/ppa后重新安装 - 仅限 Ubuntu/Debian:其他发行版使用各自的包管理方式(如 Fedora 用 COPR,Arch 直接滚动更新)
- ARM64 支持:git-core/ppa 提供 arm64 构建,在 ARM 服务器上可直接使用
【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)