rpm安装卸载用的不多,因为我们用yum即可,
复习时,写出安装,卸载,升级命令
尝试安装两个相互依赖的包,yp-tools,ypbind。
rpm="Redhat Package Manager" 。是Redhat公司开发的。RPM是一种数据库记录的方式,将我们所需要的套件安装到Linux主机的一套管理程序。Linux系统中,存在着一个关于RPM的数据库,记录了安装的包以及包与包之间依赖相关性。RPM包是预先在Linux机器上编译好并打包好的文件,安装起来非常快捷。
缺点:安装的环境必须与编译时的环境一致或者相当,包与包之间存在着相互依赖的情况,卸载包时需要先把依赖的包卸载掉。如果依赖的包是系统所必须的,那就不能卸载这个包,否则会造成系统崩溃。
若虚拟机的光驱中还有系统安装盘镜像,把光盘挂在到/mnt 目录下,则会在/mnt/Packages 目录下看到很多 .rpm 的文件。
#mount /dev/cdrom /mnt/
mount: block device /dev/sr0 is write-protected, mounting read-only
#ls /mnt/Packages
389-ds-base-1.2.11.15-29.el6.i686.rpm
389-ds-base-libs-1.2.11.15-29.el6.i686.rpm
abrt-2.0.8-21.el6.centos.i686.rpm
autocorr-af-4.0.4.2-9.el6.noarch.rpm
autocorr-bg-4.0.4.2-9.el6.noarch.rpm
autocorr-ca-4.0.4.2-9.el6.noarch.rpm
python-volume_key-0.3.1-5.el6.i686.rpm
python-weberror-0.10.2-2.el6.noarch.rpm
包名 |
版本信息 |
发布版本号 |
运行平台 |
python-weberror |
0.10.2 |
2.e16. |
noarch |
abrt |
2.0.8 |
21.e16.centos |
i686 |
每一个rpm包的名称,都由 - 和 . 分成了若干部分。
版本号分三个等级,主版本-次版本-修正版本。
运行平台常见的有i386,i586,i686,x86_64,需要注意的是cpu目前是分32位和64位的。i386,i586,i686 是32位平台,x86_64代表64位平台。另外有些rpm包并没有写具体的平台,而是noarch,这代表rpm包没有硬件平台限制。
安装一个rpm包
#rpm -ivh [绝对路径,包信息包括名字,版本号,平台信息]
#rpm -ivh /mnt/Packages/libjpeg-turbo-devel-1.2.1-1.e16-i686.rpm
-i 安装的意思
-h 显示安装进度
-v 可视化
--force 强制安装,已安装的文件,会提示已安装,增加force选项则不提示,
--nodeps 当要安装的rpm包依赖其他包时,及时其他包没有安装,也要安装这个包
NOTE:如果两个包A和B存在依赖关系,安装A需要安装B,安装B的时候,又需要安装A,单独安装都不成功,解决方法,可以同时安装两个包,rpm -ivh A B;或者使用nodeps强制分开安装。卸载的时候,也需要同时卸载。尝试安装两个相互依赖的包 ypbind,yp-tools。
#rpm -ivh yp-tools................ ypbind...............
或者
#rpm -ivh --nodeps yp-tools....................
#rpm -ivh --nodeps ypbind...............
尽量少用 --nodeps , 避免引起不必要的麻烦
升级一个rpm包
#rpm -Uvh 完整filename
-U upgrade
NOTE:
升级一个包的时候,包的主版本号要一致,否则会引起错误。
autocorr-af-
4
.0.4.2-9.el6.noarch.rpm
autocorr-bg-
4
.0.4.2-9.el6.noarch.rpm
autocorr-ca-
4
.0.4.2-9.el6.noarch.rpm
卸载一个rpm包
#rpm -e filename
卸载时后面跟的 filename 和安装时的是有区别的,安装时把一个存在的文件作为参数,而卸载时只需要包名即可。
无需使用绝对路径。
强制安装一个包
#rpm -ivh --force yp-tools.........................