zoukankan      html  css  js  c++  java
  • 每天一个Linux命令(57)rpm命令

        rpm是一个功能十分强大的软件包管理系统。

        (1)用法:

        用法:  rpm  [参数]  [包名]

        (2)功能:

        功能:  使得在Linux下安装、升级和删除软件包的工作变得容易,并且具有查询、验证软件包的功能。与图形化工具相比,使用命令行可以获得更大的灵活性。

        (3)选项参数:     

          1) -l                显示套件的文件列表            

          2) -h (or --hash)           安装时输出hash记号 ("#''),用来显示安装进度

          3) -i                显示套件的相关信息
          4) -U<套件档> 
    --upgrade<套件档>  升级指定的套件档

          5) -p<套件档>             查询指定的RPM套件档

          6) -q                 查看软件包是否被安装

          7) -v                显示指令执行过程

          8) -a                查询所有套件

          9) -R                显示套件的关联性信息

        (4)实例:

        1)[root@localhost sunmeng]rpm -q mariadb-5.5.47-1.el7_2.x86_64      查询指定软件包是否被安装

    [root@localhost sunmeng]rpm -q mariadb-5.5.47-1.el7_2.x86_64
    mariadb-5.5.47-1.el7_2.x86_64
    [root@localhost sunmeng]# rpm -q httpd
    未安装软件包 httpd

        2)[root@localhost packages]# rpm -qa | grep httpd               查询所有套件中已经安装的软件包(与httpd有关的软件包)

    [root@localhost packages]# rpm -qa | grep httpd
    httpd-2.4.6-40.el7.centos.1.x86_64
    httpd-tools-2.4.6-40.el7.centos.1.x86_64
    [root@localhost packages]# yum search httpd-2.4.6-40.el7.centos.1.x86_64             //在网络软件库并没有这个包
    已加载插件:fastestmirror, langpacks
    Loading mirror speeds from cached hostfile
     * base: mirrors.cqu.edu.cn
     * extras: mirrors.cqu.edu.cn
     * updates: mirrors.cqu.edu.cn
    警告:没有匹配 httpd-2.4.6-40.el7.centos.1.x86_64 的软件包
    No matches found
    [root@localhost packages]# yum info httpd-2.4.6-40.el7.centos.1.x86_64        //但本地确实已经安装了这个软件包:系统自带
    已加载插件:fastestmirror, langpacks
    Loading mirror speeds from cached hostfile
     * base: mirrors.cqu.edu.cn
     * extras: mirrors.cqu.edu.cn
     * updates: mirrors.cqu.edu.cn
    已安装的软件包
    名称    :httpd
    架构    :x86_64
    版本    :2.4.6
    发布    :40.el7.centos.1
    大小    :9.4 M
    源    :installed
    来自源:updates
    简介    : Apache HTTP Server
    网址    :http://httpd.apache.org/
    协议    : ASL 2.0
    描述    : The Apache HTTP Server is a powerful, efficient, and extensible
             : web server.
    
    [root@localhost packages]# yum info httpd-tools-2.4.6-40.el7.centos.1.x86_64
    已加载插件:fastestmirror, langpacks
    Loading mirror speeds from cached hostfile
     * base: mirrors.cqu.edu.cn
     * extras: mirrors.cqu.edu.cn
     * updates: mirrors.cqu.edu.cn
    已安装的软件包
    名称    :httpd-tools
    架构    :x86_64
    版本    :2.4.6
    发布    :40.el7.centos.1
    大小    :168 k
    源    :installed
    来自源:updates
    简介    : Tools for use with the Apache HTTP Server
    网址    :http://httpd.apache.org/
    协议    : ASL 2.0
    描述    : The httpd-tools package contains tools which can be used with
             : the Apache HTTP Server.

        3)[root@localhost packages]# rpm -e mariadb-5.5.47-1.el7_2.x86_64        卸载指定的安装过的包

    [root@localhost packages]# yum install mysql              //已经安装过
    已加载插件:fastestmirror, langpacks
    Loading mirror speeds from cached hostfile
     * base: mirrors.cqu.edu.cn
     * extras: mirrors.cqu.edu.cn
     * updates: mirrors.cqu.edu.cn
    软件包 1:mariadb-5.5.47-1.el7_2.x86_64 已安装并且是最新版本
    无须任何处理
    [root@localhost packages]# rpm -e mariadb-5.5.47-1.el7_2.x86_64   //卸载指定安装包  
    [root@localhost packages]# yum install mysql              //重新下载指定安装包
    已加载插件:fastestmirror, langpacks
    Loading mirror speeds from cached hostfile
     * base: mirrors.cqu.edu.cn
     * extras: mirrors.cqu.edu.cn
     * updates: mirrors.cqu.edu.cn
    正在解决依赖关系
    --> 正在检查事务
    ---> 软件包 mariadb.x86_64.1.5.5.47-1.el7_2 将被 安装
    --> 解决依赖关系完成
    
    依赖关系解决
    
    ==========================================================================================================================================
     Package                       架构                         版本                                      源                             大小
    ==========================================================================================================================================
    正在安装:
     mariadb                       x86_64                       1:5.5.47-1.el7_2                          updates                       8.9 M
    
    事务概要
    ==========================================================================================================================================
    安装  1 软件包
    
    总下载量:8.9 M
    安装大小:49 M
    Is this ok [y/d/N]: y
    Downloading packages:
    mariadb-5.5.47-1.el7_2.x86_64. FAILED                                          
    http://mirrors.cug.edu.cn/centos/7.2.1511/updates/x86_64/Packages/mariadb-5.5.47-1.el7_2.x86_64.rpm: [Errno 12] Timeout on http://mirrors.cug.edu.cn/centos/7.2.1511/updates/x86_64/Packages/mariadb-5.5.47-1.el7_2.x86_64.rpm: (28, 'Resolving timed out after 30419 milliseconds')
    正在尝试其它镜像。
    mariadb-5.5.47-1.el7_2.x86_64.rpm                                                                                  | 8.9 MB  00:01:35     
    Running transaction check
    Running transaction test
    Transaction test succeeded
    Running transaction
    警告:RPM 数据库已被非 yum 程序修改。
      正在安装    : 1:mariadb-5.5.47-1.el7_2.x86_64                                                                                       1/1 
      验证中      : 1:mariadb-5.5.47-1.el7_2.x86_64                                                                                       1/1 
    
    已安装:
      mariadb.x86_64 1:5.5.47-1.el7_2                                                                                                         
    
    完毕!

          4)[root@localhost packages]# rpm -qpR gnome-bluetooth-3.14.1-1.el7.x86_64.rpm     查看指定软件包的依赖关系

    [root@localhost packages]# find -name "gnome-bluetooth-3.14.1-1.el7.x86_64.rpm" -exec ls -l {} ;      //在当前目录下能够找到指定.rpm包
    -rw-r--r--. 1 root root 50740 11月 25 2015 ./gnome-bluetooth-3.14.1-1.el7.x86_64.rpm
    [root@localhost packages]# rpm -qpR gnome-bluetooth-3.14.1-1.el7.x86_64.rpm                   //查看它依赖的文件
    /bin/sh
    /bin/sh
    /bin/sh
    bluez >= 5.0
    desktop-file-utils
    desktop-file-utils
    gnome-bluetooth-libs = 1:3.14.1-1.el7
    libatk-1.0.so.0()(64bit)
    libc.so.6()(64bit)
    libc.so.6(GLIBC_2.2.5)(64bit)
    libc.so.6(GLIBC_2.4)(64bit)
    libcairo-gobject.so.2()(64bit)
    libcairo.so.2()(64bit)
    libgdk-3.so.0()(64bit)
    libgdk_pixbuf-2.0.so.0()(64bit)
    libgio-2.0.so.0()(64bit)
    libglib-2.0.so.0()(64bit)
    libgmodule-2.0.so.0()(64bit)
    libgnome-bluetooth.so.13()(64bit)
    libgobject-2.0.so.0()(64bit)
    libgtk-3.so.0()(64bit)
    libm.so.6()(64bit)
    libpango-1.0.so.0()(64bit)
    libpangocairo-1.0.so.0()(64bit)
    libpthread.so.0()(64bit)
    libudev.so.1()(64bit)
    pulseaudio-module-bluetooth
    rpmlib(CompressedFileNames) <= 3.0.4-1
    rpmlib(FileDigests) <= 4.6.0-1
    rpmlib(PayloadFilesHavePrefix) <= 4.0-1
    rtld(GNU_HASH)
    rpmlib(PayloadIsXz) <= 5.2-1
    [root@localhost packages]# yum deplist gnome-bluetooth-3.14.1-1.el7.x86_64.rpm        //yum命令查询依赖关系
    已加载插件:fastestmirror, langpacks
    Loading mirror speeds from cached hostfile
     * base: mirrors.cqu.edu.cn
     * extras: mirrors.cqu.edu.cn
     * updates: mirrors.cqu.edu.cn
    软件包:gnome-bluetooth.x86_64 1:3.14.1-1.el7
       依赖:/bin/sh
       provider: bash.x86_64 4.2.46-19.el7
       依赖:bluez >= 5.0
       provider: bluez.x86_64 5.23-4.el7
       依赖:desktop-file-utils
       provider: desktop-file-utils.x86_64 0.22-1.el7
       依赖:gnome-bluetooth-libs = 1:3.14.1-1.el7
       provider: gnome-bluetooth-libs.x86_64 1:3.14.1-1.el7
       provider: gnome-bluetooth-libs.i686 1:3.14.1-1.el7
       依赖:libatk-1.0.so.0()(64bit)
       provider: atk.x86_64 2.14.0-1.el7
       依赖:libc.so.6()(64bit)
       provider: glibc.x86_64 2.17-106.el7_2.6
       依赖:libc.so.6(GLIBC_2.2.5)(64bit)
       provider: glibc.x86_64 2.17-106.el7_2.6
       依赖:libc.so.6(GLIBC_2.4)(64bit)
       provider: glibc.x86_64 2.17-106.el7_2.6
       依赖:libcairo-gobject.so.2()(64bit)
       provider: cairo-gobject.x86_64 1.14.2-1.el7
       依赖:libcairo.so.2()(64bit)
       provider: cairo.x86_64 1.14.2-1.el7
       依赖:libgdk-3.so.0()(64bit)
       provider: gtk3.x86_64 3.14.13-16.el7
       依赖:libgdk_pixbuf-2.0.so.0()(64bit)
       provider: gdk-pixbuf2.x86_64 2.31.6-3.el7
       依赖:libgio-2.0.so.0()(64bit)
       provider: glib2.x86_64 2.42.2-5.el7
       依赖:libglib-2.0.so.0()(64bit)
       provider: glib2.x86_64 2.42.2-5.el7
       依赖:libgmodule-2.0.so.0()(64bit)
       provider: glib2.x86_64 2.42.2-5.el7
       依赖:libgnome-bluetooth.so.13()(64bit)
       provider: gnome-bluetooth-libs.x86_64 1:3.14.1-1.el7
       依赖:libgobject-2.0.so.0()(64bit)
       provider: glib2.x86_64 2.42.2-5.el7
       依赖:libgtk-3.so.0()(64bit)
       provider: gtk3.x86_64 3.14.13-16.el7
       依赖:libm.so.6()(64bit)
       provider: glibc.x86_64 2.17-106.el7_2.6
       依赖:libpango-1.0.so.0()(64bit)
       provider: pango.x86_64 1.36.8-2.el7
       依赖:libpangocairo-1.0.so.0()(64bit)
       provider: pango.x86_64 1.36.8-2.el7
       依赖:libpthread.so.0()(64bit)
       provider: glibc.x86_64 2.17-106.el7_2.6
       依赖:libudev.so.1()(64bit)
       provider: systemd-libs.x86_64 219-19.el7_2.9
       依赖:pulseaudio-module-bluetooth
       provider: pulseaudio-module-bluetooth.x86_64 6.0-7.el7
       依赖:rtld(GNU_HASH)
       provider: glibc.x86_64 2.17-106.el7_2.6
       provider: glibc.i686 2.17-106.el7_2.6

          5)[root@localhost packages]# rpm -Va        校验所有的rpm包,查找丢失的文件

    [root@localhost packages]# rpm -Va
    S.5....T.  c /etc/hba.conf
    ....L....  c /etc/pam.d/fingerprint-auth
    ....L....  c /etc/pam.d/password-auth
    ....L....  c /etc/pam.d/postlogin
    ....L....  c /etc/pam.d/smartcard-auth
    ....L....  c /etc/pam.d/system-auth
    遗漏     /var/run/wpa_supplicant
    遗漏     /var/run/pluto
    S.5....T.  c /etc/plymouth/plymouthd.conf
    S.5....T.  c /etc/login.defs
    S.5....T.  c /etc/libuser.conf
    S.5....T.  c /etc/openldap/ldap.conf
    遗漏     /var/run/gluster
    .M.......  c /etc/cups/subscriptions.conf
    S.5....T.  c /etc/yum/pluginconf.d/langpacks.conf
    .M....G..    /var/log/gdm
    S.5....T.  c /etc/cgrules.conf
    S.5....T.  c /etc/cups/cups-browsed.conf
    .......T.    /lib/modules/3.10.0-229.el7.x86_64/modules.devname
    .......T.    /lib/modules/3.10.0-229.el7.x86_64/modules.softdep
    [root@localhost packages]# which mysql
    /usr/bin/mysql

          6)[root@localhost packages]# rpm -ql mariadb-5.5.47-1.el7_2.x86_64    查看指定软件包的安装的位置

    [root@localhost packages]# yum install mysql
    已加载插件:fastestmirror, langpacks
    Loading mirror speeds from cached hostfile
     * base: mirrors.cqu.edu.cn
     * extras: mirrors.cqu.edu.cn
     * updates: mirrors.cqu.edu.cn
    软件包 1:mariadb-5.5.47-1.el7_2.x86_64 已安装并且是最新版本
    无须任何处理
    [root@localhost packages]# rpm -ql mariadb-5.5.47-1.el7_2.x86_64
    /etc/my.cnf.d/client.cnf
    /usr/bin/aria_chk
    /usr/bin/aria_dump_log
    /usr/bin/aria_ftdump
    /usr/bin/aria_pack
    /usr/bin/aria_read_log
    /usr/bin/msql2mysql
    /usr/bin/my_print_defaults
    /usr/bin/mysql
    /usr/bin/mysql_find_rows
    /usr/bin/mysql_waitpid
    /usr/bin/mysqlaccess
    /usr/bin/mysqladmin
    /usr/bin/mysqlbinlog
    /usr/bin/mysqlcheck
    /usr/bin/mysqldump
    /usr/bin/mysqlimport
    /usr/bin/mysqlshow
    /usr/bin/mysqlslap
    /usr/share/doc/mariadb-5.5.47
    /usr/share/doc/mariadb-5.5.47/COPYING
    /usr/share/doc/mariadb-5.5.47/COPYING.Google
    /usr/share/doc/mariadb-5.5.47/COPYING.LESSER
    /usr/share/doc/mariadb-5.5.47/COPYING.Percona
    /usr/share/doc/mariadb-5.5.47/README
    /usr/share/doc/mariadb-5.5.47/README.mysql-docs
    /usr/share/doc/mariadb-5.5.47/README.mysql-license
    /usr/share/man/man1/aria_chk.1.gz
    /usr/share/man/man1/aria_dump_log.1.gz
    /usr/share/man/man1/aria_ftdump.1.gz
    /usr/share/man/man1/aria_pack.1.gz
    /usr/share/man/man1/aria_read_log.1.gz
    /usr/share/man/man1/my_print_defaults.1.gz
    /usr/share/man/man1/mysql.1.gz
    /usr/share/man/man1/mysql_find_rows.1.gz
    /usr/share/man/man1/mysql_waitpid.1.gz
    /usr/share/man/man1/mysqlaccess.1.gz
    /usr/share/man/man1/mysqladmin.1.gz
    /usr/share/man/man1/mysqldump.1.gz
    /usr/share/man/man1/mysqlshow.1.gz
    /usr/share/man/man1/mysqlslap.1.gz

          7)[root@localhost packages]# rpm -qi ftp-0.17-66.el7.x86_64       查看指定软件包的信息

    [root@localhost packages]# yum install ftp
    已加载插件:fastestmirror, langpacks
    Loading mirror speeds from cached hostfile
     * base: mirrors.cqu.edu.cn
     * extras: mirrors.cqu.edu.cn
     * updates: mirrors.cqu.edu.cn
    软件包 ftp-0.17-66.el7.x86_64 已安装并且是最新版本
    无须任何处理
    [root@localhost packages]# rpm -qi ftp-0.17-66.el7.x86_64
    Name        : ftp
    Version     : 0.17
    Release     : 66.el7
    Architecture: x86_64
    Install Date: 2016年06月21日 星期二 11时26分00秒
    Group       : Applications/Internet
    Size        : 98691
    License     : BSD with advertising
    Signature   : RSA/SHA256, 2014年07月03日 星期四 18时25分20秒, Key ID 24c6a8a7f4a80eb5
    Source RPM  : ftp-0.17-66.el7.src.rpm
    Build Date  : 2014年06月09日 星期一 13时01分11秒
    Build Host  : worker1.bsys.centos.org
    Relocations : (not relocatable)
    Packager    : CentOS BuildSystem <http://bugs.centos.org>
    Vendor      : CentOS
    URL         : ftp://ftp.linux.org.uk/pub/linux/Networking/netkit
    Summary     : The standard UNIX FTP (File Transfer Protocol) client
    Description :
    The ftp package provides the standard UNIX command-line FTP (File
    Transfer Protocol) client.  FTP is a widely used protocol for
    transferring files over the Internet and for archiving files.
    
    If your system is on a network, you should install ftp in order to do
    file transfers.
    [root@localhost packages]# yum info ftp-0.17-66.el7.x86_64
    已加载插件:fastestmirror, langpacks
    Loading mirror speeds from cached hostfile
     * base: mirrors.cqu.edu.cn
     * extras: mirrors.cqu.edu.cn
     * updates: mirrors.cqu.edu.cn
    已安装的软件包
    名称    :ftp
    架构    :x86_64
    版本    :0.17
    发布    :66.el7
    大小    :96 k
    源    :installed
    来自源:anaconda
    简介    : The standard UNIX FTP (File Transfer Protocol) client
    网址    :ftp://ftp.linux.org.uk/pub/linux/Networking/netkit
    协议    : BSD with advertising
    描述    : The ftp package provides the standard UNIX command-line FTP (File
             : Transfer Protocol) client.  FTP is a widely used protocol for
             : transferring files over the Internet and for archiving files.
             : 
             : If your system is on a network, you should install ftp in order to do
             : file transfers.

        8)[root@localhost packages]# rpm -i ftp://ftp.linux.org.uk/pub/linux/Networking/netkit        直接从网址下载(-i参数)

        9)[root@localhost packages]# rpm -i -vv ftp://ftp.linux.org.uk/pub/linux/Networking/netkit      显示指令执行的细节(-vvc参数)

    [root@localhost packages]# rpm -i ftp://ftp.linux.org.uk/pub/linux/Networking/netkit
    curl: (78) RETR response: 550
    错误:跳过 ftp://ftp.linux.org.uk/pub/linux/Networking/netkit - 传输失败
    [root@localhost packages]# rpm -i -vv ftp://ftp.linux.org.uk/pub/linux/Networking/netkit
    获取ftp://ftp.linux.org.uk/pub/linux/Networking/netkit
    curl: (78) RETR response: 550
    错误:跳过 ftp://ftp.linux.org.uk/pub/linux/Networking/netkit - 传输失败
    [root@localhost packages]# rpm -e ftp
    [root@localhost packages]# rpm -i -vv ftp://ftp.linux.org.uk/pub/linux/Networking/netkit
    获取ftp://ftp.linux.org.uk/pub/linux/Networking/netkit
    curl: (78) RETR response: 550
    错误:跳过 ftp://ftp.linux.org.uk/pub/linux/Networking/netkit - 传输失败
    [root@localhost packages]# wget ftp://ftp.linux.org.uk/pub/linux/Networking/netkit      //用wget测试是否能下载时,发现也是不行的,说明是网址的问题。
    --2016-06-22 08:23:18--  ftp://ftp.linux.org.uk/pub/linux/Networking/netkit
               => “netkit”
    正在解析主机 ftp.linux.org.uk (ftp.linux.org.uk)... 195.92.253.2, 2002:c35c:fd02::1
    正在连接 ftp.linux.org.uk (ftp.linux.org.uk)|195.92.253.2|:21... 已连接。
    正在以 anonymous 登录 ... 登录成功!
    ==> SYST ... 完成。   ==> PWD ... 完成。
    ==> TYPE I ... 完成。 ==> CWD (1) /pub/linux/Networking ... 完成。
    ==> SIZE netkit ... 完成。
    ==> PASV ... 无法连接到 0.0.0.0 端口号 19392: 拒绝连接               //指定网站拒绝连接

        (5)其它:

        rpm的详细介绍:

        1)简介:

      RPM(Red Hat Package Manager),是Red Hat 软件包管理器。RPM包里面包含有"可执行的二进制程序";"程序运行时所需要的文件"。

      一个RPM 包中的应用程序,有时除了自身所带的附加文件保证其正常以外,还需要其它特定版本文件,这就是软件包的依赖关系。依赖关系并不是Linux特有的, Windows操作系统中也是同样存在的;比如我们在Windows系统中运行3D游戏,在安装的时候,他可能会提示,要安装Direct 9 ;Linux和Windows原理是差不多的。

      一个软件包安装的流程图:

        2)RPM软件包管理器的全面用途:

      1.可以安装、删除、升级和管理软件;当然也支持在线安装和升级软件;
      2.通过RPM包管理能知道软件包包含哪些文件,也能知道系统中的某个文件属于哪个软件包;
      3.可以在查询系统中的软件包是否安装以及其版本;
      4.作为开发者可以把自己的程序打包为RPM 包发布;
      5.软件包签名GPG和MD5的导入、验证和签名发布
      6.依赖性的检查,查看是否有软件包由于不兼容而扰乱了系统;

        3)RPM 的使用权限:

          RPM软件的安装、删除、更新只有root权限才能使用;对于查询功能任何用户都可以操作;如果普通用户拥有安装目录的权限,也可以进行安装。

          不是所有的软件包都能通过rpm 命令来安装,只有以.rpm结尾的软件包才可以。

        4)当rpm系统出了不能安装和查询的问题时:

    [root@localhost packages]rpm -initdb
    [root@localhost packages]rpm -rebuilddb            //这个命令需要执行很长时间
  • 相关阅读:
    韩式英语
    Daily dictation 听课笔记
    words with same pronunciation
    you will need to restart eclipse for the changes to take effect. would you like to restart now?
    glottal stop(britain fountain mountain)
    education 的发音
    第一次用Matlab 的lamada语句
    SVN的switch命令
    String的split
    SVN模型仓库中的资源从一个地方移动到另一个地方的办法(很久才解决)
  • 原文地址:https://www.cnblogs.com/MenAngel/p/5608990.html
Copyright © 2011-2022 走看看