所属分类: linux&Unix 整理: FengNet.Com 更新日期:2007/5/17 10:49:56 阅读次数:4619

Linux软件安装之RPM的安装技巧


1.如何安装rpm软件包
rmp软件包的安装可以使用程序rpm来完成。执行下面的命令
rpm -i your-package.rpm
其中your-package.rpm是你要安装的rpm包的文件名,一般置于当前目录下。
安装过程中可能出现下面的警告或者提示:
... conflict with ... 可能是要安装的包里有一些文件可能会覆盖现有
的文件,缺省时这样的情况下是无法正确安装的可以用
rpm --force -i 强制安装即可
... is needed by ...
... is not installed ... 此包需要的一些软件你没有安装可以用
rpm --nodeps -i 来忽略此信息
也就是说,rpm -i --force --nodeps 可以忽略所有依赖关系和文件问题,什么包
都能安装上,但这种强制安装的软件包不能保证完全发挥功能

2.如何安装.src.rpm软件包
有些软件包是以.src.rpm结尾的,这类软件包是包含了源代码的rpm包,在安装时
需要进行编译。这类软件包有两种安装方法,
方法一:
1.执行rpm -i your-package.src.rpm
2. cd /usr/src/redhat/SPECS
3. rpmbuild -bp your-package.specs 一个和你的软件包同名的specs文件
4. cd /usr/src/redhat/BUILD/your-package/ 一个和你的软件包同名的目录
5. ./configure 这一步和编译普通的源码软件一样,可以加上参数
6. make
7. make install

方法二:
1.执行rpm -i you-package.src.rpm
2. cd /usr/src/redhat/SPECS
前两步和方法一相同
3. rpmbuild -bb your-package.specs 一个和你的软件包同名的specs文件
这时,在/usr/src/redhat/RPM/i386/ (根据具体包的不同,也可能是i686,noarch等等)
在这个目录下,有一个新的rpm包,这个是编译好的二进制文件。
执行rpm -i new-package.rpm即可安装完成。

3.如何卸载rpm软件包
使用命令 rpm -e 包名,包名可以包含版本号等信息,但是不可以有后缀.rpm
比如卸载软件包proftpd-1.2.8-1,可以使用下列格式:
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
有时会出现一些错误或者警告:
... is needed by ... 这说明这个软件被其他软件需要,不能随便卸载
可以用rpm -e --nodeps强制卸载

4.如何不安装但是获取rpm包中的文件
使用工具rpm2cpio和cpio
rpm2cpio xxx.rpm | cpio -vi
rpm2cpio xxx.rpm | cpio -idmv
rpm2cpio xxx.rpm | cpio --extract --make-directories
参数i和extract相同,表示提取文件。v表示指示执行进程
d和make-directory相同,表示根据包中文件原来的路径建立目录
m表示保持文件的更新时间。

5.如何查看与rpm包相关的文件和其他信息
下面所有的例子都假设使用软件包mysql-3.23.54a-11
1.我的系统中安装了那些rpm软件包
rpm -qa 讲列出所有安装过的包
如果要查找所有安装过的包含某个字符串sql的软件包
rpm -qa |grep sql

2.如何获得某个软件包的文件全名
rpm -q mysql 可以获得系统中安装的mysql软件包全名,从中可以获得
当前软件包的版本等信息。这个例子中可以得到信息mysql-3.23.54a-11

3.一个rpm包中的文件安装到那里去了?
rpm -ql 包名
注意这里的是不包括.rpm后缀的软件包的名称
也就是说只能用mysql或者mysql-3.23.54a-11而不是mysql-3.23.54a-11.rpm。
如果只是想知道可执行程序放到那里去了,也可以用which,比如
which mysql

4.一个rpm包中包含那些文件
一个没有安装过的软件包,使用rpm -qlp ****.rpm
一个已经安装过的软件包,还可以使用rpm -ql ****.rpm

5.如何获取关于一个软件包的版本,用途等相关信息?
一个没有安装过的软件包,使用rpm -qip ****.rpm
一个已经安装过的软件包,还可以使用rpm -qi ****.rpm

