RedHat下的RPM包的使用
文/heiyeluren
我们知道FreeBSD下有Ports这个安装程序的好东东,在RedHat下同样有一个强悍的东西,叫做RPM(Redhat Pagckage Manage)的好东东,它管理程序非常强悍,事实上,目前RPM的管理方式已经成为Linux下的一种标准,是很多Linux系统的程序安装方式。我刚学Redhat,就简单讲讲它的使用管理。
首先你要确认的系统中有RPM这个工具,如果没有的话,马上去安装。
RPM对文件的管理,包括对文件版本信息的查询、包的关联、包的拥有程序、包的升级、已安装包的删除等等,另外关于RPM数据库,自己做RPM包和RPM包的安全性,PGP秘钥等就不讲了,请参考类似书籍或者教程,只是讲点简单的东西。
1. 已经安装程序的信息查询
# rpm -q pagckagename
如:
# rpm -q setup
setup-2.5.25-1
得到我们的安装程序的版本信息
2. 文件拥有的包
# rpm -qf filename
如:
# rpm -qf /etc/passwd
setup-2.5.25-1
证明我们的/etc/passwd文件是由setup安装生成的。
3. 一个包所包含的文件分布
# rpm -ql pagckagename
如:
# rpm -ql setup
/etc/bashrc
/etc/csh.cshrc
/etc/csh.login
/etc/exports
/etc/filesystems
/etc/group
/etc/host.conf
/etc/hosts.allow
/etc/hosts.deny
/etc/inputrc
/etc/motd
/etc/passwd
/etc/printcap
/etc/profile
/etc/profile.d
/etc/protocols
/etc/securetty
/etc/services
/etc/shells
/usr/share/doc/setup-2.5.25
/usr/share/doc/setup-2.5.25/uidgid
/var/log/lastlog
4. 安装RPM包
# rpm -i packagename
假设要安装一个RPM的包,那么对应就必须知道包的路径,可以从本地路径,光盘,网络等上面的包进行安装。
同时也可以对多个包进行安装
如:
# rpm -i /mnt/cdrom/RedHat/RPMS/setup-*
同时对所有光盘里面RedHat/RPMS/目录下所有以setup开头的包进行安装。
也可以从网络上进行包的安装:
# rpm -ivh ftp://anonymous@ftp.redhat.com/pub/redhat/linux/rawhide/i386/RPMS/lynx-*
从redhat官方的FTP服务器上进行我们的包的安装,如果需要口令的话可以直接在上面输入,但是我不推荐,容易暴露口令在网络上。
上面的 -v和-h参数是是扩展设置带散列的冗长输出,可以监视安装进程。
5. 包的升级
包的升级是有风险的,有些程序进行了配置,如果升级后,可能丢失配置信息。
要升级包可以使用下面的命令:
# rpm -U packagename
# rpm -F packagename
-U-F都能够升级包,差别在于没有已安装的RMP包时,-U命令安装新包,-F不安装新包。
一般我们升级的时候也使用-v-h来监控安装进程:
# rpm -Uvh /mnt/cdrom/RedHat/RPMS/lynx-*
6. 包的依赖性
升级包的时候,有的包是具有依赖性的,比如我们要安装某个程序,但是对应的程序没有安装,比如我们要编译内核,那么编译器就要先安装,当然,我们也能够使用--nodeps来忽律包的依赖性。比如我们我安装内核源代码,那么对应就应该先安装gcc编译器。
我们可以使用下面的命令来忽律依赖性提示后正常安装程序:
# rpm -Uvh --nodeps /mnt/cdrom/RedHat/RPMS/kernel-source-*
# rpm -Uvh /mnt/cdrom/RedHat/RPMS/gcc-3-*
7. 包的删除
包的删除比较容易,使用:
# rpm -e packagename
就能够删除自己想要删除的包,不需要知道版本和路径,比如我们要删除内核源代码包:
# rpm -e kernel-source
同时我们也能够同时删除多个包:
# rpm -e kernel-source gcc
那么就会同时把kernel-source和gcc的包删除。
WriteTime: 2004-12-8 17:22