- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
Running CentOS 7.6
我目前正在 kickstart 安装后脚本 yum remove java-1.7* 中卸载 Java。卸载 java 时,它会孤立 python-lxml 包,然后通过 yum autoremove -y 将其删除,因为它现在是一片叶子。
然后我使用 ansible 进行了一系列配置,但在尝试使用“python-lxml”的任务中失败了。
有没有办法列出所有“yum autoremove”将删除的包并将它们标记为不要删除?
最佳答案
我最终查看了 repoquery API和 package-cleanup man page .使用 package-cleanup
通过传递 --leaves
,我能够列出系统上所有的叶子和 -all
旗帜。然后我将该输入通过管道传输到 repoquery
找出哪些叶子被标记为依赖项。 --qf
允许我指定查询格式。看着 repoquery
API 我可以看到我可以进行的各种 API 调用。
querytags = [ 'name', 'version', 'release', 'epoch', 'arch', 'summary',
'description', 'packager', 'url', 'buildhost', 'sourcerpm',
'vendor', 'group', 'license', 'buildtime', 'filetime',
'installedsize', 'archivesize', 'packagesize', 'repoid',
'requires', 'provides', 'conflicts', 'obsoletes',
'weak_requires', 'info_requires',
'weak_reverse_requires', 'info_reverse_requires',
'relativepath', 'hdrstart', 'hdrend', 'id',
'checksum', 'pkgid', 'committer', 'committime',
'ui_evr', 'evr', 'ui_nevra', 'ui_envra',
'ui_from_repo', 'base_package_name', 'size', 'xattr_origin_url',
'ui_evra', 'ui_nevr', 'na', 'vr', 'vra', 'evr', 'evra',
'nvr', 'nvra', 'nevr', 'nevra', 'envr', 'envra',
'repo.<attr of the repo object>',
'yumdb.<attr of the yumdb object>',
'<attr of the yum object>'
]
注意 nvra
(name-ver-rel.arch) 和 yumdb.<attr>
我可以查询的标签 yumdb
全名和reason
传入的每片叶子。
然后我可以做基本的 grep
和 sed
仅提取我可以存储在数组中的包名称。
package-cleanup --leaves -q --all | xargs repoquery --installed --qf '%\{nvra} - %\{yumdb_info.reason}' | grep -- '- dep' | sed "s/\s.*$//"
使用这个数组,我能够遍历并设置每个项目的 reason
至 user
所以yum autoremove -y
不会删除我打算在那里的内容。
yumdb set reason user $array_item
或者,如果您想要所有 bash one liner 之母...
array=$(package-cleanup --leaves -q --all | xargs repoquery --installed --qf '%{nvra} - %{yumdb_info.reason}' | grep -- '- dep' | sed "s/\s.*$//"); a=($array); if [ ${#a[@]} -gt "0" ]; then for i in "${array[@]}"; do yumdb set reason user $i; done; fi
关于ansible - 列出将被 "yum autoremove"删除的包?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57363309/
使用 yum 的优先级插件时,会显示已排除的软件包数量。有没有办法显示这些包的名称? 最佳答案 你总是可以像这样运行 yum: yum -d 9 install foo 并且部分日志输出是排除包。 编
我尝试使用命令 make && make install 安装 yum-3.4.3,但失败并显示以下日志: infra-bld4:/tmp/hxu2/yum-3.4.3> make for d in
我在 CentOs 8 上运行以下命令 $ cat /etc/redhat-release CentOS Linux release 8.2.2004 (Core) 我从一个干净且更新的 yum 数据
我知道 FI-WARE 在 http://repositories.testbed.fiware.org/ 提供了一个公共(public) yum 存储库可用于安装 FI-WARE 软件包,例如 Or
如何将 yum 存储库完全导入 Artifactory? 请注意,我指的是外部 yum存储库,并且由于在 Artifactory 中实现外部存储库镜像的方式,我无法使用 artifactory-rem
当我在 shell 中使用 yum 时,错误消息是没有名为 yum 的模块,所以我编辑/usr/bin/yum 将第一行更改为另一个版本的 python,但没有任何变化,当我使用不同的 python
我正在按照可以在此处找到的教程在 ec2 实例上设置 headless Selenium 刮刀: https://krbnite.github.io/Driving-Headless-Chrome-w
我们在我们公司使用自定义的 yum 存储库。某些事情导致他们失败 yum makecache命令。 我在 CentOS Linux release 7.7.1908 (Core) . 这是我们在运行
我正在尝试使用 RPM 升级软件包。我如何知道它是全新安装还是更新。是否有任何我可以检查的标志,或者我应该编写一个脚本来检查它是全新安装还是升级? 最佳答案 如果我很好地理解你的问题;我想你自己打包
在 Debian 衍生版中,在使用 apt-get install xxx 从 apt 安装软件之前,需要运行apt-get update .这会刷新包列表,以便正确解析依赖项等。 在使用 RHEL
我正在编写一个更新本地存储库 URL 的 yum 插件。当 repo URL 更改时,我想让 yum 运行 yum clean all 以确保没有缓存过时的信息。我知道当 yum clean [plu
许多 makefile 使用 pkg-config,但名称与包管理器无关(例如 yum/apt)。如何将 pkg-config 名称映射到它们?有什么窍门吗? 示例:如果我执行 yum searchN
我对 Linux 和 VDS 完全陌生。 VDS的操作系统是CentOS 6.9。我正在尝试安装apache、邮件服务器、php、mysql等。但我认为,要能够安装这些 'yum update' 或
当我执行 yum 时,像这样搜索 mysql-libs: $sudo yum search mysql-libs Loaded plugins: branch, downloadonly, faste
我在 CentOS 上使用 MySQL-Server。我 'yum remove' MySQL 服务器,然后再次 'yum install' 它。当我尝试使用 'mysqladmin' 为 'root
我见过两种安装包的方式,比如CentOS上的squid: 1.yum -y install squid 2.yum install squid 谁能告诉我它们之间有什么区别?另外,我使用的是 Cent
提示我出现以下错误 不匹配参数:python-devel 最佳答案 python2.7现在已经完全过时了。你应该和 python3 一起工作.因此你可以安装: dnf install python3-
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 这个问题似乎不是关于 a specific programming problem, a softwar
尝试从任何存储库更新任何包时,很难找到导致以下错误的原因。我通过将所有其他人设置为禁用来测试多个 repo 协议(protocol)。我已经清理了所有缓存并删除了所有 dnf yum 缓存文件。 #
我已经在我的 VMServer 上部署了一个新的 CentOS 6.5 实例,其中安装了开发工具、X11 和其他几个软件包。第一天,似乎一切正常。后来我无法使用 yum 安装程序来更新或安装任何软件包
我是一名优秀的程序员,十分优秀!