首页 > 代码库 > rpm---linux软件安装与管理

rpm---linux软件安装与管理

linux的安装命令选项太多,整理一下,方便后期查找.

 

汇总:

install:  rpm -ivh 包全名  安装

upgrade:  rpm -Uvh 包全名  升级

erase:  rpm -e 包名  删除 

search rpm:

  rpm -q 包名  查询软件包是否安装 

  rpm -qa  查询所有已经安装的rpm包 

  rpm -qi 包名  查询已安装的rpm信息

  rpm -qip 包名  查询未安装的rpm信息

  rpm -ql 包名  查看rpm的安装位置

  rpm -qlp 包名  查看rpm的预设安装位置

  rpm -qf 系统文件名  eg:  rpm -qf /usr/share/locale/de/LC_MESSAGES/lrzsz.mo  查看文件输入哪个rpm包

rpm校验

  rpm -V 已安装的包名

rpm包中的文件提取----处理一些系统文件丢失时,可以用到

  rpm2cpio 包全名 | cpio -idv .文件绝对路径  eg:  rpm2cpio /mnt/cdrom/Packages/coreutils-5.97-23.el5.rpm | cpio -idv ./bin/ls

 

yum--rpm的在线安装方法!!!

 

其他参考博客:

 

RPM 命令大全

Linux学习之CentOS(二十三)--Linux软件管理之源代码以及RPM软件包管理

 

 

----------------------------------------------------以下是详细信息----------------------------------------------------

 

RedHatCentOS中

linux软件包主要分为两类

  • 源码包

    脚本安装包---所谓的脚本安装包就是封装安装源码包和二进制包的安装过程.

  • 二进制包(RPM包 系统默认包)

rpm包所在位置:rpm包一般在系统光盘的Packages目录中.

命名规则:httpd-2.2.15-15.e16.centos.1.i686.rpm--------包全名-----------操作的包是没有安装的软件包时,使用包全名,注意路径!!!  eg:install upgrade

--httpd软件包名---------------------------------------------------包名--------------操作已经安装的软件包时,适用包名,(搜索的/var/lib/rpm/中的数据库)  eg:erase search

--2.2.15 software version

--15软件发布的次数

--e16.centos适用linux平台

--i686适用的硬件平台

--rpm-rpm包扩展名

 

rpm包依赖性:

  • 树形依赖:a-->b-->c    解决方法:先install c,再install b,最后install a.
  • 环形依赖:a-->b-->c-->a    解决方法:同时install a/b/c
  • 模块依赖(库文件依赖):查询Url:http://www.rpmfind.net/    解决方法:先install 含有依赖文件(.so)的rpm包,再安装目标rpm包.

 

rpm安装:

rpm -ivh 包全名    一般先install主包,再install附加包

option:

  -i  install安装

  -v  verbose显示详细信息

  -h  hash显示进度

  --nodeps不检测依赖性---------------没事别强制安装,就算安装上软件也不可用.

注意:显示2个100%才时真正安装成功!!!  第一个只是准备成功而已.

技术分享

 

rpm升级:

rpm -Uvh 包全名

options:

  -U  upgrade 升级

如果安装包比当前版本高,则执行升级操作.否则不会安装.如果当前并没有没有安装,等同于安装命令. 

 

rpm卸载:

rpm -e 包名

options:

  -e  erase 卸载

  --nodeps不检测依赖性

eg:  rpm -e httpd

卸载时,需要先下载依赖它的其他包.

 

rpm查询:

  • 查询软件包是否安装

rpm -q 包名

#查询包是否安装

  -q  查询(query)

[root@localhost ~]# rpm -q gedit
gedit-2.16.0-9.el5
[root@localhost ~]# 

 

rpm -qa

#查询所有已经安装的rpm包

  -a  所有 all

  • 查询软件包详细信息

rpm -qi 包名

options:

  -i  查询软件信息 information

  -p  查询未安装包信息 package

[root@localhost ~]# rpm -qi gedit
Name        : gedit                        Relocations: (not relocatable)
Version     : 2.16.0                            Vendor: Red Hat, Inc.
Release     : 9.el5                         Build Date: 2008年01月09日 星期三 23时13分50秒
Install Date: 2014年06月24日 星期二 18时45分10秒      Build Host: hs20-bc2-4.build.redhat.com
Group       : Applications/Editors          Source RPM: gedit-2.16.0-9.el5.src.rpm
Size        : 17719102                         License: GPL
Signature   : DSA/SHA1, 2008年01月10日 星期四 20时04分02秒, Key ID 5326810137017186
Packager    : Red Hat, Inc. <http://bugzilla.redhat.com/bugzilla>
URL         : http://gedit.sourceforge.net/
Summary     : gEdit is a small but powerful text editor for GNOME
Description :
gEdit 是一个小型的文本编辑器。它是特为 GNOME GUI
桌面而设计的。gEdit 包括一个插件 API(支持可扩展性,
同时又保持核心二进制程序的小巧),支持使用笔记本标
签来编辑多重文档,以及标准的文本编辑器功能。

