From fc8b619e681943455ef2dc30243325c373f6741a Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Tue, 29 Nov 2022 15:45:22 +0800 Subject: [PATCH] RP MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @nophDog https://linux.cn/article-15299-1.html 翻译的很好,很用心。 --- ...ernal Repositories in Ubuntu -Explained.md | 68 ++++++++++--------- 1 file changed, 35 insertions(+), 33 deletions(-) rename {translated/tech => published}/20210805 Installing Packages From External Repositories in Ubuntu -Explained.md (66%) diff --git a/translated/tech/20210805 Installing Packages From External Repositories in Ubuntu -Explained.md b/published/20210805 Installing Packages From External Repositories in Ubuntu -Explained.md similarity index 66% rename from translated/tech/20210805 Installing Packages From External Repositories in Ubuntu -Explained.md rename to published/20210805 Installing Packages From External Repositories in Ubuntu -Explained.md index fa56cf89b8..a0667bb2a2 100644 --- a/translated/tech/20210805 Installing Packages From External Repositories in Ubuntu -Explained.md +++ b/published/20210805 Installing Packages From External Repositories in Ubuntu -Explained.md @@ -3,21 +3,24 @@ [#]: author: "Abhishek Prakash https://itsfoss.com/author/abhishek/" [#]: collector: "lujun9972" [#]: translator: "nophDog" -[#]: reviewer: " " -[#]: publisher: " " -[#]: url: " " +[#]: reviewer: "wxy" +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-15299-1.html" -# 在 Ubuntu 从外部存储库安装软件包 [详解] +详解在 Ubuntu 从外部存储库安装软件包 +====== -你大概知道怎么在 Ubuntu 中使用 apt 命令安装软件包。那些软件包都是来自 Ubuntu 的官方存储库。 +![][0] + +你大概知道怎么在 Ubuntu 中使用 `apt` 命令安装软件包。那些软件包都是来自 Ubuntu 的官方存储库。 那第三方或者外部存储库呢?不,我这里并不是要讲 PPA。 -早晚你会碰到那种至少四行的安装教程。你需要安装名为 `apt-transport-https` 的包,操作一下 gpg 和源列表「source list」之后,你才能正常安装软件包。 +早晚你会碰到那种至少四行的安装说明:你需要安装名为 `apt-transport-https` 的包、操作一下 GPG 和 源列表source list 之后,你才能正常安装软件包。 -没有什么印象的话,那我分享一个[在 Ubuntu 上安装最新版本的 Yarn][1]:的例子 +没有什么印象的话,那我分享一个 [在 Ubuntu 上安装最新版本的 Yarn][1] 的例子: -```shell +``` sudo apt install apt-transport-https curl curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add - sudo sh -c 'echo "deb https://dl.yarnpkg.com/debian/ stable main" >> /etc/apt/sources.list.d/yarn.list' @@ -37,8 +40,6 @@ sudo apt update && sudo apt install yarn * [什么是 Ubuntu 中的存储库][2] * [什么是 Ubuntu 中 PPA][3] - - 为了让你有点印象,这里有一张软件包存储库和 [Linux 中的包管理器][4] 的图片。 ![Illustration of repository and package manager][5] @@ -51,39 +52,39 @@ sudo apt update && sudo apt install yarn 第一行是这样的: -```shell +``` sudo apt install apt-transport-https curl ``` -Curl 是一个[Linux 终端下载文件的工具][6]。这里主要的部分是安装 **apt-transport-https**,但事实上已经不需要了。 +`curl` 是一个 [Linux 终端下载文件的工具][6]。这里主要的部分是安装 `apt-transport-https`,但事实上已经不需要了。 -明白了吗?这个 apt-transport-https 包让你的系统通过 HTTPS 协议安全访问存储库。按照设计,Ubuntu 的存储库使用 http 而不是 https 协议。 +明白了吗?这个 `apt-transport-https` 包让你的系统通过 HTTPS 协议安全访问存储库。按照设计,Ubuntu 的存储库使用 http 而不是 https 协议。 -看看下面的截图。 https 这张是我已经添加到系统中的外部存储库。 Ubuntu 的存储库和 PPA 使用 http 协议。 +看看下面的截图。 https 这张图是我已经添加到系统中的外部存储库。Ubuntu 的存储库和 PPA 使用 http 协议。 ![][7] -在旧版本的 apt 包管理器中,不支持 https 协议。 apt-transport-https 包为 apt 添加了 https 支持。要新增一个使用 https 的存储库,首先就得先安装此包。 +在旧版本的 `apt` 包管理器中,不支持 https 协议。`apt-transport-https` 包为 `apt` 添加了 https 支持。要新增一个使用 https 的存储库,首先就得先安装此包。 -我之前不是说不需要安装这个包了吗?是的,因为较新版本的 apt(高于 1.5)已经支持 https,所以你不需要再安装 apt-transport-https。 +我之前不是说不需要安装这个包了吗?是的,因为较新版本的 `apt`(高于 1.5)已经支持 https,所以你不需要再安装 `apt-transport-https`。 -但是你依然看到我在说明中提到了这个包。这更多是出于遗留原因,而且可能还有很旧的发行版在使用旧版本的 apt 包。 +但是你依然看到我在说明中提到了这个包。这更多是出于遗留原因,而且可能还有很旧的发行版在使用旧版本的 `apt` 包。 现在,你可能想知道既然 https 是安全协议,那为什么 Ubuntu 的存储库还要使用 http 而不是 https。这难道没有安全风险吗?接着往下看你就知道答案了。 #### 第 2 部分:添加远程存储库的 GPG 密钥 -Linux 存储库内置了基于 GPG 密钥的安全机制。每个存储库都将其 GPG 公钥添加到你的系统信任密钥中。来自存储库的包由这个 GPG 密钥“签名”「signed」,并且通过这份存储的公钥,系统能够验证软件包正是来自这个存储库。 +Linux 存储库内置了基于 GPG 密钥的安全机制。每个存储库都将其 GPG 公钥添加到你的系统信任密钥中。来自存储库的包由这个 GPG 密钥“签名signed”,并且通过这份存储的公钥,系统能够验证软件包正是来自这个存储库。 -如果[密钥之间不匹配,你的系统会发出提醒][8],而不会继续从该存储库安装或者更新软件包。 +如果 [密钥之间不匹配,你的系统会发出提醒][8],而不会继续从该存储库安装或者更新软件包。 到目前为止,一切都很顺利。下一步是将外部存储库的 GPG 公钥添加到你的 Linux 系统,以便它能接收来自该存储库的软件包。 -```shell +``` curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add - ``` -在上面的命令中,你使用 curl 从指定的 URL 下载 GPG 密钥。选项 `sS` 能够让你不看多余的输出(静默模式),但会显示错误(如果有的话)。最后一个 `-` 告诉 apt-key 使用标准输入「stdin」而不是文件(在本例中是 curl 命令的输出)。 +在上面的命令中,你使用 `curl` 从指定的 URL 下载 GPG 密钥。选项 `-sS` 能够让你不看多余的输出(静默模式),但会显示错误(如果有的话)。最后一个 `-` 告诉 `apt-key` 使用标准输入stdin而不是文件(在本例中是 `curl` 命令的输出)。 `apt-key add` 命令已经将下载的密钥添加到系统中。 @@ -93,37 +94,37 @@ curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add - 这是将 GPG 密钥添加到系统的一种方法。你会看到一些其它的命令,看起来略有不同,但效果一样,都是将存储库的公钥添加到你的系统里面。 -```shell +``` sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys E298A3A825C0D65DFD57CBB651716619E084DAB9 ``` -你会注意到 apt-key 已被弃用的警告。在 Ubuntu 22.04 之前,你还可以使用 apt-key 命令,但它最终会被删除。现在不需要杞人忧天。 +你会注意到 `apt-key` 已被弃用的警告。在 Ubuntu 22.04 之前,你还可以使用 `apt-key` 命令,但它最终会被删除。现在不需要杞人忧天。 #### 第 3 部分:将外部存储库添加到源列表 下个命令是在系统的源列表中添加一个新条目。这样,你的系统就会知道它得检查该存储库中的包和更新。 -```shell +``` sudo sh -c 'echo "deb https://dl.yarnpkg.com/debian/ stable main" >> /etc/apt/sources.list.d/yarn.list' ``` -有一个文件 /etc/apt/sources.list 包含 Ubuntu 存储库的详细信息。最好不要随便动这个文件。所有新增的存储库都应放在 /etc/apt/sources.list.d 目录中相应的文件里(约定以 .list 结尾)。 +有一个文件 `/etc/apt/sources.list` 包含 Ubuntu 存储库的详细信息。最好不要随便动这个文件。所有新增的存储库都应放在 `/etc/apt/sources.list.d` 目录中相应的文件里(约定以 `.list` 结尾)。 ![External repository should have their own sources list file in the /etc/apt/sources.list.d directory][10] -这使得包管理变得更容易。如果你要从系统中删除一个存储库,只需删除相应的源文件即可。无需修改主 sources.list 文件。 +这使得包管理变得更容易。如果你要从系统中删除一个存储库,只需删除相应的源文件即可。无需修改主 `sources.list` 文件。 让我们再仔细地看一下这行命令。 -```shell +``` sudo sh -c 'echo "deb https://dl.yarnpkg.com/debian/ stable main" >> /etc/apt/sources.list.d/yarn.list' ``` -使用 sh 可以在一个新的 shell 进程中运行命令,而不是 [subshel​​l][11]。 `-c` 选项告诉 sh 命令从参数而不是标准输入读取命令。然后它运行 echo 命令,也就是把 **deb stable main** 这一行添加到 /etc/apt/sources.list.d/yarn.list 文件(会创建该文件) +使用 `sh` 可以在一个新的 shell 进程中运行命令,而不是 [子 shel​​l][11]。 `-c` 选项告诉 `sh` 命令从参数而不是标准输入读取命令。然后它运行 `echo` 命令,也就是把 `deb https://dl.yarnpkg.com/debian/ stable main` 这一行添加到 `/etc/apt/sources.list.d/yarn.list` 文件(会创建该文件)。 -现在,你可以通过各种方法在指定目录中创建 .list 文件并在其中添加包含存储库详细信息的数据行。你也可以像这样使用: +现在,你可以通过各种方法在指定目录中创建 `.list` 文件并在其中添加包含存储库详细信息的数据行。你也可以像这样使用: -```shell +``` echo "deb https://dl.yarnpkg.com/debian/ stable main" | sudo tee /etc/apt/sources.list.d/yarn.list ``` @@ -141,11 +142,11 @@ sudo apt update 这时你的系统就已经知道新增存储库中可用软件包的信息,现在可以试试安装软件包: -```shell +``` sudo apt install yarn ``` -为了节省时间,你可以在[同一行挨着运行这两个命令][12]e。 +为了节省时间,你可以在 [同一行挨着运行这两个命令][12]e。 ``` sudo apt update && sudo apt install yarn @@ -168,7 +169,7 @@ via: https://itsfoss.com/adding-external-repositories-ubuntu/ 作者:[Abhishek Prakash][a] 选题:[lujun9972][b] 译者:[nophDog](https://github.com/nophDog) -校对:[校对者ID](https://github.com/校对者ID) +校对:[wxy](https://github.com/wxy) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 @@ -186,3 +187,4 @@ via: https://itsfoss.com/adding-external-repositories-ubuntu/ [10]: https://i1.wp.com/itsfoss.com/wp-content/uploads/2021/08/sources-list-ubuntu.png?resize=800%2C313&ssl=1 [11]: https://linuxhandbook.com/subshell/ [12]: https://itsfoss.com/run-multiple-commands-linux/ +[0]: https://img.linux.net.cn/data/attachment/album/202211/29/154339id0xb2exw0c8y222.jpg \ No newline at end of file