PRF:20181030 How Do We Find Out The Installed Packages Came From Which Repository.md

@zianglei
This commit is contained in:
Xingyu.Wang 2018-11-22 21:42:44 +08:00
parent b154300e89
commit fff96d9d85

View File

@ -1,4 +1,5 @@
# 我们如何得知安装的包来自哪个仓库?
我们如何得知安装的包来自哪个仓库?
==========
有时候你可能想知道安装的软件包来自于哪个仓库。这将帮助你在遇到包冲突问题时进行故障排除。
@ -6,7 +7,7 @@
在 Linux 上一切都是可能的,因为你可以安装一个即使在你的发行版系统上不能使用的包。
你也可以安装一个最新版本的包即使你的发行版系统仓库还没有这个版本,怎么做到的呢?
你也可以安装一个最新版本的包即使你的发行版系统仓库还没有这个版本,怎么做到的呢?
这就是为什么出现了第三方仓库。它们允许用户从库中安装所有可用的包。
@ -14,11 +15,11 @@
下面是常用的仓库列表和它们的详细信息。
* **`CentOS:`** [EPEL][2], [ELRepo][3] 等是 [Centos 社区认证仓库](4)。
* **`Fedora:`** [RPMfusion repo][5] 是经常被很多 [Fedora][6] 用户使用的仓库。
* **`ArchLinux:`** ArchLinux 社区仓库包含了来自于 Arch 用户仓库的已经被信任用户 ( Trusted User ) 审核通过的软件包。
* **`openSUSE:`** [Packman repo][7] 为 openSUSE 提供了各种附加的软件包,特别是但不限于那些在 openSUSE Build Service 应用黑名单上的与多媒体相关的应用和库。它是 openSUSE 软件包的最大外部软件库。
* **`Ubuntu:`** Personal Package Archives (PPAs) 是一种软件仓库。开发者们可以创建这种仓库来分发他们的软件。你可以在 PPA 导航页面 PPAs Launchpad page 找到相关信息。同时,你也可以启用 Cananical 合作伙伴软件仓库。
* CentOS [EPEL][2]、[ELRepo][3] 等是 [Centos 社区认证仓库](4)。
* Fedora [RPMfusion 仓库][5] 是经常被很多 [Fedora][6] 用户使用的仓库。
* ArchLinux ArchLinux 社区仓库包含了来自于 Arch 用户仓库的可信用户审核通过的软件包。
* openSUSE [Packman 仓库][7] 为 openSUSE 提供了各种附加的软件包,特别是但不限于那些在 openSUSE Build Service 应用黑名单上的与多媒体相关的应用和库。它是 openSUSE 软件包的最大外部软件库。
* Ubuntu个人软件包归档PPA是一种软件仓库。开发者们可以创建这种仓库来分发他们的软件。你可以在 PPA 导航页面找到相关信息。同时,你也可以启用 Cananical 合作伙伴软件仓库。
### 仓库是什么?
@ -28,7 +29,7 @@
每个厂商都提供了各自的包管理工具来管理它们的仓库,例如搜索、安装、更新、升级、删除等等。
大部分 Linux 发行版除了 RHEL 和 SUSE 以外都是免费的。要访问付费的仓库,你需要购买订阅
除了 RHEL 和 SUSE 以外大部分 Linux 发行版都是自由软件。要访问付费的仓库,你需要购买其订阅服务
### 为什么我们需要启用第三方仓库?
@ -38,13 +39,13 @@
这可以通过很多方法实现。我们会给你所有可能的选择,你可以选择一个对你来说最合适的。
### 方法-1使用 Yum 命令
#### 方法-1使用 yum 命令
RHEL 和 CentOS 系统使用 RPM 包因此我们能够使用 [Yum 包管理器][8] 来获得信息。
RHEL 和 CentOS 系统使用 RPM 包因此我们能够使用 [Yum 包管理器][8] 来获得信息。
YUM 即 Yellodog UpdaterModified 是适用于基于 RPM 的系统例如 Red Hat Enterpise Linux RHEL和 CentOS 的一个开源命令行前端包管理工具。
YUM 即 “Yellodog Updater, Modified” 是适用于基于 RPM 的系统例如 RHEL 和 CentOS 的一个开源命令行前端包管理工具。
Yum 是从发行版仓库和其他第三方库中获取、安装、删除、查询和管理 RPM 包的一个主要工具。
`yum` 是从发行版仓库和其他第三方库中获取、安装、删除、查询和管理 RPM 包的一个主要工具。
```
# yum info apachetop
@ -67,12 +68,11 @@ Description : ApacheTop watches a logfile generated by Apache (in standard commo
: fields in combined) and generates human-parsable output in realtime.
```
`apachetop` 包来自 EPEL 仓库。
**`apachetop`** 包来自 **`epel repo`**。
#### 方法-2使用 yumdb 命令
### 方法-2使用 Yumdb 命令
Yumdb info 提供了类似于 yum info 的信息但是它又提供了包校验和数据、类型、用户信息(谁安装的软件包)。从 yum 3.2.26 开始yum 已经开始在 rpmdatabase 之外存储额外的信息( user 表示软件是用户安装的dep 表示它是作为依赖项引入的)。
`yumdb info` 提供了类似于 `yum info` 的信息但是它又提供了包校验和数据、类型、用户信息(谁安装的软件包)。从 yum 3.2.26 开始yum 已经开始在 rpmdatabase 之外存储额外的信息user 表示软件是用户安装的dep 表示它是作为依赖项引入的)。
```
# yumdb info lighttpd
@ -93,11 +93,11 @@ lighttpd-1.4.50-1.el7.x86_64
var_uuid = ce328b07-9c0a-4765-b2ad-59d96a257dc8
```
**`lighttpd`** 包来自 **`epel repo`**
`lighttpd` 包来自 EPEL 仓库
### 方法-3使用 RPM 命令
#### 方法-3使用 rpm 命令
[RPM 命令][9] 即 Red Hat Package Manager 是一个适用于基于 Red Hat 的系统(例如 RHEL, CentOS, Fedora, openSUSE & Mageia的强大的命令行包管理工具。
[RPM 命令][9] 即 Red Hat Package Manager 是一个适用于基于 Red Hat 的系统(例如 RHEL、CentOS、Fedora、openSUSE & Mageia的强大的命令行包管理工具。
这个工具允许你在你的 Linux 系统/服务器上安装、更新、移除、查询和验证软件。RPM 文件具有 .rpm 后缀名。RPM 包是用必需的库和依赖关系构建的,不会与系统上安装的其他包冲突。
@ -126,11 +126,12 @@ combined logformat, although it doesn't (yet) make use of any of the extra
fields in combined) and generates human-parsable output in realtime.
```
**`apachetop`** 包来自 **`epel repo`**
`apachetop` 包来自 EPEL 仓库
### Method-4: Using Repoquery Command
#### 方法-4使用 repoquery 命令
`repoquery` 是一个从 YUM 库查询信息的程序,类似于 rpm 查询。
repoquery 是一个从 YUM 库查询信息的程序,类似于 rpm 查询。
```
# repoquery -i httpd
@ -150,13 +151,13 @@ The Apache HTTP Server is a powerful, efficient, and extensible
web server.
```
**`httpd`** 包来自 **`CentOS updates repo`**
`httpd` 包来自 CentOS updates 仓库
### 在 Fedora 系统上我们如何得知安装的包来自哪个仓库?
DNF 是 Dandified yum 的缩写。我们可以说 DNF 是使用 hawkey/libsolv 库作为后端的下一代 yum 包管理器( yum 的分支)。从 Fedora 18 开始 Aleš Kozumplík 开始开发 DNF 并最终在 Fedora 22 上得以应用/启用。
DNF 是 Dandified yum 的缩写。DNF 是使用 hawkey/libsolv 库作为后端的下一代 yum 包管理器yum 的分支)。从 Fedora 18 开始 Aleš Kozumplík 开始开发 DNF并最终在 Fedora 22 上得以应用/启用。
[Dnf 命令][10] 用于在 Fedora 22 以及之后的系统上安装、更新、搜索和删除包。它会自动解决依赖并使安装包的过程变得顺畅,不会出现任何问题。
[dnf 命令][10] 用于在 Fedora 22 以及之后的系统上安装、更新、搜索和删除包。它会自动解决依赖并使安装包的过程变得顺畅,不会出现任何问题。
```
$ dnf info tilix
@ -192,11 +193,12 @@ Description : Tilix is a tiling terminal emulator with the following features:
: GNOME Human Interface Guidelines (HIG).
```
**`tilix`** 包来自 **`Fedora updates repo`**
`tilix` 包来自 Fedora updates 仓库
### 在 openSUSE 系统上我们如何得知安装的包来自哪个仓库?
Zypper 是一个使用 libzypp 的命令行包管理器。[Zypper 命令][11] 提供了存储库访问、依赖处理、包安装等功能。
```
$ zypper info nano
@ -221,12 +223,11 @@ Description :
the Pico text editor while also offering a few enhancements.
```
The **`nano`** package is coming from **`openSUSE Main repo (OSS)`**.
**`nano`** 包来自于 **`openSUSE Main repoOSS`**。
`nano` 包来自于 openSUSE Main 仓库OSS
### 在 ArchLinux 系统上我们如何得知安装的包来自哪个仓库?
[Pacman 命令][12] 即包管理器工具( package manager utility ),是一个简单的用来安装、构建、删除和管理 Arch Linux 软件包的命令行工具。Pacman 使用 libalpm Arch Linux Package Managment ALPM library作为后端来执行所有的操作。
[Pacman 命令][12] 即包管理器工具package manager utility ),是一个简单的用来安装、构建、删除和管理 Arch Linux 软件包的命令行工具。Pacman 使用 libalpm 作为后端来执行所有的操作。
```
# pacman -Ss chromium
@ -244,7 +245,7 @@ community/fcitx-mozc 2.17.2313.102-1
Input)
```
**`chromium`** 包来自 **`ArchLinux extra repo`**
`chromium` 包来自 ArchLinux extra 仓库
或者,我们可以使用以下选项获得关于包的详细信息。
@ -274,15 +275,15 @@ Build Date : Fri 19 Feb 2016 04:17:12 AM IST
Validated By : MD5 Sum SHA-256 Sum Signature
```
**`chromium`** 包来自 **`ArchLinux extra repo`**
`chromium` 包来自 ArchLinux extra 仓库
### 在基于 Debian 的系统上我们如何得知安装的包来自哪个仓库?
在基于 Debian 的系统例如 UbuntuLinuxMint 上可以使用两种方法实现。
在基于 Debian 的系统例如 UbuntuLinuxMint 上可以使用两种方法实现。
### 方法-1使用 apt-cache 命令
#### 方法-1使用 apt-cache 命令
[apt-cache 命令][13] 可以显示存储在 APT 内部数据库的很多信息。这些信息是一种缓存,因为它们是从列在 source.list 文件里的不同的源中获得的。这个过程发生在 apt 更新操作期间。
[apt-cache 命令][13] 可以显示存储在 APT 内部数据库的很多信息。这些信息是一种缓存,因为它们是从列在 `source.list` 文件里的不同的源中获得的。这个过程发生在 apt 更新操作期间。
```
$ apt-cache policy python3
@ -292,16 +293,16 @@ python3:
Version table:
3.6.3-0ubuntu3 500
500 http://in.archive.ubuntu.com/ubuntu artful-updates/main amd64 Packages
* 3.6.3-0ubuntu2 500
*** 3.6.3-0ubuntu2 500
500 http://in.archive.ubuntu.com/ubuntu artful/main amd64 Packages
100 /var/lib/dpkg/status
```
**`python3`** 包来自 **`Ubuntu updates repo`**
`python3` 包来自 Ubuntu updates 仓库
### 方法-2使用 apt 命令
#### 方法-2使用 apt 命令
[APT 命令][14] 即 Advanced Packaging ToolAPT是 apt-get 命令的替代品,就像 DNF 是如何取代 YUM 一样。它是具有丰富功能的命令行工具并将所有的功能例如 apt-cache、apt-search、dpkg、apt-cdrom、apt-config、apt-ket 等包含在一个命令APT并且还有几个独特的功能。例如我们可以通过 APT 轻松安装 .dpkg 包但我们不能使用 Apt-Get 命令安装,更多类似的功能都被包含进了 APT 命令。APT-GET 因缺失了很多未被解决的特性而被 apt 取代。
[APT 命令][14] 即 “Advanced Packaging Tool”`apt-get` 命令的替代品,就像 DNF 是如何取代 YUM 一样。它是具有丰富功能的命令行工具并将所有的功能例如 `apt-cache``apt-search``dpkg``apt-cdrom``apt-config``apt-ket` 等包含在一个命令APT并且还有几个独特的功能。例如我们可以通过 APT 轻松安装 .dpkg 包,但我们不能使用 `apt-get` 命令安装,更多类似的功能都被包含进了 APT 命令。`apt-get` 因缺失了很多未被解决的特性而被 `apt` 取代。
```
$ apt -a show notepadqq
@ -334,7 +335,8 @@ Description: Notepad++-like editor for Linux
Text editor with support for multiple programming
languages, multiple encodings and plugin support.
```
**`notepadqq`** 包来自 **`Launchpad PPA`**。
`notepadqq` 包来自 Launchpad PPA。
--------------------------------------------------------------------------------
@ -343,7 +345,7 @@ via: https://www.2daygeek.com/how-do-we-find-out-the-installed-packages-came-fro
作者:[Prakash Subramanian][a]
选题:[lujun9972][b]
译者:[zianglei](https://github.com/zianglei)
校对:[校对者ID](https://github.com/校对者ID)
校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出