您需要安装 GNOME 和 GTK+ 来使用 gEdit。
[root@localhost ~]# 
 1 [root@localhost software]# rpm -qip httpd-2.2.3-91.el5.centos.x86_64.rpm 
 2 warning: httpd-2.2.3-91.el5.centos.x86_64.rpm: Header V3 DSA signature: NOKEY, key ID e8562897
 3 Name        : httpd                        Relocations: (not relocatable)
 4 Version     : 2.2.3                             Vendor: CentOS
 5 Release     : 91.el5.centos                 Build Date: 2014年09月16日 星期二 23时09分48秒
 6 Install Date: (not installed)               Build Host: builder17.centos.org
 7 Group       : System Environment/Daemons    Source RPM: httpd-2.2.3-91.el5.centos.src.rpm
 8 Size        : 3325176                          License: Apache Software License
 9 Signature   : DSA/SHA1, 2014年09月19日 星期五 19时48分33秒, Key ID a8a447dce8562897
10 URL         : http://httpd.apache.org/
11 Summary     : Apache HTTP 服务器
12 Description :
13 The Apache HTTP Server is a powerful, efficient, and extensible
14 web server.
15 [root@localhost software]# 
  •  查询包中文件安装位置

rpm -ql 包名

options:

  -l  列表 list

  -p  查询未安装包将要安装在哪里信息 package

 1 [root@localhost software]# rpm -qlp httpd-2.2.3-91.el5.centos.x86_64.rpm 
 2 warning: httpd-2.2.3-91.el5.centos.x86_64.rpm: Header V3 DSA signature: NOKEY, key ID e8562897
 3 /etc/httpd
 4 /etc/httpd/conf
 5 /etc/httpd/conf.d
 6 /etc/httpd/conf.d/README
 7 /etc/httpd/conf.d/proxy_ajp.conf
 8 /etc/httpd/conf.d/welcome.conf
 9 /etc/httpd/conf/httpd.conf
10 /etc/httpd/conf/magic
11 /etc/httpd/logs
12 /etc/httpd/modules
13 /etc/httpd/run

rpm默认安装位置--------------并非硬性标准,仅仅是习惯安装位置,个别软件是有不遵守此标准的.

/etc/    配置文件安装目录

/usr/bin/    可执行命令安装目录

/usr/lib/    程序所使用的函数库保存位置

/usr/share/doc/    基本的软件使用手册保存位置

/usr/share/man    帮助文件保存位置

 

  • 查询系统文件属于哪个rpm包

rpm -qf 系统文件名(必须是通过rpm安装出来的文件才可以进行反向查询)

options:

  -f  查询系统文件属于哪个软件包 file

 1 [root@localhost var]# rpm -ql lrzsz
 2 /usr/bin/rb
 3 /usr/bin/rx
 4 /usr/bin/rz
 5 /usr/bin/sb
 6 /usr/bin/sx
 7 /usr/bin/sz
 8 /usr/share/locale/de/LC_MESSAGES/lrzsz.mo
 9 /usr/share/man/man1/rz.1.gz
10 /usr/share/man/man1/sz.1.gz
11 [root@localhost var]# rpm -qf /usr/share/locale/de/LC_MESSAGES/lrzsz.mo
12 lrzsz-0.12.20-22.1
13 [root@localhost var]# 

 

  • 查询软件包依赖性

rpm -qR 包名

options:

  -R  查询软件包的依赖性 requires

  -p  查询未安装包的信息 package

 1 [root@localhost var]# rpm -qR lrzsz
 2 libc.so.6  
 3 libc.so.6(GLIBC_2.0)  
 4 libc.so.6(GLIBC_2.1)  
 5 libc.so.6(GLIBC_2.3)  
 6 libc.so.6(GLIBC_2.3.4)  
 7 libc.so.6(GLIBC_2.4)  
 8 libnsl.so.1  
 9 rpmlib(CompressedFileNames) <= 3.0.4-1
10 rpmlib(PartialHardlinkSets) <= 4.0.4-1
11 rpmlib(PayloadFilesHavePrefix) <= 4.0-1
12 rtld(GNU_HASH)  
13 [root@localhost var]# rpm -qRp /root/software/httpd-2.2.3-91.el5.centos.x86_64.rpm 
14 warning: /root/software/httpd-2.2.3-91.el5.centos.x86_64.rpm: Header V3 DSA signature: NOKEY, key ID e8562897
15 /bin/bash  
16 /bin/mktemp  
17 /bin/mv  
18 /bin/rm  
19 /bin/sh  
20 /bin/sh  
21 /bin/sh  
22 /bin/sh  
23 /bin/sh  
24 /etc/mime.types  
25 /sbin/chkconfig  
26 /usr/bin/find  

 

 rpm包校验:

rpm -V 已安装的包名

options:

  -V  校验指定rpm包中的文件  verify  没有任何输出,则代表OK;如果显示出信息,则代表文件被动了手脚--文件被修改.

技术分享

技术分享

 

rpm包中的文件提取

rpm2cpio 包全名 | cpio -idv .文件绝对路径

  rpm2cpio  将rpm包转换为cpio格式的命令

  cpio  是一个标准工具,用于创建软件档案和从档案文件中提取文件

cpio 选项 < [文件|设备]

options:

  -i  copy-in模式,还原

  -d  还原时自动新建目录

  -v  显示还原过程

1 [root@localhost ~]# rpm -qf /bin/ls
2 coreutils-5.97-23.el5
3 [root@localhost ~]# rpm2cpio /mnt/cdrom/Packages/coreutils-5.97-23.el5.rpm | cpio -idv ./bin/ls
4 [root@localhost ~]# cp /root/bin/ls /bin/

 

rpm---linux软件安装与管理