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/