AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / unix / 问题 / 494213
Accepted
Motivated
Motivated
Asked: 2019-01-13 23:13:20 +0800 CST2019-01-13 23:13:20 +0800 CST 2019-01-13 23:13:20 +0800 CST

包命令之间有什么关系?

  • 772

基于 RPM 的包管理器支持子命令,例如要求、推荐、冲突、过时、建议和补充。

在阅读 rpm 手册页和依赖项文档时,不清楚它们有何不同。

例如,如果我运行命令rpm --query --info MozillaFirefox,将返回以下输出。

Name        : MozillaFirefox
Version     : 60.4.0
Release     : lp150.3.30.1
Architecture: x86_64
Install Date: Sun 06 Jan 2019 07:43:50 AM NZDT
Group       : Productivity/Networking/Web/Browsers
Size        : 161608776
License     : MPL-2.0
Signature   : RSA/SHA256, Thu 13 Dec 2018 08:35:09 PM NZDT, Key ID b88b2fd43dbdc284
Source RPM  : MozillaFirefox-60.4.0-lp150.3.30.1.src.rpm
Build Date  : Wed 12 Dec 2018 10:35:10 PM NZDT
Build Host  : cloud138
Relocations : (not relocatable)
Packager    : http://bugs.opensuse.org
Vendor      : openSUSE
URL         : http://www.mozilla.org/
Summary     : Mozilla Firefox Web Browser
Description :
Mozilla Firefox is a standalone web browser, designed for standards
compliance and performance.  Its functionality can be enhanced via a
plethora of extensions.

如果我运行命令rpm --query --recommends MozillaFirefox,将返回以下输出。

libavcodec-full >= 0.10.16
libcanberra0
libpulse0

我假设 libpulse0 指的是 PulseAudio 包。如果是,则命令rpm --query --info pulseaudio返回

Name        : pulseaudio
Version     : 11.1
Release     : lp150.4.1
Architecture: x86_64
Install Date: Sun 06 Jan 2019 06:49:12 AM NZDT
Group       : System/Sound Daemons
Size        : 3605819
License     : GPL-2.0+ AND LGPL-2.1+
Signature   : RSA/SHA256, Mon 23 Apr 2018 10:39:20 AM NZST, Key ID b88b2fd43dbdc284
Source RPM  : pulseaudio-11.1-lp150.4.1.src.rpm
Build Date  : Mon 23 Apr 2018 10:38:51 AM NZST
Build Host  : build70
Relocations : (not relocatable)
Packager    : https://bugs.opensuse.org
Vendor      : openSUSE
URL         : http://pulseaudio.org
Summary     : A Networked Sound Server
Description :
pulseaudio is a networked sound server for Linux, other Unix like
operating systems and Microsoft Windows. It is intended to be an
improved drop-in replacement for the Enlightened Sound Daemon (ESOUND).

如果pulseaudio软件包已经安装,为什么还要推荐安装libpulse0?

  • 推荐、冲突、过时、建议和补充指的是什么?
  • 推荐、建议和补充之间有什么区别?
  • 什么时候应该使用它们?
yum rpm
  • 1 1 个回答
  • 213 Views

