Ubuntu中添加和修改Apt Repository

使用Ubuntu Software Center或 apt/apt-get等命令行工具安装软件包时,软件包是从一个或多个 apt 软件库(software repositories)下载的。APT repository是一个网络服务器或本地目录,其中包含可被 APT 工具读取的 deb 软件包和元数据文件(deb packages and metadata files)。
Apt Sources (Apt源)
在 Ubuntu 和其他所有基于 Debian 的发行版中,apt 软件仓库都是在 /etc/apt/sources.list 文件或 /etc/apt/sources.list.d/ 目录下的单独文件中定义的。/etc/apt/sources.list.d/目录内的版本库文件名必须以 .list 结尾。
这种list文件 是Linux的高级打包工具(APT: Advance Packaging Tool)的一个配置文件,它保存了安装软件包和应用程序的远程资源库的URL和其他信息。
简单的讲,当安装命令被执行时,例如:apt-get install <package_name>,然后软件包管理系统在/etc/apt/sources.list和/etc/apt/sources.list.d/中寻找远程资源库链接的列表文件,并搜索需要下载的应用程序。
列表文件有两个地方而不是一个,其中一个原因是为了确保数据在系统更新时不会被覆盖/丢失。/etc/apt/source.list可能会在更新中被覆盖,就像发生在/etc/profile上类似。这也是为什么一般放在/etc/profile文件中的自定义配置最好放在/etc/profile.d/目录中。
/etc/apt/sources.list文件的一般语法格式如下: 
The general syntax of the /etc/apt/sources.list file takes the following format:
deb http://repo.tld/ubuntu distro component...
  • 该行的第一个字段定义存档类型。存档类型可以是 deb 或 deb-src。deb 意味着软件源包含 .deb 软件包,已经被编译好了,而 deb-src 则意味着源代码软件包,需要被编译。
  • 第二个字段是版本库 URL。
  • 第三个字段表示发布代码(distribution code)名称,如 beaver、xenial 等。或者说是软件库的版本名称。
  • 最后的字段是软件库的组件或类别。默认的 Ubuntu 软件库分为四个组件:main、restricted、universe 和 multiverse。表明该软件如何提供给终端用户。如果是第三方软件库,一般来说只有一个类别。
打开系统菜单的“Software & Updates”,能看到这四个分类的含义:
  • 由 Canonical 支持的自由和开源软件(主干)
  • 社区维护的自由和开源软件(通用)
  • 设备专有驱动程序(受限)
  • 受版权或法律问题限制的软件(多元)
