软件包管理简介
1.软件包分类
1.1 源码包(未经过编译的如C语言等)
其中脚本安装包安装过程类似于Windows,适合初学者使用。源码包可获取源代码,但安装速度较慢。
源码包优点:
- 开源,可以借鉴或修改源代码
- 可以自由选择所需功能
- 软件是编译安装,所以更适合自己的系统,更加稳定和高效
- 卸载方便
源码包缺点:
- 安装步骤较多,尤其是安装较大的软件集合时,容易出现拼写错误
- 编译时间较长,安装比二进制安装时间长
- 因为是编译安装,安装过程中一旦报错,新手很难解决
1.2 二进制包(RPM包、系统默认包)
经过编译的二进制包,安装速度快,但无法分辨源码 。
二进制包优点:
- 包管理系统简单,只通过几个命令就可以实现包的安装、升级、查询和卸载
- 安装速度比源码包安装快得多
二进制包缺点:
- 经过编译,不再可以看到源代码
- 功能选择不如源码包灵活
- 依赖性(如:安装A时必须先安装b)
2.RPM包管理
2.1 RPM包命名与依赖
RPM包命名规则
httpd-2.2.15-15.e16.centos.i686.rpm
- httpd: 软件包名(注意区分包名和包全名)
- 2.2.15 : 软件版本
- 15: 软件发布次数
- e16.centos: 适合的Linux平台
- i686: 适合的硬件平台
- rpm: rpm包扩展名
RPM包依赖性
- 树型依赖:a->b->c
- 环形依赖:a->b->c->a
- 模块依赖:如:
libc.so.0 #库依赖,需要从模块依赖查询网站查询
包全名与包名
- 包全名:操作的包是没有安装的软件包时,使用包全名。而且要注意路径
- 包名:操作已经安装的软件包时,使用包名。是搜索/var/lib/rpm/中的数据库
2.2 RPM安装、升级、卸载
RPM安装
rpm -ivh 包全名
选项:
- -i(install) 安装
- -v(verbose)显示详细信息
- -h(hash)显示进度
- –nodeps 不检测依赖性(一般不使用)
RPM包升级
rpm -Uvh 包全名
选项:
- U(upgrade) 升级
RPM包卸载
rpm -e 包名
选项:
- -e(erase) 卸载
- –nodeps 不检查依赖性
2.3 RPM查询
查询是否安装
rpm -q 包名 #查询包是否安装
rpm -qa #查询所有已经安装的RPM包
选项:
- -q:查询(query)
- -a: 所有(all)
查询软件包详细信息
rpm -qi 包名 #查询已安装RPM包的信息
选项:
- -i:查询软件信息(information)
- -p:查询未安装包信息(package),后面应该接包全名而不是包名
查询包中文件安装位置
rpm -ql 包名
选项:
- -l:列表(list)
- -p:查询未安装包信息(package),查询系统打算将未安装的软件包安装的位置
查询系统文件属于那个RPM包
RPM-qf 系统文件名
选项:
- -f:查询系统文件属于那个软件包(file)
查询软件包的依赖性
rpm -qR 包名
选项:
- -R:查询软件包的依赖性(requires)
- -p:查询未安装包信息(package)
2.4 RPM包的校验和文件提取
RPM包校验
rpm -V 已安装的包名
选项:
-V:校验制定RPM包中的文件(verify)
其中验证内容中的8个信息具体内容如下:S (file Size differs)文件大小是否改变
- M (Modediffers)文件的类型或文件的权限(rwx)是否被改变
- 5(MD5 sum differs) 文件MD5校验和是否改变(可以看成文件内容是否改变)
- D(Device major) 设备的主/次代码是否改变
- L(readlink) 文件路径是否改变
- U(User ownship differs)文件的所有者是否改变
- G(Group ownship differs) 文件的所属组是否改变
- T(mTime differs) 文件的修改时间是否改变
其中c代表文件的类型为普通文件,文件类型有以下几类:
- c(config file) 配置文件
- d(documentation) 普通文档
- g(ghost file) “鬼”文件,很少见,就是该文件比英国被这个RPM包包含
- l(license file)授权文件
- r(read me)描述文件
RPM包中的文件提取
rpm2cpio 包全名 | cpio -idev .文件绝对路径
其中,rpm2cpio #将rpm包转换为cpio格式的命令
cpio #是一个标准工具,它用于创建软件档案文件和从档案文件中提取文件
范例:
用途:当误删文件后使用文件提取功能回复误删文件
3. yum在线管理
3.1 IP地址配置和网络yum源
IP地址配置
redhat系列:
网络yum源
3.2 yum命令
查询
yum list #查询所有可用软件包列表
yum search 关键字 #搜索服务器上所有和关键字相关的包
安装
yum -y install 包名
选项:
- install: 安装
- -y : 自动回答yes
升级
yum -y update 包名
选项:
- update:升级
- -y:自动回答yes
卸载
yum -y remove 包名
选项:
- remove :卸载
- -y:自动回答yes
(提示:最好不要使用yum卸载命令)
yum软件组管理命令
yum grouplist #列出所有可用的软件组列表
yum groupinstall 软件组名 #安装制定软件组,组名可以由grouplist查询出来(当软件组名有空格时注意打“”)
yum groupremove 软件组名 #卸载指定软件组
3.3 光盘yum源搭建
搭建步骤:
4. 源码包管理
4.1 源码包和RPM包的区别
区别
- 安装之前的区别:概念上的区别
- 安装之后的区别:安装位置不同
RPM包安装位置
- 安装在默认位置中
源码包安装位置
- 安装在指定位置当中,一般是/usr/local/软件名/
安装位置不同带来的影响
- RPM包安装的服务可以使用系统服务管理命令(service)来管理,例如RPM包安装的apache的启动方法是:
- /etc/rc.d/httpd start
- service httpd start
4.2 源码包安装过程
- 安装准备
- 安装C语言编译器(gcc)
- 下载源码包(如安装apache在http://mirror.bit.edu.cn/apache/httpd/)
安装注意事项
- 源代码保存位置:/usr/local/src/
- 软件安装位置:/usr/local/
- 如何确定安装过程报错:
- 安装过程停止
- 出现error、warning或no提示
源码包安装过程
- 下载源码包
- 解压缩下载的源码包
- 进入解压缩目录
- ./configure 软件配置与检查
- 定义需要的功能选项
- 检测系统环境是否符合安装要求
- 把定义好的功能选项和检测系统环境的信息都写入Makefile文件,用于后续的编辑
- make(编译)
- make install (编译安装)
源码包的卸载
- 不需要卸载命令,直接删除安装目录即可。不会遗留任何垃圾文件
5. 脚本安装包
5.1 脚本安装包的定义
- 脚本安装包并不是独立的软件包类型,常见安装的是源码包
- 是人为把安装过程写成了自动安装的脚本,只要执行脚本,定义简单的参数,就可以完成安装
- 非常类似于Windows下软件的安装方式
5.2 Webmin的作用
- Webmin是一个基于Web的LInux系统管理界面。可以通过图形化的方式设置用户账号、Apache、DNS、文件共享等服务
5.3 Webmin安装过程
- 下载软件
- 解压缩并进入解压缩目录
- 执行安装脚本(./setup.sh)