Linux学习笔记 一 第五章 软件包管理
一、软件包管理简介
1. 软件包分类
- 源码包 -> 也可以是脚本安装包
- 二进制包(RPM包、系统默认包)
(1) 源码包
源码包的优点是:
- 开源,如果有足够的能力,可以修改源代码
- 可以自由选择所需的功能
- 软件是编译安装,所以更加适合自己的系统,更加稳定也效率更高。
- 卸载方便
源码包的缺点是:
- 安装步骤过多,尤其是安装较大的软件集合时(如LAMP环境搭建),容易出现拼写错误。
- 编译过程时间比较长,安装比二进制包安装时间长
- 因为是编译安装,安装一旦报错,新手很难解决
(2) RPM包
二进制包的优点是:
- 包管理系统简单,只通过几个命令就可以实现包的安装,升级,查询和卸载
- 安装速度比源码安装快的多
二进制包的缺点是:
- 经过编译不能看到源代码
- 功能选择不如源码灵活
- 依赖性复杂
二、RPM包管理 - rpm命令管理
1. RPM包命名原则
例如: httpd-2.2.15-15.el6.centos.1.i686.rpm ,含义如下:
- httpd 软件包名
- 2.2.15 软件版本
- 15 软件发布的次数
- el6.centos 适合的Linux平台
- i686 适合的硬件平台
- rpm rpm包扩展包名
2. RPM包依赖性
- 树形依赖: a -> b -> c
- 环形依赖: a -> b -> c -> a
- 模块依赖: 模块依赖查询网站 -> www.rpmfind.net
3. 包名与包全名
- 包全名:操作的包是没有安装的软件包时,使用包全名。而且要注意路径。
- 包名:操作已经安装的软件包时,使用包名。是搜索/var/lib/rpm/中的数据
4. RPM安装
rpm -ivh 包全名
选项:
-i (install) 安装
-v (verbose) 详细信息
-h (hash) 显示进度
-nodeps 不检测依赖性
5. RPM包升级
rpm -Uvh 包全名
选项:
-U (Upgrade) 升级
6. RPM卸载
rpm -ivh 包名
选项:
-e (erase) 卸载
-nodeps 不检测依赖性
7. 查询是否安装
rpm -q 包名
选项:
-q (query) 查询
-qa 查询所有已经安装的包
-i (information) 查询软件信息
-p (package) 查询未安装包信息
-l (list) 列表
-f (file) 查询系统文件属于哪个软件包
-R (requires) 查询软件包的依赖性
7. RPM包校验
rpm -V 包名
验证内容中的8个信息的具体内容如下:
- S 文件大小是否改变
- M 文件的类型或文件的权限(rwx)是否被改变
- 5 文件MD5校验和是否改变(可以看出文件内容是否改变)
- D 设备的中,从代码是否改变
- L 文件路径是否改变
- U 文件的所有者是否改变
- G 文件的所属组是否改变
- T 文件的修改时间是否改变
三、RPM包管理 - yum命令管理
1. IP地址配置
setup
#使用setup工具(centos 独有的工具)vi /etc/sysconfig/network-scripts/ifcfg-eth0
#将ONBOOT="no" 改为 "yes" 然后service network restart 重启网络服务
2. 网络yum源
vi /etc/yum.repos.d/CentOS-Base.repo
#打开yum原文件- [base] 容器名称,一定要放到[]中
- name 容器说明,这个可以自己随便写
- mirrorlist 镜像站点,这个可以注释掉
- baseurl 我们的yum源服务器的地址,默认是CentOS官方的yum源服务器,是可以使用的,如果你觉得慢,可以换成你喜欢的原服务器。
- enable 此容器是否生效,如果不写或写成enable=1 都是生效,写成 enable=0 就是不生效
- gpgcheck 如果是1是指RPM的数字证书生效,如果是0则不生效
- gpgkey 数字证书的公钥文件保存位置,不用修改。
3. 常用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 grouplist
#列出所有可用的软件组列表
yum groupinstall 软件组名
#安装指定软件组,组名可以由grouplist查询出来
yum groupremove
#卸载指定软件组
三、RPM包管理 - 光盘yum源搭建步骤
1.挂载光盘
mount /dev/cdrom /mnt/cdrom
2.让网络yum失效
cd /etc/yum.repos.d
mv CentOS-Base.repo CentOS-Base.repo.bak
mv CentOS-Debuginfo.repo CentOS-Debuginfo.repo.bak
mv CentOS-Valut.repo CentOS-Valut.repo.bak
3.修改光盘yum原文件
vim CentOS-Media.repo
baseurl=file:///mnt/cdrom
#地址为你自己的光盘挂载地址
#file:///media/cdrom/
#file:///media/cdrecorder/
#注释这两个不存在的地址
gpgcheck=1
enable=1
#enable=0 改为 enable=1 让这个yum源配置文件生效
四、源码包管理
1.源码包和RPM包的区别
- 安装之前的区别:概念上的不同。
- 安装之后的区别:安装位置不同。
2.RPM包安装位置
是安装在默认位置中
文件目录 | 文件目录的含义 |
---|---|
/etc/ | 配置文件安装目录 |
/usr/bin/ | 可执行的命令安装目录 |
/usr/lib/ | 程序所使用的函数库保存位置 |
/usr/share/doc/ | 基本的软件使用手册保存位置 |
/usr/share/man/ | 帮助文件保存位置 |
3.源码包安装位置
一般是安装在指定位置之中,一般是 /usr/local/软件名/
4.安装位置不同带来的影响
- RPM包安装的服务可以使用系统管理命令(service)来管理,例如RPM包安装的apache的启动方法是:
/etc/rc.d/init.d/httpd start
service httpd start
- 而源码包安装的服务则不能被服务管理命令管理,因为没有安装到默认路径中。所以只能用绝对路径进行服务的管理。例如:
/usr/local/apach2/bin/apachectl start
五、源码包安装过程
1.安装准备
- 安装c语言编译器
- 下载apach的源码包:http:mirror.bit.edu.cn/apache/httpd/
2.安装注意事项
- 源代码保存位置:/usr/local/src/
- 软件安装位置:/usr/local/
- 如何确定安装过程报错:
- 安装过程停止,并出现error、warning或no的提示
3.源码包安装过程
- 下载源码包
- 解压缩下载的源码包
- 进入解压缩目录
- ./configure 软件配置与检查
- 定义需要的功能选项
- 检测系统环境是否符合安装要求
- 把定义好的功能选项和检测系统环境的信息都写入makefile文件,用于后续的编辑。
- make #编译
- make clean #清除上一次编译产生的文件。
- make install #编译安装
3.源码包的卸载
- 不需要卸载命令,直接删除安装目录即可,不会遗留任何的垃圾文件。