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://[email protected]/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

|