6.某个程序是哪个软件包安装的,或者哪个软件包包含这个程序
rpm -qf `which 程序名` 返回软件包的全名
rpm -qif `which 程序名` 返回软件包的有关信息
rpm -qlf `which 程序名` 返回软件包的文件列表
注意,这里不是引号,而是`,就是键盘左上角的那个键。
也可以使用rpm -qilf,同时输出软件包信息和文件列表

7.某个文件是哪个软件包安装的,或者哪个软件包包含这个文件
注意,前一个问题中的方法,只适用与可执行的程序,而下面的方法,不仅可以
用于可执行程序,也可以用于普通的任何文件。前提是知道这个文件名。
首先获得这个程序的完整路径,可以用whereis或者which,然后使用rpm -qf例如:
# whereis ftptop
ftptop: /usr/bin/ftptop /usr/share/man/man1/ftptop.1.gz
# rpm -qf /usr/bin/ftptop
proftpd-1.2.8-1
# rpm -qf /usr/share/doc/proftpd-1.2.8/rfc/rfc0959.txt
proftpd-1.2.8-1

总结:
获得软件包相关的信息用rpm -q,q表示查询query,后面可以跟其他选项,比如
i 表示info,获得软件包的信息;
l 表示list,获得文件列表;
a 表示all,在所有包中执行查询;
f 表示file,根据文件进行相关的查询;
p 表示package,根据软件包进行查询
需要的查询条件可以使用grep产生,或者从"` `"中的命令行产生

6.关于rpm软件包的一些相关知识
1.什么是rpm
rpm 即RedHat Package Management,是RedHat的发明之一

2.为什么需要rpm
在一个操作系统下,需要安装实现各种功能的软件包。这些软件包一般都有各自的
程序,但是同时也有错综复杂的依赖关系。同时还需要解决软件包的版本,以及安装,
配置,卸载的自动化问题。为了解决这些问题,RedHat针对自己的系统提出了一个
较好的办法来管理成千上百的软件。这就是RPM管理系统。在系统中安装了rpm管理系统
以后,只要是符合rpm文件标准的打包的程序都可以方便的安装,升级,卸载

3.是不是所有的linux都使用rpm
任何系统都需要包管理系统,因此很多linux都使用rpm系统。但rpm系统是为RH专门
但是TL,Mandrake等系统也都使用rpm。由于rpm的源程序可以在别的系统上进行编译,
所以有可能在别的系统上也使用rpm
除了rpm,其他一些系统也有自己的软件包管理程序,例如debian的deb包,
slakware也都有自己的包管理系统

4.rpm包的文件名为什么那么长
rpm包的文件名中包含了这个软件包的版本信息,操作系统信息,硬件要求等等。
比如mypackage-1.1-2TL.i386.rpm,其中mypackage是在系统中登记的软件包的名字
1.1是软件的版本号,2是发行号,TL表示用于TL操作系统,还可能是RH等。i386表示
用于intel x86平台,还可能是sparc等。

5.软件包文件名中的i386,i686是什么意思
rpm软件包的文件名中,不仅包含了软件名称,版本信息,还包括了适用的硬件架构
的信息。
i386指这个软件包适用于intel 80386以上的x86架构的计算机(AI32)
i686指这个软件包适用于intel 80686以上(奔腾pro以上)的x86架构的计算机(IA32)
noarch指这个软件包于硬件架构无关,可以通用。
i686软件包的程序通常针对CPU进行了优化,所以,向后兼容比较用以,i386的包在
x86机器上都可以用。向前一般不兼容。不过现在的计算机,奔腾pro以下的CPU已经很少
用,通常配置的机器都可以使用i686软件包

6.不同操作系统发行的rpm包可否混用?
对于已经编译成二进制的rpm包,由于操作系统环境不同,一般不能混用。
对于以src.rpm发行的软件包,由于需要安装时进行本地编译,所以通常可以在不同
系统下安装。

7.使用rpm时遇到的一些特殊问题
Q 我用rpm -e **.rpm无法删除rpm包
A 包名不要包括rpm,
rpm -e 包名,可以包含版本号等信息,但是不可以有后缀.rpm

Q 在MS的系统下有没有读RPM文件的工具?
A wincmd with rpm plugins.....

Q 是否可以通过ftp安装安装升级rpm包?
A 可以。rpm -ivh ftp://xxxxxxxx/PATH2SomeRPM

Q rpm安装时已有的包版本过高怎么办?
A 有时由于安装的软件包太老,而系统中相关的软件包版本比较新,所以可能需要
安装的包依赖的一些文件会找不到。这时有两种解决办法,
第一是在系统文件中找到和需要的文件功能相同或相似的文件,做一个符号链接到
需要的目录下。


--------------------------------------------------------------------------------

相关文章
Centos 6 安装nslookup命令 2017/12/29 16:46:44
磁盘RAID 2015/10/9 10:51:47
让history显示详细执行时间,及linux历史命令使用技巧 2015/9/25 10:16:58
修改ls目录的颜色 2015/1/10 17:22:11
Linux故障排除技术和修复技巧 2014/12/18 15:52:44
Centos Bind配置完整版 2014/11/10 16:08:33
bash漏洞解决方案 2014/10/16 12:00:25
RedHat 5.X、6.X Bash漏洞RPM补丁包下载 2014/10/16 11:58:15
iSCSI配置 2014/4/21 10:42:52
中文Linux Command 2013/5/28 11:25:48
SUSE Linux 11里Nginx+Resin+JSP+Memcached+MySQL安装配置整合 2013/3/15 16:59:34
Fail2ban简介 2012/3/30 10:53:11
CentOS yum的详细使用方法 2012/3/29 15:45:49
centos一些常用命令的备忘录 2012/3/29 15:45:16
Centos上用yum命令进行更新 2012/3/29 15:42:23
三大常见的Linux引导问题与解决方案 2011/10/23 13:14:42
Postfix配置Q&A 2011/10/22 9:42:16
POSTFIX邮局系统搭建全过程 2011/10/22 9:33:19
linux rescue 救援模式 2010/4/16 15:21:13
Linux配置Apache服务器全攻略 2010/4/16 15:17:51
iSCSI的配置(target/initiator) 2010/4/5 11:54:59
RHEL 5系统下故障处理方法 2008/9/28 16:20:08
vsftpd架设匿名FTP,本地用户和虚拟用户mysql登录 2008/4/27 8:23:51
vsftpd on RHL 9.0 虚拟用户设置ftp 2008/4/27 8:15:01
vsftp配置大全---完整版 2008/4/27 8:13:22
Linux下一般最常用的工具wu-ftpd. 2008/4/27 8:04:14
Vsftpd快速安装配置参考(适用于各类linux/unix系统) 2008/4/27 7:59:45
一个强大的文件下载工具curl 2007/12/24 14:35:15
方便的网络下载工具wget 2007/12/24 14:34:15
NTP网络时钟协议的实现 2007/6/6 15:43:49
linux内核编译步骤 2007/5/29 7:19:24
Linux下常用应用软件列表 2007/5/29 7:12:53
Linux 下实现网卡高可用性的几种方法 2007/5/28 17:42:06
用rsync实现网站镜像和备份 2007/5/17 17:43:10
彻底卸载rpm软件包的脚本 2007/5/17 10:50:23
如何改变一个网卡的速度,工作方式或者其他的参数? 2007/5/15 7:57:58
怎样设置cron任务? 2007/5/15 7:55:15
iptables防火墙配置工具ShoreWall的安装和使用实例 2007/3/22 10:32:05
shorewall 企业防火墙的完美实现 2007/3/22 8:37:20
linux common command 2007/2/1 20:13:16
基于FreeBSD5.4全能服务器安装 2007/2/1 17:19:40
UNIX应急响应攻略 2006/12/14 13:41:20
Linux安全配置步骤简述 2006/12/14 13:36:24
freeradius+mysql为华为防火墙做vpn用户验证 2006/9/4 8:50:45
安装SCSI硬盘 安装、启动、设置篇 2006/7/24 10:03:13
用snort和空IP做一个安全的log纪录服务器 2006/6/17 11:09:10
chroot bind on RedHat9 安裝實錄 2006/5/29 11:10:16
网络安全讲座之八:审计结果 2006/5/24 19:46:24
网络安全讲座之七:IDS系统 2006/5/24 19:45:52
使用OPENVPN实现各机房的互通 2006/5/8 14:34:04
OpenVPN使用User/Pass验证登录 2006/5/8 14:33:08
vsftp配置大全 2006/5/6 18:17:32
建立一个带宽、线程可控的下载型WEB网站 2006/4/30 13:53:11
Linux 作为 DHCP 服务器 2006/4/30 13:47:54
SNARE-系统入侵分析和报告环境 2006/4/30 13:16:31
Linux下配置完整安全的DHCP服务器详解 2006/4/30 12:46:51
向P2P通信宣战(关于封BT下载软件) 2006/4/4 8:07:19
Cisco IOS命名规则 2005/11/26 20:11:25
在RedHat9上构建小型的入侵检测系统 2005/9/20 14:14:17
Web服务器日志统计分析完全解决方案 2005/8/10 12:27:24
网络流量监控器mrtg全攻略 2005/6/17 15:03:36
dos下用grub.exe修复启动故障 2005/6/10 21:10:44
vsftpd架设匿名FTP,本地用户和虚拟用户mysql登录 2005/6/3 12:12:34
netfilter/iptables模块编译及应用 2005/6/3 12:04:20
GRUB安装,配置及使用汇总 2005/4/20 12:19:49
在AS3.0上安装oracle 10g 2004/11/29 8:43:02
100多道简单网络基础题(答案) 2004/11/9 10:09:43
常用的tar和rpm命令参数列表 2004/10/19 8:42:27
rpm 常用命令 2004/9/9 9:59:23
网络流量监控器mrtg全攻略 2004/8/21 10:14:35
使用Mrtg监控网络流量(Linux版本) 2004/8/21 10:06:06
linux环境下发现并阻止系统攻击 2004/7/1 13:37:59
Apache2+php4.3.6+MySQL4.0.20+SSL详细配置过程 2004/6/28 17:34:02
VNC的安装与使用 2004/5/26 14:06:49
Linux一句话精彩问答-网络相关篇 2004/5/26 13:44:58
Linux一句话精彩问答-网络无关篇 2004/5/26 13:43:14
Linux实现简单而有效的IDS系统 2004/2/20 13:45:34
安全的log纪录服务器 2004/1/24 19:17:43
RPM 大全 (转) 2003/12/31 21:22:05
Linux软件安装一般方法 2003/12/31 20:57:02
LINUX新手入门及安装配置faq200(下) 2003/12/31 20:54:57
LINUX新手入门及安装配置faq200(上) 2003/12/31 20:51:43
Rhl9.0中qq必杀 2003/12/31 20:47:00
在RedHat9下配置时间服务器 2003/12/31 20:35:06
好用的Linux小工具:Autofs 2003/12/31 20:21:19
使用x-window的远程显示 2003/12/31 20:09:46
在unix linux下安装配置DHCP服务 2003/12/31 20:00:40
linux经典问题==网络篇 2003/10/30 11:20:02
linux经典问题==基础篇 2003/10/30 11:19:02
LINUX 常见问题1000个详细解答 2003/10/29 14:13:25
RedHat 9.0上ADSL最终解决方案 2003/10/23 15:12:36
【FAQ】RPM软件包使用常见问题 2003/9/17 8:35:09
Linux服务器的一些基本应用 2003/8/15 12:11:07
RedHat7.3 上建立网通拨号的上网共享 2003/8/15 11:03:32
Linux下如何接ADSL一类的宽带猫带动局域网上internet (转) 2003/8/15 10:45:23
Linux系统命令分类详解(1) 2003/8/12 9:22:30
Debian GNU/Linux下的入侵检测系统 2003/8/12 8:41:10
Redhat advance server 2.1集群的安装与管理 2003/8/12 8:21:31
linux常见问题FAQ 2003/7/30 18:01:57
iptables基础,绝对的基础 2003/7/30 17:17:23
构建小型的入侵检测系统(RedHat9) 2003/7/30 16:50:32
Linux下软件的基本安装和卸载 2003/7/28 9:28:29
用实验快速学习Samba 2003/7/21 8:40:19
用实验快速掌握DNS配置 2003/7/21 8:38:23
iptables扩展功能的增加 2003/7/19 19:11:25
网络流量监控器mrtg全攻略 2003/7/14 9:37:34
使用Mrtg监控网络流量 2003/7/14 9:36:09
Oracle 9.2.0.1 on redhat 8 精装版 2003/7/14 8:33:33
Installing Oracle 9i R2 (9.2.0.1.0) on Red Hat 9 2003/7/14 8:31:06
redhat linux 9.0的samba设置详解(原创) 2003/7/13 18:15:31
常用的Linux网络安全工具介绍 2003/7/13 18:11:03
SSH 指南 2003/7/13 18:06:29
非常全面的NFS文档(FOR LINUX) 2003/7/13 18:04:38
学习Linux的七点忠告 2003/7/13 17:48:46
在RedHat9.0上安装Oracle9i数据库 2003/7/4 9:39:09
理解 Linux 配置文件 2003/7/4 9:25:55
Linux代理服务全攻略 2003/6/27 8:24:29
完美安装mplayer手册 2003/6/27 8:16:55
DNS在RH8.0上的成功配置 2003/5/25 20:58:28
Linux 组网入门 2003/5/25 20:56:32
Linux新手入门教程 2003/5/16 23:18:21
Linux 学习手册--linux命令大全 2003/5/14 10:04:59
PHP中运行只有root用户才可以运行的外部程序 2003/4/27 10:55:04
Linux下的sniffer工具--Tcpdump的安装和使用 2003/4/9 9:29:52
构建基于 LDAP 的地址簿 2003/4/2 19:56:44
常用的tar和rpm命令参数列表 2003/3/25 10:08:14
rpm使用技巧 2003/3/25 10:06:33
Linux中软件安装及技巧 2003/3/25 10:05:00
Red Hat 8.0上通过RPM安装PPTPD服务器 2003/3/25 9:23:42
在 Linux 上安装Apache+ApacheJServ+JSP 2003/3/24 19:52:00
如何规划 Linux 主机 2003/3/24 16:00:23
Linux服务器的一些基本应用 2003/3/24 10:43:09
Redhat 8.0 下Gaim0.58 for QQ、MSN完全教程 2003/3/24 10:41:15
ProFtpd快速指南 2003/3/17 15:27:03
使用 rpm 的一些方法 2003/3/17 15:26:21
RPM命令手册 2003/3/17 14:56:10
linux99问 2003/3/11 18:37:18
Linux简明系统维护手册 2003/3/11 18:35:40
Linux中的十个“快速” 2003/3/11 18:33:53
简易防火墙建置与流量统计之五 2003/2/22 14:45:12
Linux环境下发现并阻止系统攻击 2003/2/22 14:12:24
LINUX安全管理10要点 2003/2/21 22:15:46
Linux常见文件类型 2003/2/21 22:05:43
Linux简明系统维护手册5 2003/2/18 19:48:03
Linux简明系统维护手册1 2003/2/18 19:40:38
linux常用精华网址 2003/2/18 15:07:43
简易防火墙建置与流量统计 2003/2/18 14:54:01
redhat7.2 DNS配置笔记 2003/2/1 13:57:05
Netfilter/Iptables的防火墙功能介绍 1 2003/1/12 16:18:20
注册码 2002/11/9 12:45:44
通用序列号 2002/11/9 12:44:35


感性空间
设计&运维
网络技术
休闲娱乐
NetFilter
linux&Unix
网络安全
程序空间
软件考试
RFC&ISO
规划&规范
虚拟&存储
Apple技巧
云计算&大数据



文章搜索



站内搜索