zoukankan      html  css  js  c++  java
  • RPM Yum 相关命令及参数

    RPM 系列文章:

    RPM 命令

    我们可以直接使用rpm命令,对软件包进行一些操作。

    安装

    rpm –ivh <package_name>
    rpm –Uvh <package_name> # 没有安装过,则安装
    rpm –Fvh <package_name> # 没有安装过,则忽略
    
    • -nodeps 忽略依赖问题,一般仅用于测试
    • -i install;
    • -v 详细信息;
    • -h 以安装信息栏显示安装进度;
    • --test 可以测试是否有属性依赖问题

    卸载

    rpm –e <package_name> # 有其它包依赖此RPM包时,卸载会报错
    

    升级

    升级时使用-ivh会提示文件冲突

    • rpm –Uvh <package_name> 没有安装过,则安装
    • rpm –Fvh <package_name> 没有安装过,则忽略

    查找

    • rpm -q[licdR] 已安装的软件名
    • rpm -qp[licdR] 未安装的文件名称,注意,这里查看的前提是你本地有一个这个未安装的软件包
    • rpm -qf 存在于系统的某个文件名

    参数:

    查询已安装软件的信息:

    • -q 判断软件是否已安装 rpm -q mock,如果安装了,那么会列出该包的全名
    • -qa 列出所有的已安装在本机上的软件名称
    • -qi 列出软件的详细信息,开发商、版本等
    • -ql 列出该软件的所有文件与目录
    • -qc 列出该软件的所有配文件(找出在 /etc 下面的目录名而已)
    • -qR 列出与该软件有关的依赖软件及文件,注意了,这里不只是列出了依赖的软件
    • -qf 找出与后面接的文件所属哪个软件,注意文件名要「绝对路径」,例如rpm -qf /bin/rz

    非已安装软件:

    • -qp[icdlR] 用途差不多,但是并非已安装的软件信息,比如本地有个软件 filename.x86_64.rpm,可以 rpm -qpR ./filename.x86_64.rpm

    验证

    对已安装的包进行文件校验:

    rpm –V <package_name>
    rpm -Vp <rpm_file>
    rpm -Va
    

    导入key:

    • rpm --import <RPM_KEY>

    在包安装之前进行签名校验:

    rpm -K <rpm_>file
    

    重建数据库

    RPM 数据库存储在 /var/lib/rpm 内,如果文件损坏,可以重建:

    rpm –rebuilddb 解决系统RPM数据库的异常
    

    YUM 命令

    yum 其实是透明的调用 rpm,相当于在 rpm 基础上封装的更易使用的“前端”。

    它主要设计来解决软件包之间的依赖性,并可从多个资源库(我们称之为“源”,典型的由 /etc/yum.repos.d/ 目录下的每个 .repo 文件定义)。

    源制作

    createrepo <dir>

    一般的 CentOS 系的 ISO 镜像中,都带有安装时使用的rpm包。可以将这部分文件mount到本地,创建本地源,以减少软件安装时的上网下载。

    例如,你在一个有 RPM 包的文件夹下,就可以执行 createrepo . 命令,然后你的 REPO 配置一个本地源也是 OK 的。

    安装

    yum install <package_name>[-<version_info>] -y
    yum localinstall <rpm_file> 本地安装
    yum groupinstall <group_name> 组安装
    

    升级

    yum update [package_name]
    

    降级

    yum downgrade <package_name>-<version_info>
    

    卸载

    yum remove/erase <package_name>
    

    谨慎使用: 此命令会卸载掉所有依赖此包的RPM包

    查找

    yum search <pkg_name> # 搜索相关软件
    yum list # 列出目前 yum 管理的所有软件 注意,这里包含了未安装的软件
    

    yum list 以及相关的一些命令则能够为你提供有关软件包、软件包集和软件仓库的信息。所有的 yum list 命令都能够使用 glob 表达式作为参数,对输出结果进行过滤。在 glob 表达式中,你可以使用 * 代表任何数量个字符,使用 ? 代表任何一个字符。

    yum list <glob_expr> [more_glob_exprs] 列出所有符合 glob 表达式的软件包
    
    • yum list all 列出所有已安装的和可用的软件包
    • yum list installed 列出所有已经安装在系统中的软件包。输出结果的最右边一列是取得该软件包的软件仓库。标识为 installed 的软件包则说明它是做为系统基本组件而预安装的。
    • yum list available 列出所有启用的软件仓库中可用的软件包
    • yum list --showduplicates |grep nginx |sort 这样就会显示启用的 YUM 源中 nginx 的所有版本,而不是最新版本
    • yum grouplist 列出所有软件包组
    • yum repolist [-v] 列出所有启用的软件仓库的 ID,名称 及其包含的软件包的数量

    本地缓存相关

    yum clean all 清除本地缓存
    yum makecache 只做本地缓存
    

    yum history

    查看 Yum 事务完整的历史记录。

    # info 命令查看涉及指定软件包的事务详情
    yum history info httpd
    

    参考

    其他

    • 使用yum info <package_name> [more_names]命令可查看一个或多个软件包的信息 (此处同样可以应用 glob 表达式)。
    • yum provides <filename> 这个命令左右和 rpm -qf 挺类似,有用的一个命令,例如 yum provides /usr/bin/mock

    依赖包下载研究

    利用 downloadonly 下载

    这种方式可能需要先安装 downloadonly 插键才行,不过我发现,我没安装就有了。

    yum install --downloadonly --downloaddir=/tmp/yums/  nginx
    

    如果主机上已经安装了 nginx,那么这个命令貌似并不会把 nginx 等相关依赖包下载下来。只有当主机上没有安装 nginx 包时,这个下载才会 OK。

    利用这个命令,你可以一次下载多个包的依赖包的:

    yum install --downloadonly --downloaddir=/root/mypackages/ httpd-2.2.6-40.el7 vsftpd
    

    利用 yumdownloader 工具

    它可以一次性下载任何 RPM 软件包及其所有依赖包。如果主机上没有这个命令,则需要安装:

    yum install -y yum-utils
    

    下载包的依赖包,并指定存放的目录(如果不指定,就默认下载到当前目录):

    yumdownloader --resolve --destdir=/tmp/yums/ nginx
    # OR
    yumdownloader --resolve --destdir /tmp/yums/ nginx
    

    我发现这个命令和上面 downloadonly 一样的现象,当 nginx 包已经安装在主机上了,它就不会去下载它的依赖包,但是和上面有所区别的是,它还是会把 nginx 这个包下载下来的。

    其他

    repoquery --requires --resolve <package-name> 
    
    # rpmrepater會向用戶顯示已安裝包的列表,你可以使用上/下箭頭來滾動屏幕
    # 可以在指定包上使用"r"鍵來顯示其依賴關係,循環在指定包上按下"r"鍵可以展示出餘下的信息。
    # "L"標誌的意思是說這個包是一片“孤葉”,意思說說沒有任何包依賴它。
    # "o"標誌是說這個包是整個依賴鏈的中間部分。
    # 按下"b"鍵會顯示其他依賴於該包的其他包。
    yum install rpmreaper 
    rpmreaper 
    

    参考

  • 相关阅读:
    头像切换封装
    JSON数据的序列化方法
    HTML5 LocalStorage 本地存储
    onhashchange实现下一页与上一页功能,并且实现当前页面刷新时停留在当前页面
    提交页面可输入的数据-----XSS漏洞
    js冒泡排序
    html实现将网页页面分享到微信朋友圈添加缩略图图片的方法
    js常用正则表达式
    C 传递指针给函数
    C 指向指针的指针
  • 原文地址:https://www.cnblogs.com/michael-xiang/p/10474319.html
Copyright © 2011-2022 走看看