apt与存储库
apt与存储库.mdapt是Debian及其派生系统的包管理系统,软件包存储库(简称repo)是存储软件包并可从中检索的位置。apt利用存储库中的软件包信息来管理系统软件的安装和升级。
存储库可以是二进制的或源代码的,可以是自动的或普通的。它也可以在线或离线(例如在 CD-ROM 上),但前者更常见。此外,存储库可以是官方的(由 Debian 或 Ubuntu/Canonical 维护)或非官方的(第三方)。
1.存储库配置文件
- 存储库在 /etc/apt/sources.list 配置文件或存储在 /etc/apt/sources.list.d 目录下的文件中定义。每个 repo 文件必须以
.list
扩展名结尾。
- 存储库大致语法如下:
deb [options] uri suite [component1] [component2] [...]
OR
deb-src [options] uri suite [component1] [component2] [...]
deb
: 表明这是一个二进制存储库,deb-src
表明源代码存储库。[options]
: 可选项,可以包括存储库的特殊属性,如arch=amd64
指定架构,或者trusted=yes
指明信任此存储库。uri
: 存储库的URI,可以是HTTP、HTTPS、FTP或者文件路径(对于本地仓库)。suite
: 存储库的分支或版本,比如focal
对应Ubuntu 20.04。[component]
: 通常是main
、restricted
、universe
、multiverse
中的一个或多个,指定软件的自由程度或非自由程度。
如下是一个Ubuntu官方存储库的例子:
deb http://us.archive.ubuntu.com/ubuntu/ focal main restricted
2.手动添加apt存储库
推荐使用/etc/apt/sources.list.d/
目录来添加新的存储库。这种方法的模块化程度更高,使得维护和管理更加灵活和有序。
编辑
/etc/sources.list.d/yourrepo.list
文件,或者使用tee命令,以R 软件环境包存储库为例:echo "deb https://cloud.r-project.org/bin/linux/ubuntu focal-cran40/" | sudo tee /etc/apt/sources.list.d/r-packages.list
添加存储库密钥
追加密钥到
/etc/apt/trusted.gpg.d/
目录下wget -qO- https://cloud.r-project.org/bin/linux/ubuntu/marutter_pubkey.asc | sudo tee -a /etc/apt/trusted.gpg.d/cran_ubuntu_key.asc
使用
gpg
与单独的密钥环文件(推荐方法),更易管理,避免全局信任,更安全curl -fsSL https://repository.example.com/public.key | sudo gpg --dearmor -o /usr/share/keyrings/my-repo-archive-keyring.gpg
在
sources.list
或sources.list.d/
中的存储库条目中指定密钥环deb [signed-by=/usr/share/keyrings/my-repo-archive-keyring.gpg] http://repository.example.com/ suite main
更新
sudo apt update
3.apt-add-repository
add-apt-repository 命令行实用程序用于将存储库添加到 /etc/apt/sources.list 文件或 /etc/apt/ sources.list.d 目录。如果存储库已经存在,它可以使用 -r
标志将其删除。
# 如果不存在这个命令,可以使用下面的命令进行安装
sudo apt install software-properties-common
- PPA
PPA(Personal Package Archive),是由Launchpad提供的一项服务,允许个人用户和团队上传Ubuntu源代码包来构建并发布为APT存储库。
apt-add-repository就通常用来添加PPA存储库
apt-add-repository和修改sources.list文件区别
它们在最终结果上是相同的,即都会指导APT从指定的URL获取软件包,但在使用上有一些区别:
apt-add-repository:
apt-add-repository
是一个高级命令,它不仅会将存储库添加到sources.list.d
下的一个新文件中,而且还会自动导入存储库的公钥(仅限标准PPA,如果可用)。- 这个命令通常更方便,因为它简化了添加存储库的过程。
- 它还支持通过PPA(Personal Package Archives)添加存储库,使用类似
ppa:user/repository
的语法。 - 运行
apt-add-repository
后,它通常会自动运行apt update
来刷新软件包列表。
修改 sources.list 或添加 .list 文件:
- 这是一种更手动的方法,你需要直接编辑配置文件或创建新文件。
- 在某些情况下,这可以给你更细致的控制,例如,当你需要添加一个特定的存储库分支或区段时。
- 你需要手动导入存储库的公钥,除非它已经被包含在系统的密钥环中。
- 修改文件后,你需要手动运行
apt update
。
例子
sudo add-apt-repository "deb https://cloud.r-project.org/bin/linux/ubuntu $(lsb_release -cs)-cran40/" wget -qO- https://cloud.r-project.org/bin/linux/ubuntu/marutter_pubkey.asc | sudo tee -a /etc/apt/trusted.gpg.d/cran_ubuntu_key.asc # 或者使用gpg与密钥环 sudo add-apt-repository "deb [signed-by=/usr/share/keyrings/cran-archive-keyring.gpg] https://cloud.r-project.org/bin/linux/ubuntu $(lsb_release -cs)-cran40/" wget -qO- https://cloud.r-project.org/bin/linux/ubuntu/marutter_pubkey.asc | gpg --dearmor | sudo tee /usr/share/keyrings/cran-archive-keyring.gpg >/dev/null ## $(lsb_release -cs) 会被替换为当前运行的Ubuntu版本的代号,例如 focal
# 添加 Shutter 截图工具的官方 PPA sudo add-apt-repository ppa:shutter/ppa sudo apt-get update sudo apt install shutter # 删除仓库 sudo add-apt-repository -r ppa:shutter/ppa
4.仓库推荐
以下仓库仅作示例,需根据自己系统的版本号和架构做出对应修改
Ubuntu官方存储库
deb http://us.archive.ubuntu.com/ubuntu/ focal main restricted universe multiverse deb-src http://us.archive.ubuntu.com/ubuntu/ focal main restricted universe multiverse
Ubuntu 安全更新存储库
deb http://security.ubuntu.com/ubuntu focal-security main restricted universe multiverse deb-src http://security.ubuntu.com/ubuntu focal-security main restricted universe multiverse
Debian 官方存储库
deb http://deb.debian.org/debian/ bullseye main contrib non-free deb-src http://deb.debian.org/debian/ bullseye main contrib non-free
Debian 安全更新存储库
deb http://security.debian.org/debian-security bullseye-security main contrib non-free deb-src http://security.debian.org/debian-security bullseye-security main contrib non-free
deb https://deb.nodesource.com/node_$NODE_MAJOR.x nodistro main
deb https://packages.sury.org/php/ $(lsb_release -sc) main
Docker 官方存储库
deb [arch=amd64] https://download.docker.com/linux/ubuntu focal stable
5.国内镜像源
对于国内镜像站,每个网站都有自己详细的配置方法,此处仅列出官网地址
- 阿里云官方镜像站
- 腾讯软件源,帮助文档
- 清华大学开源软件镜像站,帮助文档
- Another infinity(中科大开源软件镜像),帮助文档
- 网易开源镜像站,帮助文档
- 上海交通大学Linux 用户组软件源镜像服务,帮助文档
- 北京大学开源镜像站,帮助文档
Markdown文件附件:点击下载

微信支付

支付宝支付