1 个回答

  • Voted
  1. Best Answer
    Stephen Kitt
    2019-01-16T09:09:41+08:002019-01-16T09:09:41+08:00
    rpm --query --recommends MozillaFirefox
    

    列出MozillaFirefox软件包推荐的软件包(我将在下面进一步解释)。与计算机解释的大多数事物一样,输出是按字面意思理解的。因此,libpulse0建议涉及libpulse0包裹,而不是pulseaudio包裹。

    包列表是静态的,并按照MozillaFirefox包中的定义显示;它不考虑系统上已经安装的软件包。

    包关系如下:

    • requires:如果包 A 需要包 B 才能运行,则包 A 需要包 B;
    • 推荐:如果包A可以使用包B,则推荐包B,大多数用户会同时使用这两个包(这称为弱依赖);
    • 建议:如果包 A 可以使用包 B,则建议包 B,但大多数用户不需要它(这被称为非常弱的依赖关系);
    • 补充:包A补充包B,如果它为包B添加功能,大多数用户会一起使用这两个包(它与“推荐”几乎是对称的);
    • 增强:如果包 A 为包 B 添加了功能,那么包 A 会增强包 B,但大多数用户不会觉得它特别有用(它与“建议”几乎是对称的)。

    这应该可以帮助您了解这些术语的含义、它们之间的区别以及何时应该使用它们。

    是否实际考虑这些关系取决于所使用的包管理工具。rpm它本身处理单个包,因此只有强依赖关系对它很重要(“需要”)。据我所知,yum也只考虑了强依赖关系。dnf配置为默认安装弱依赖;见中的install_weak_deps标志dnf.conf。Zypperurpm也可以配置为考虑弱依赖。

    另一个微妙之处是推荐/建议和补充/增强对之间的差异,即为什么我们需要两者。它们代表了可以在不同地方获得的知识。例如,可以选择使用库的包“知道”它可以这样做;适当的关系是“推荐”或“建议”。然而,像 Firefox 这样的包不可能知道它所有的插件,所以它不会尝试在“推荐”或“建议”中列出所有可用的插件;每个单独的插件都可以通过在其 RPM 规范中表明它“补充”或“增强”它来表明它向 Firefox 添加了功能。

    有关详细信息,请参阅RPM 文档。

    • 4

相关问题

  • Centos 7 的 sh4gcc 交叉编译器安装

  • 为什么删除 npm 意味着在 CentOS 上也删除 nodejs?

  • yum + 解压存档失败

  • 可以安装软件包但 yum 或 rpm 命令看不到吗?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    模块 i915 可能缺少固件 /lib/firmware/i915/*

    • 3 个回答
  • Marko Smith

    无法获取 jessie backports 存储库

    • 4 个回答
  • Marko Smith

    如何将 GPG 私钥和公钥导出到文件

    • 4 个回答
  • Marko Smith

    我们如何运行存储在变量中的命令?

    • 5 个回答
  • Marko Smith

    如何配置 systemd-resolved 和 systemd-networkd 以使用本地 DNS 服务器来解析本地域和远程 DNS 服务器来解析远程域?

    • 3 个回答
  • Marko Smith

    dist-upgrade 后 Kali Linux 中的 apt-get update 错误 [重复]

    • 2 个回答
  • Marko Smith

    如何从 systemctl 服务日志中查看最新的 x 行

    • 5 个回答
  • Marko Smith

    Nano - 跳转到文件末尾

    • 8 个回答
  • Marko Smith

    grub 错误:你需要先加载内核

    • 4 个回答
  • Marko Smith

    如何下载软件包而不是使用 apt-get 命令安装它?

    • 7 个回答
  • Martin Hope
    user12345 无法获取 jessie backports 存储库 2019-03-27 04:39:28 +0800 CST
  • Martin Hope
    Carl 为什么大多数 systemd 示例都包含 WantedBy=multi-user.target? 2019-03-15 11:49:25 +0800 CST
  • Martin Hope
    rocky 如何将 GPG 私钥和公钥导出到文件 2018-11-16 05:36:15 +0800 CST
  • Martin Hope
    Evan Carroll systemctl 状态显示:“状态:降级” 2018-06-03 18:48:17 +0800 CST
  • Martin Hope
    Tim 我们如何运行存储在变量中的命令? 2018-05-21 04:46:29 +0800 CST
  • Martin Hope
    Ankur S 为什么 /dev/null 是一个文件?为什么它的功能不作为一个简单的程序来实现? 2018-04-17 07:28:04 +0800 CST
  • Martin Hope
    user3191334 如何从 systemctl 服务日志中查看最新的 x 行 2018-02-07 00:14:16 +0800 CST
  • Martin Hope
    Marko Pacak Nano - 跳转到文件末尾 2018-02-01 01:53:03 +0800 CST
  • Martin Hope
    Kidburla 为什么真假这么大? 2018-01-26 12:14:47 +0800 CST
  • Martin Hope
    Christos Baziotis 在一个巨大的(70GB)、一行、文本文件中替换字符串 2017-12-30 06:58:33 +0800 CST

热门标签

linux bash debian shell-script text-processing ubuntu centos shell awk ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve