1、第八讲 linux软件包管理,目标,掌握rpm软件包管理 掌握tar包管理其它的压缩命令,问题,问题引入:在Linux系统下如何添加删除程序? 问题引入:我怎么知道系统里安装了哪些软件? 问题引入:系统内核如何升级?,企业需求,企业需求:企业想在Linux机器上架设WEB服务器,但不知道这台计算机上有没安装WEB服务器的软件,如果没安装的话希望能进行WEB的软件包安装,有的话想验证一下该软件是否存在问题。另外系统将该系统的内核由2.4版升级到2.6版。,rpm软件包管理命令,RPM软件包管理 RPM可用于软件包的安装、查询、更新升级、校验、删除已安装的软件包,以及生成.rpm格式的软件包等。
2、RPM功能是通过rpm命令结合使用不同的命令参数来实现的。 RPM软件包的的名称格式: 软件名称-主版本号次版本号.软件运行的硬件平台.rpm 如: rhviewer-3.10a-13.i386.rpm,rpm软件包管理命令,rpm:软件包管理命令 查询 #rpm q bind:查询软件包bind是否安装 #rpm qa:查询已安装的软件包 #rpm qa|grep bind:查询已安装的名字含bind的软件包 #rpm qi bind :查询软件包bind的描述信息 #rpm ql bind :查询软件包bind中的文件列表 #rpm qf /etc/rndc.conf:查询文件/etc/r
3、ndc.conf所属软件包 # rpm qR bind :显示包所依赖的关系,查询系统中安装的所有RPM包#rpm qa #rpm qa | more redhat-menus-0.25-1glibc-2.2.93-5cracklib-2.7-18gdbm-1.8.0-18gmp-5.1-4libacl-2.0.11-2libjpeg-5b-21.,rpm软件包管理命令,查询软件包是否安装# rpm q # rpm q webminwebmin-1.250-1# rpm q xinetd xinetd-2.3.7-2,rpm软件包管理命令,查询软件包信息:rpm qi # rpm qi web
4、minName : webmin Relocations: (not relocateable)Version : 1.250 Vendor: Jamie CameronRelease : 1 Build Date: 2005年01月30日 星期一 08时07分33秒Install date: 2005年03月18日 星期六 09时22分10秒Build Host: fudu.homeGroup : System/Tools Source RPM: webmin-1.250-1.src.rpmSize : 25955732 License: FreewareSignature : DSA/SH
5、A1, 2005年01月30日 星期一 08时08分23秒, Key ID d97a3ae911f53c51Summary : A web-based administration interface for Unix systems.Description :,rpm软件包管理命令,查询软件包中的文件# rpm ql # rpm ql webmin/etc/init.d/webmin/etc/pam.d/webmin/etc/rc.d/rc0.d/K10webmin/etc/rc.d/rc1.d/K10webmin/etc/rc.d/rc2.d/S99webmin/etc/rc.d/rc3.
6、d/S99webmin/etc/rc.d/rc5.d/S99webmin/etc/rc.d/rc5.d/K10webmin/etc/sysconfig/daemons/webmin/usr/libexec/webmin.,rpm软件包管理命令,rpm软件包管理命令,rpm:软件包管理命令 安装 rpm i 安装选项 RPM软件包名 安装选项: -vh:显示安装过程的一些详细信息,有助于了解安装是否成功及出错原因。 -percent:显示安装进度 -nodeps:不作依赖性检查 -replacefile:替换已安装文件,rpm软件包管理命令,实例: #mount /dev/cdrom /mnt/
7、cdrom #cd /mnt/cdrom/RPMS #rpm ivh bind.i386.rpm #rpm ivh bind-utils.i386.rpm #rpm ivh redhat-config-bind.noarch.rpm #cd;eject,rpm软件包管理命令,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 pr
8、oftpd 用rpm -e -nodeps强制卸载,rpm软件包管理命令,rpm:软件包管理命令 升级更新 #rpm Uvh rhviewer-3.10a-13.i386.rpm(先删后装)将指定的RPM包从低版本升级到高版本若当前系统没安装指定的RPM包,则直接进行安装 #rpm Fvh rhviewer-3.10a-13.i386.rpm,rpm软件包管理命令,rpm:软件包管理命令 验证 #rpm Va #rpm Vp bind,tar 源代码包 tar包介绍 tar命令最初是为制作磁带备份而设计的,由tar命令制成的源代码包可被绝大多数系统读取。软件开发者通常也以源代码的形式发布软件。
9、,tar命令,tar命令,tar 命令 tar命令常用的参数有: -c:创建新的档案文件。 -x:从档案文件中释放文件 -v:详细报告tar处理的文件信息 -f:使用档案文件或设备,这个选项通常是必选的 -t:列出档案文件的内容,查看已经备份了哪些文件 -z:用gzip来压缩/解压缩包文件 -r:把要存档的文件追加到档案文件的未尾 -u:增量(更新)备份,tar命令,-m:在还原文件时,把所有文件的修改时间设定为现在 -M:创建多卷的档案文件,以便在几个磁盘中存放 -K:保存已经存在的文件 -p:保留文件的权限和所有者 -C:解压缩到指定目录 -j:用bzip来压缩/解压缩包文件 -delet
10、e:从包中删除文件 -exclude file:不将文件file归档,tar命令使用介绍 1. 生成tar包 格式:tar cvf 文件名.tar 被打包的目录或文件名 说明:creat创建 verbose输出相关信息 file对普通文件操作 练习:把/root下的文件打包,并查询包内容,tar命令,2.生成tar包并压缩 实例2:把/home/ds1/k1下以a开头的文件生成tar包并压缩。 tar cvfz k2.tar.gz /home/ds1/k1/a* 说明:z压缩, 需指明.tar.gz 3.查看tar包的内容 tar tvf k1.tar 练习:查看刚才生成的.tar.gz 4.
11、向tar包追加文件 tar rvf k1.tar /home/ds1/k1/a1,tar命令,5.释放文件 tar xvf k2.tar 说明:如果是.tar.bz文件可以用选项 xvfj 6.安装一个tar.gz包的一般步骤: 1)解包 2)阅读附带的README和INSTALL文件 3)编译的配置和预处理 运行配置脚本获取用户系统的特性。 执行:./configure 说明:可以用./configure prefix=路径 改变软件安装路径 4)编译源文件 执行:make,tar命令,5)安装 要想安装软件必须对安装路径赋于“W”权限 执行:make install 6)删除编译产生的“.
12、o”文件 执行:make clean 实例:安装一个GNU的“hello”包,tar命令,7.tar包的卸载 一般情况下,可以直接删除安装目录而删除软件。 如果正常编译通过,可以执行make uninstall命令来卸载软件。,tar命令,压缩文件的类型,文件压缩和归档的命令,文件压缩和归档的命令 #bzip2 a.txt#bunzip2 a.bz2 #zip myfile *.txt#unzip myfile.zip #gzip filename #gunzip filename.gz 说明:1)gzip只能对具体一个文件进行压缩,不会将多个文件压缩成一个单一的文档,而 zip命令可以。 2
13、)zip对单个或多个文件进行压缩后,原文件不会受影响。 3)用gzip和bzip2命令时会删除原文件,而tar不会影响目录中原有文件。,使用gzip进行压缩#gzip bk_debugdb.dat# ls lahtotal 7.9MBdrwxrwxr-x 2 sybase sybase 4.0KB Jun 2 13:33 .drwxr-xr-x 14 root root 4.0KB Feb 9 09:28 .-rw-r-r 1 sybase sybase 369KB May 31 18:53 k_debugdb.dat.gz 使用gunzip进行解压缩#gunzip bk_debugdb.da
14、t.gz# ls lahtotal 16MBdrwxrwxr-x 2 sybase sybase 4.0KB Jun 2 13:33 .drwxr-xr-x 14 root root 4.0KB Feb 9 09:28 .-rw-r-r 1 sybase sybase 8MB May 31 18:53 bk_debugdb.dat,这种格式是和windows系统交换压缩文件的最好格式.例子# zip bk_debugdb.dat.zip bk_debugdb.dat# ls lahtotal 7.9MBdrwxrwxr-x 2 sybase sybase 4.0KB Jun 2 13:33 .
15、drwxr-xr-x 14 root root 4.0KB Feb 9 09:28 .-rw-r-r 1 sybase sybase 369KB May 31 18:53 bk_debugdb.dat.zip解压缩# unzip bk_debugdb.dat.zip# ls lahtotal 16MBdrwxrwxr-x 2 sybase sybase 4.0KB Jun 2 13:33 .drwxr-xr-x 14 root root 4.0KB Feb 9 09:28 .-rw-r-r 1 sybase sybase 369KB May 31 18:53 bk_debugdb.dat,原代
16、码编译程序,从原代码编译程序 取得源代码包 源代码包解包 配置程序./configure 编译make 安装make install 练习编译应用程序,使用RedHat包管理程序,终端进入#system-config-packagesX-windows图形界面进入,添加或删除软件包,如何获得软件包,从发行光盘中查找从软件的主站点查找使用查找软件包(世界上最大的RPM包下载数据库站点)http:/ http:/ LINUX伊甸园,课堂练习,练习:说出下面命令执行的结果 #tar cvf data.tar * #tar cvzf data.tar.gz * #tar tvf data.tar #t
17、ar xvf data.tar #tar zxvf data.tar * #tar delete -vf data.tar ww.txt #tar -rvf data.tar ww.txt #tar zcvpf /archive/full-backup.tar.gz / -exclude=/proc -exclude=/mnt -exclude=/archive,课堂练习,练习 题目:从Internet上下载hello的tar格式源代码,软件包名字为hello.tar.gz,下载到tmp目录下。要求解包到/hello 目录下,并安装hello程序。请按下面步骤写出相应的命令。 1. 列出hel
18、lo软件包的内容; 2. 解软件包到/hello 目录下; 3. 将路径改变到/hello 目录; 4. 阅读安装文档install或readme; 5. 配置程序 6. 编译软件 7. 安装应用程序 8. 运行应用程序,总结,总结Rpm软件包的安装、更新、查询、删除和验证 总结Tar命令的使用 总结Tar包的安装 总结内核的升级,作业,使用rpm命令更新dns软件包。 使用rpm命令删除apache软件包 使用rpm命令安装apache软件包。 使用tar命令把/etc/httpd目录下的文件全部打包压缩到httpd.tar.gz中。 使用tar命令把文件httpd.tar.gz解包到/ tmp目录中。 使用tar命令把/etc/httpd目录下的文件全部打包压缩到httpd.tar.bz2中。将系统的内核升级到2.6版。,