* Canonical-supported free and open-source software(main)
* Community-maintained free and open-source software (universe)
* Proprietary drivers for devices(restricted)
* Software restricted by copyright or legal issues (multiverse)
/etc/apt/sources.list.d/目录下的文件格式与常规的 sources.list 文件格式相同。
======== 分割线 ========
如何修改Apt repository?
默认的Ubuntu里使用的服务器,都是美国服务器( archive.ubuntu.com)。如果网络延迟(network latency)过高的话,就需要选择一个网速快的镜像网站(mirror )。
第一种自动修改方法(Automatic Way):
1,打开系统菜单,点击 Software & Updates.
2,选择"Download from:",更改为other。
3,在弹出的对话框里,从列表中选择一个服务器。
4,更新索引(Reload)
$ sudo apt-get update
第二种手动修改方法(Manual Way):
1,首先要知道可用的镜像服务器(mirrors)。
2,修改URL地址
将/etc/apt/sources.list中的地址修改成你需要的地址。最简单的方法是使用nano。
$ sudo nano /etc/apt/sources.list  
3,更新索引(Reload)
$ sudo apt-get update
备注:
手动修改sources.list文件之前,最好备份一下,有备无患:
$ sudo cp /etc/apt/sources.list /etc/apt/sources_init.list
======== 分割线 ========
使用系统菜单添加第三方Apt Repository
打开了系统菜单里的“Software & Updates”,里面除了设置软件更新选项外,还能添加第三方软件库。
1,使用Authentication菜单,添加公钥文件,验证下载软件包的有效性。
大多数软件库都会提供一个公钥,用于验证需要下载和导入的软件包。
2,在“Other Software”里,添加第三方软件库的URL。
======== 分割线 ========
使用命令行来手动添加Apt repository
要添加或删除软件库,你需要以具有 sudo 权限的用户或 root 登录。
虽然 Ubuntu 的默认软件库中有成千上万的应用程序,但有时您可能需要从第三方软件库中安装软件。
在 Ubuntu 和 Debian 系统上添加 apt 仓库有两种方法。第一种方法是使用 add-apt-repository 命令,第二种方法是使用文本编辑器手动添加仓库。
Installing add-apt-repository (add-apt-repository command not found ) (安装 add-apt-repository工具
add-apt-repository 是一个 Python 脚本,允许你在 /etc/apt/sources.list 或 /etc/apt/sources.list.d 目录下的单独文件中添加 APT 软件库。该命令也可用于删除已存在的软件库。
如果你的系统上没有 add-apt-repository 命令,你会收到一条错误信息,提示 "add-apt-repository command not found"。
add-apt-repository 工具包含在 software-properties-common 软件包中。要安装它,请运行以下命令:
$ sudo apt update
$ sudo apt install software-properties-common
Adding Repositories with add-apt-repository(使用 add-apt-repository命令添加软件库
add-apt-repository 命令的基本语法如下:
add-apt-repository [options] repository
其中的repository既可以是可以添加到 sources.list 文件的普通软件库条目,比如:deb http://repo.tld/ubuntu distro component,也可以是 ppa:<user>/<ppa-name> 格式的 PPA软件库。
要查看 add-apt-repository 命令的所有可用选项,请在终端输入 man add-apt-repository。
默认情况下,在 ubuntu 18.04 及更高版本中,如果导入了软件库公钥,add-apt-repository 也会更新软件包索引。
软件包索引(package index)是一个数据库,其中记录了当前系统可用软件库中的所有可用软件包。
假设你想从 MongoDB 官方软件库中安装 MongoDB。 首先导入软件库的公钥:
$ sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 9DA31620334BD75D9DCB49F368818C72E52529D4
使用下面的命令添加 MongoDB 存储库:
$ sudo add-apt-repository 'deb [arch=amd64] https://repo.mongodb.org/apt/ubuntu bionic/mongodb-org/4.0 multiverse'
软件库将被添加到 sources.list 文件中。
现在你可以从新启用的软件库中安装任一软件包:
$ sudo apt install mongodb-org
如果出于任何原因,你想移除先前启用的软件库,请使用 --remove 选项:
$ sudo add-apt-repository --remove 'deb [arch=amd64] https://repo.mongodb.org/apt/ubuntu bionic/mongodb-org/4.0 multiverse'
Adding PPA Repositories(添加PPA软件库)
个人软件包存档(PPA)是一项允许用户上传 Ubuntu 源软件包的服务,这些软件包是用 Launchpad 作为 apt 仓库构建和发布的。
Personal Package Archives (PPA) is a service that allows users to upload Ubuntu source packages that are built and published with Launchpad as an apt repository.
添加 PPA软件库时,add-apt-repository 命令会在 /etc/apt/sources.list.d/ 目录下创建一个新文件。
例如,要添加提供 FFmpeg 4.x 版本的 Jonathon F's PPA,可以运行:
$ sudo add-apt-repository ppa:jonathonf/ffmpeg-4
出现提示时按 Enter 键,版本库将被启用。
Press [ENTER] to continue or Ctrl-c to cancel adding it.
PPA版本库公钥将自动下载并注册。
将PPA 添加到系统后,就可以安装软件库的软件包了:
$ sudo apt install ffmpeg
apt 命令将安装软件包及其所有依赖的软件包。
Manually Adding Repositories(手动添加软件库)
如果想对软件库sources的组织方式有更多控制,可以手动编辑 /etc/apt/sources.list 文件,并在文件中添加一条apt软件库信息。
为便于演示,我们将启用 CouchDB 软件库,然后安装该软件。CouchDB 是由 Apache 软件基金会维护的免费开源容错 NoSQL 数据库。
要添加软件库,请使用文本编辑器打开 sources.list 文件:
$ sudo nano /etc/apt/sources.list
在文件末尾添加一行版本库信息:
deb https://apache.bintray.com/couchdb-deb bionic main
与其使用文本编辑器编辑文件,不如使用以下命令将软件库信息行添加到 sources.list 文件中:
$ echo "deb https://apache.bintray.com/couchdb-deb $(lsb_release -cs) main" | sudo tee -a /etc/apt/sources.list
$(lsb_release -cs) 将打印 Ubuntu 的代号。例如,如果您的 Ubuntu 版本为 18.04,该命令将打印 bionic。
另一种方法是在 /etc/apt/sources.list.d/ 目录下创建一个新的软件库文件。
手动配置软件库时,还需要将软件库公共密钥手动导入系统。可以使用 wget 或 curl :
$ curl -L https://couchdb.apache.org/repo/bintray-pubkey.asc | sudo apt-key add -
上述命令应输出 OK,这意味着 GPG 密钥已成功导入,该软件库中的软件包将被视为可信软件包。
从新添加的软件库安装软件包之前,必须更新软件包索引:
$ sudo apt update
软件包索引更新后,你就可以从新添加的软件库安装软件包了:
$ sudo apt install couchdb
Conclusion (总结)
上面已经展示了如何在 Ubuntu 中添加 apt 软件库。同样的说明适用于任何基于 Debian 的发行版,包括 Kubuntu、Linux Mint 和 Elementary OS。
参考:
1,Linuxize
2,Ubuntubuzz
3, Dev.to
  • 25
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

夜流冰

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值