《Linux服务器配置与管理》作者:冯昊清华大学出版社第5章软件包管理5.1RPM软件包管理RPM是RPMPackageManager的缩写,是由RedHat公司提出的一种软件包管理标准,可用于软件包的安装、查询、更新升级、校验、卸载已安装的软件包以及生成.rpm格式的软件包等,其功能均是通过rpm命令结合使用不同的命令参数来实现的。由于功能十分强大,RPM已成为目前Linux各发行版本中应用最广泛的软件包格式之一。RPM软件包的名称具有特定的格式,其格式为:软件名称-版本号(包括主版本和次版本号).软件运行的硬件平台.rpm比如,Telnet服务器程序的软件包名称为telnet-server-0.17-25.i386.rpmrpm软件包中的文件以压缩格式存贮,并拥有一个定制的二进制头文件,其中包含有关于本软件包和内容的相关信息,便于对软件包信息进行查询。5.1.1RPM简介5.1RPM软件包管理1.查询rpm软件包查询rpm软件包使用-q参数,要进一步查询软件包中的其他方面的信息,可结合使用一些相关的参数。⑴查询系统中已安装的全部rpm软件包若要查看系统中已安装了哪些rpm软件包,可使用rpm-qa命令来实现,其中a参数代表全部(all)。一般系统安装的软件包较多,为便于分屏浏览,可结合管道操作符和less命令来实现,其命令用法为:[root@rh9root]#rpm-qa|less5.1.2使用RPM命令5.1RPM软件包管理⑵查询指定的软件包是否安装命令用法:rpm-q软件包名称列表该命令可同时查询多个软件包,各软件包名称之间用空格分隔,若指定的软件包已安装,将显示该软件包的完整名称(包含有版本号信息),若没有安装,则会提示该软件包没有安装。比如,若要查询vsftpd软件包是否已安装,则操作命令为:[root@rh9root]#rpm-qvsftpdvsftpd-1.1.3-8若要查询telnet-server服务的软件包是否安装,则操作命令为:[root@rh9root]#rpm-qtelnet-serverpackagetelnet-serverisnotinstalled5.1.2使用RPM命令5.1RPM软件包管理⑶查询软件包的描述信息命令用法:rpm-qi软件包名称例如,若要查看vsftpd软件包的描述信息,则实现命令为:rpm-qivsftpd⑷查询软件包中的文件列表命令用法:rpm-ql软件包名称命令中的l参数是list的缩写,可用于查询显示已安装软件包中所包含文件的文件名以及安装位置。⑸查询某文件所属的软件包命令用法:rpm-qf文件或目录的全路径名利用该命令用法,可以查询显示某个文件或目录是通过安装哪一个软件包产生的。5.1.2使用RPM命令5.1RPM软件包管理⑹查询未安装的软件包信息在安装一个软件包前,通常需要了解一下有关该软件包的相关信息,比如该软件包的描述信息、文件列表等,此时可增加使用p参数来实现,具体用法为:查询软件包的描述信息,命令用法:rpm-qpi软件包文件全路径名查询软件包的文件列表,命令用法:rpm-qpl软件包文件全路径名查询软件包所安装的软件的名称,命令用法:rpm-qp软件包文件全路径名5.1.2使用RPM命令5.1RPM软件包管理2.安装RPM软件包安装RPM软件使用-i参数,通常还结合使用v和h参数,其中v参数代表verbose,利用该参数在安装过程中将显示较详细的安装信息;h参数代表hash,在安装过程中将通过显示一系列“#”来表示安装的进度。因此安装RPM软件包的通常用法为:rpm-ivh软件包全路径名3.删除RPM软件包删除RPM软件包所安装的软件使用-e参数,命令用法为:rpm-e软件包名例如,若要删除telnet-server软件包,则实现命令为:rpm-etelnet-server5.1.2使用RPM命令5.1RPM软件包管理4.升级RPM软件包若要将某软件包升级为较高版本的软件包,此时可采用升级安装方式。升级安装使用-U参数来实现,该参数的功能是先卸载旧版,然后再安装新版软件包。为了更详细显示安装过程,通常也结合v和h参数使用,其用法为:rpm-Uvh软件包文件全路径名若指定的rpm包并未安装,则系统直接进行安装。5.软件包的验证对软件包进行验证可保证软件包是安全的、合法有效的。验证软件包使用-V参数,要验证所有已安装的软件包,使用命令:rpm-Va若要根据rpm文件来验证软件包,则命令用法为:rpm-Vprpm包文件名5.1.2使用RPM命令5.1RPM软件包管理在XWindow图形界面中,也提供了一个图形化的RPM软件包管理工具,利用该管理工具,也可实现软件包的添加或删除。单击XWindow的主菜单,然后单击SystemSettings,在其下选择Add/RemoveApplications,即可打开rpm软件包管理工具。5.1.3rpm软件包管理工具5.2TAR包管理tar是一种标准的文件打包格式,利用tar命令可将要备份保存的数据打包成一个扩展名为.tar的文件,以便于保存。需要时再从.tar文件中恢复即可。使用tar命令来实现tar包的创建或恢复,生成的tar包文件的扩展名为.tar,该命令只负责将多个文件打包成一个文件,但并不压缩文件,因此通常的做法是再配合其他压缩命令(如gzip或bzip2),来实现对TAR包进行压缩或解压缩,为方便使用,tar命令内置了相应的参数选项,来实现直接调用相应的压缩解压缩命令,以实现对tar文件的压缩或解压。该命令的基本用法为:taroptionfile-list5.2.1tar简介5.2TAR包管理tar是一种标准的文件打包格式,利用tar命令可将要备份保存的数据打包成一个扩展名为.tar的文件,以便于保存。需要时再从.tar文件中恢复即可。使用tar命令来实现tar包的创建或恢复,生成的tar包文件的扩展名为.tar,该命令只负责将多个文件打包成一个文件,但并不压缩文件,因此通常的做法是再配合其他压缩命令(如gzip或bzip2),来实现对TAR包进行压缩或解压缩,为方便使用,tar命令内置了相应的参数选项,来实现直接调用相应的压缩解压缩命令,以实现对tar文件的压缩或解压。该命令的基本用法为:taroptionfile-listoption为tar命令的功能参数,常用的主功能参数有:5.2.1tar简介5.2TAR包管理-t查看包中的文件列表-x释放包-c创建包-r增加文件到包文档的末尾另外该命令还有一些辅助的功能参数,如-z代表.gz格式的压缩包,-j代表.bz或.bz2格式的压缩包,-f用于指定包文件名,-v表示在命令执行时显示详细的提示信息,-C参数用于指定包解压释放到的目录路径,用法为:-C目录路径名5.2.1tar简介5.2TAR包管理1.创建tar包命令用法:tar-cvftar包文件名要备份的目录或文件名命令功能:将指定的目录或文件打包成扩展名为.tar的包文件。其中的参数-c代表创建tar包文件。例如,若要将/etc目录下的文件打包成mylinux_etc.tar,则实现命令为:[root@rh9root]#tar-cvfmylinux_etc.tar/etc/命令执行后,在/root目录中就会生成一个名为mylinux_etc.tar的文件。5.2.2tar命令用法5.2TAR包管理2.创建压缩的tar包直接生成的tar包没有压缩,为节省磁盘空间,通常需要生成压缩格式的tar包文件,此时可在tar命令中增加使用-z或-j参数,以调用gzip或bzip2程序对其进行压缩,压缩后的文件扩展名分别为.gz、bz或bz2,其命令用法为:tar-[z|j]cvf压缩的tar包文件名要备份的目录或文件名例如,若要将/etc目录下的文件打包并压缩为mylinux_etc.tar.gz,则实现的命令为:[root@rh9root]#tar-zcvfmylinux_etc.tar.gz/etc/最后在/root目录中就会生成mylinux_etc.tar.gz文件。若要打包并压缩为.bz2格式的压缩包,则实现命令为:[root@rh9root]#tar-jcvfmylinux_etc.tar.bz2/etc/5.2.2tar命令用法5.2TAR包管理3.查询tar包中文件列表在释放解压tar包文件之前,有时需要了解一下tar包中的文件目录列表,此时可使用带-t参数的tar命令来实现,其用法为:tar-t[z|j][v]ftar包文件名例如,若要查询mylinux_etc.tar中的文件目录列表,则实现命令为:[root@rh9root]#tar-tfmylinux_etc.tar若要显示文件列表中每个文件的详细情况,可增加使用-v参数,比如:[root@rh9root]#tar-tvfmylinux_etc.tar若要查看.gz压缩包中的文件列表,则还应增加使用-z参数;若要查看.bz或.bz2格式的压缩包的文件列表,则应增加-j参数。例如:[root@rh9root]#tar-tjvfmylinux_etc.tar.bz2[root@rh9root]#tar-tzvfmylinux_etc.tar.gz5.2.2tar命令用法5.2TAR包管理4.释放tar包要释放tar包,使用-x参数,其命令用法为:tar-xvftar包文件名对.gz格式的压缩包,增加-z参数,.bz或bz2压缩包,增加-j参数,此时的命令用法为:tar-[z|j]xvf压缩的tar包文件名例如,若要释放软件包httpd-2.0.50.tar.gz,则实现的命令为:[root@rh9root]#tar-zxvfhttpd-2.0.50.tar.gz若要释放软件包iptables-1.2.8.tar.bz2,则实现的命令为:[root@rh9root]#tar-jxvfiptables-1.2.8.tar.bz2tar命令的参数也可不要“-”。若要解压缩zip文件,则直接使用unzip命令。比如:unzipmysoft.zip5.2.2tar命令用法