• Linux rpm命令详解


    rpm简介

    rpm命令是RPM软件包的管理工具。rpm原本是Red Hat Linux发行版专门用来管理Linux各项套件的程序,由于它遵循GPL规则且功能强大方便,因而广受欢迎。逐渐受到其他发行版的采用。RPM套件管理方式的出现,让Linux易于安装,升级,间接提升了Linux的适用度。

    rpm安装命令

    rpm (选项)(参数) 包名

    [root@localhost ~]# rpm -ivh 包全名
    #注意一定是包全名。如果是跟包全名的命令,则要注意路径,因为软件包在光盘当中
    选项:

    -i:安装(install);

    -v:显示更详细的信息(verbose);

    -h:打印 #,显示安装进度(hash);

    参数

    命令作用
    -a查询所有套件;
    -b<完成阶段><套件档>+或-t <完成阶段><套件档>+设置包装套件的完成阶段,并指定套件档的文件名称;
    -c只列出组态配置文件,本参数需配合"-l"参数使用;
    -d只列出文本文件,本参数需配合"-l"参数使用;
    -e<套件档>或–erase<套件档>删除指定的套件;
    -f<文件>+查询拥有指定文件的套件;
    -h或–hash套件安装时列出标记;
    -i显示套件的相关信息;
    -i<套件档>或–install<套件档>安装指定的套件档;
    -l显示套件的文件列表;
    -p<套件档>+查询指定的RPM套件档;
    -q使用询问模式,当遇到任何问题时,rpm指令会先询问用户;
    -R显示套件的关联性信息;
    -s显示文件状态,本参数需配合"-l"参数使用;
    -U<套件档>或–upgrade<套件档>升级指定的套件档;
    -v显示指令执行过程;
    -vv详细显示指令执行过程,便于排错。
    –force强制安装
    –nodeps忽略依赖;安装此包需要依赖,如果你不需要这些依赖可以忽略依赖,强制安装

    RPM包的升级

    [root@localhost ~]# rpm -Uvh 包全名

    选项:

    -U(大写):升级安装。如果没有安装过,则系统直接安装。如果安装过的版本较低,则升级到新版本(upgrade);

    [root@localhost ~]# rpm -Fvh 包全名

    选项:

    -F(大写):升级安装。如果没有安装过,则不会安装。必须安装有较低版本才能升级(freshen);

    RPM包卸载

    卸载是有依赖性的。比如,在安装的时候,要先安装 httpd 软件包,再安装 httpd 的功能模块 mod_ssl 包。那么,在卸载的时候,一定要先卸载 mod_ssl 软件包,再卸载 httpd 软件包,否则就会报错。软件包卸载和拆除大楼是一样的,你要拆除 2 楼和 3 楼,一定要先拆除 3 楼。

    删除格式非常简单,如下:

    [root@localhost ~]# rpm -e 包名
    可以使用下列格式:

    rpm -e proftpd-1.2.8-1
    rpm -e proftpd-1.2.8
    rpm -e proftpd-
    rpm -e proftpd
    不可以是下列格式:

    rpm -e proftpd-1.2.8-1.i386.rpm
    rpm -e proftpd-1.2.8-1.i386
    rpm -e proftpd-1.2
    rpm -e proftpd-1
    有时会出现一些错误或者警告:
    注意: 包名可以包含版本号等信息,但是不可以有后缀.rpm
    选项:

    -e 卸载(erase);

    如果不按依赖性卸载,就会报依赖性错误。例如:

    [root@localhost ~]# rpm -e httpd
    error: Failed dependencies:
    httpd-mmn = 20051115 is needed by (installed) mod_wsgi-3.2-1.el6.i686
    httpd-mmn = 20051115 is needed by (installed) php-5.3.3-3.el6_2.8.i686
    httpd-mmn = 20051115 is needed by (installed) mod_ssl-1:2.2.15-15.el6.
    centos.1.i686
    httpd-mmn = 20051115 is needed by (installed) mod_perl-2.0.4-10.el6.i686
    httpd = 2.2.15-15.el6.centos.1 is needed by (installed) httpd-manual-2.2.
    15-15.el6.centos.1 .noarch
    httpd is needed by (installed) webalizer-2.21_02-3.3.el6.i686
    httpd is needed by (installed) mod_ssl-1:2.2.15-15.el6.centos.1.i686
    httpd=0:2.2.15-15.el6.centos.1 is needed by(installed)mod_ssl-1:2.2.15-15.el6.centos.1.i686
    当然,卸载命令是支持"–nocteps"选项的,可以不检测依赖性直接卸载。但是,如果这样做,则很可能导致其他软件包无法正常使用,所以并不推荐这样卸载。

    默认安装路径

    RPM 包默认安装路径是可以通过命令査询的,一般安装在如表

    安装路径含 义
    /etc/配置文件安装目录
    /usr/bin/可执行的命令安装目录
    /usr/lib/程序所使用的函数库保存位置
    /usr/share/doc/基本的软件使用手册保存位置
    /usr/share/man/帮助文件保存位置

    RPM 包难道就不能手工指定安装路径吗?当然是可以的,但是一旦手工指定安装路径,所有的安装文件就会安装到手工指定位置,而不会安装到系统默认位置。而系统的默认搜索位置并不会改变,依然会去默认位置之下搜索,当然系统就不能直接找到所需的文件,也就失去了作为系统默认安装路径的一些好处。所以我们一般不会指定 RPM 包的安装路径,而使用默认安装路径。

  • 相关阅读:
    linux下安装mysql客户端client
    LeetCoded贪心算法系列——455.分发饼干
    数据结构与算法复习:第三十二弹
    如何让PowerShell invoke-restmethod 和 invoke-webrequest 忽略不工作的自签名证书
    VsCode高速下载
    Vue学习——组件(22)
    LIO-SAM源码解析(四):imuPreintegration.cpp
    乳清白蛋白纳米粒修饰生物素
    Vue+SpringBoot项目分离部署踩坑记录
    设计模式 -- 策略模式(Strategy Pattern)
  • 原文地址:https://blog.csdn.net/weixin_42648692/article/details/125438627