• Shell | yum和rpm的使用


    本文总结 rpmyum 的使用方法。

    Updated: 2022 / 9 / 19


    Shell | yum和rpm的使用


    yum

    参考这里 1

    • 安装
    命令作用
    yum install package用来安装线上仓库中的 rpm 包的命令。

    使用远程软件包仓库中的地址查找相应的软件并执行安装。仓库中的软件都是解决了依赖关系的。安装某个版本的软件包时,需要配置指定的 yum 仓库地址,否则可能查找不到对应的软件包。但是,可以指定一个软件包的 url 地址,安装该远程地址的软件包;并且也可以指定一个本地的 rpm 包全名,即安装本地包,此时安装基本和 localinstall 没有区别。
    yum localinstall用来安装本地 rpm 包的命令。

    首先 rpm 包要先下载到本地,在本地目录执行 yum localinstall *.rpmyum 会安装本地已经存在的 rpm 包,并自动联网搜寻本地 rpm 包可能存在的依赖关系并安装。但是如果仓库无法找到依赖包,也无法完成安装。

    rmp -i *.rpm 不会自行解决依赖关系,缺少依赖就会报错
    yum groupinstall group安装某个组件的全部软件包

    yum installyum localinstall 相同的地方有如下三点 2

    1. yum installyum localinstall 都可以安装本地 rpm 包:
      可以看到在没有更新时,install 提示不需要任何操作时,会有 Error 的错误。
    $ yum localinstall mysql-community-server-8.0.26-1.el7.x86_64.rpm
    Loaded plugins: fastestmirror, langpacks
    Examining mysql-community-server-8.0.26-1.el7.x86_64.rpm: mysql-community-server-8.0.26-1.el7.x86_64
    mysql-community-server-8.0.26-1.el7.x86_64.rpm: does not update installed package.
    Nothing to do
    
    $ yum install mysql-community-server-8.0.26-1.el7.x86_64.rpm
    Loaded plugins: fastestmirror, langpacks
    Examining mysql-community-server-8.0.26-1.el7.x86_64.rpm: mysql-community-server-8.0.26-1.el7.x86_64
    mysql-community-server-8.0.26-1.el7.x86_64.rpm: does not update installed package.
    Error: Nothing to do
    
    1. 也都可以指定一个远程 urlrpm 包;
    2. 两者都会从远程仓库安装相关依赖;

    yum installyum localinstall 不同的地方有 2

    1. yum localinstall 后跟的包名必须是 .rpm 结尾,即必须是一个指定的 rpm 全包名。即 yum localinstall 不能指定一个具体位置不存在软件包,因为它不会从远程仓库查找包名。
    $ yum localinstall mysql-community-server
    Loaded plugins: fastestmirror, langpacks
    Skipping: mysql-community-server, filename does not end in .rpm.
    Nothing to do
    
    $ yum install mysql-community-server                     
    Loaded plugins: fastestmirror, langpacks
    Loading mirror speeds from cached hostfile
    Package mysql-community-server-8.0.26-1.el7.x86_64 already installed and latest version
    Nothing to do
    
    1. yum install 可以跟不是 .rpm 结尾的包,即可以跟非全包名的软件包,这时将会从远程仓库中查找该软件包,并下载安装。
      在指定具体全包名的软件包时,信息提示 install 会显示 Error,而 localinstall 则不会。

    • 更新
    命令作用
    yum update package
    yum check-update列出所有可更新的软件包
    yum list updates mysql*查找mysql的更新
    yum update更新所有可更新的软件包
    yum update mysql*更新所有 mysql 的软件包
    yum groupupdate group更新某个组件的所有软件包
    yum list列出所有已安装和仓库中可用的软件包
    yum list available列出仓库中所有可用的软件包
    yum list updates列出仓库中比当前系统更新的软件包,或者说,可以更新的软件包
    yum list installed列出已安装的软件包
    yum list recent列出新加入仓库的软件包
    yum info查询软件包信息

    • 删除
    命令作用
    yum remove package删除软件包
    yum groupremove group删除某个组件的全部软件包
    yum clean packages清除软件包
    yum clean metadata清除遗留在缓存里的包文件
    yum clean headers清除遗留在缓存里的元数据
    yum clean all清除包文件,元数据,头文件
    • 检索
    命令作用
    yum search package搜索软件包
    yum info package查找一个软件包的信息
    yum list package列出包含指定信息的软件包
    yum list installed列出已安装的软件包
    yum list extras列出不是通过软件仓库安装的软件包
    yum list *ttp*列出标题包含 *ttp* 的软件包
    yum list updates列出可以更新的软件包
    yum whatprovides filename查找特定文件是由什么软件包提供的
    • 特殊选项
    命令作用
    –disalberepo=lib禁用某个软件仓库
    举例,yum –disalberepo=livna
    –enalberepo=lib启用某个软件仓库
    举例,yum –disalberepo=livna
    -C禁用使用本机缓存的元数据
    举例,yum -C info httpd

    rpm

    • 安装
    命令作用
    rpm -i 安装本地的 rpm 包,通常使用 rpm -ivh xxx 显示安装过程。如果包存在必须安装的依赖,则无法解决,将会安装失败。rpm 命令不会涉及远程仓库。但是,rpm 后面的软件包,也可以是一个 ur l软件地址。
    • 更新
    命令作用
    rpm -Uvh --oldpackage [downloaded_lower_version_package]如何使用 rpm 命令将 CentOS/RHEL 6 系统中的 rpm 包降级到较低版本 3 ?不建议使用 rpm 命令来降级 rpm 包。应该使用 yum 命令。
    确保我们已下载较低版本的所有软件包及其依赖项。

    比如,将 systemd 软件包从 systemd-219-67.0.1.el7_7.2 降级到 systemd-219-62.0.4.el7_6.9.,使用 rpm -Uvh --oldpackage *.rpm

    安装好后记得执行 ldconfig 4

    参考链接


    1. linux yum install和yum localinstall、rpm -ivh的区别 ↩︎

    2. linux极简小知识:9、yum install和localinstall、rpm -i的区别是什么?带你厘清yum install和localinstall ↩︎ ↩︎

    3. 如何将 rpm 包版本降级 ↩︎

    4. rpm降级版本安装 ↩︎

  • 相关阅读:
    dpi是什么?如何更改dpi?(仅个人笔记,可能有误)
    k8s上线Java项目文件导出异常总结
    webpack output.library的16 种取值方法示例
    莞中集训游记
    软件测试面试题(持续更新中),欢迎大家一起完善
    Android Hook View的创建流程
    [ConvNet]卷积神经网络概念解析
    Qt实现厨房值班员的显示模块,如何做到时间到达0:00更新显示
    探索ChatGPT在提高人脸识别与软性生物识准确性的表现与可解释性
    【Git 常用命令】
  • 原文地址:https://blog.csdn.net/MissMango0820/article/details/126940058