linux 下软件包的安装
1. linux 下有那些方式安装软件包
- 使用 rpm 命令安装 官方或第三方 封装的rpm包
- 使用 yum 工具安装rpm 包.
- 编译安装 开源的软件源码包.
2. rpm包的安装和管理
2.1 rpm包命名
此处以httpd 包为例.
httpd -2.4.6 -15 .el7.centos .x86_64 .rpm软件名 软件版本 发布次数 系统平台 架构 包扩展名 # 常见架构x86: i386, i486, i586, i686 x86_64: x64, x86_64, amd64
2.2 rpm包管理器
rpm 包是封装好的包, 多数的rpm包应当含有: 二进制文件, 库文件, 配置文件, 帮助文件 程序包管理器: 将编译好的应用程序打包成为一个或多个程序包. 包文件组成: RPM包内文件 元数据, 如名称, 版本, 依赖性, 描述 安装或卸载的脚本 数据库: /var/lib/rpm 程序包名称以及版本 依赖关系, 功能说明 包安装后生成的各种文件路径以及校验码
2.3 rpm包获取源方式
- 系统发行版的光盘 或光盘镜像
- 软件项目官网
- 第三方组织, EPEL
- rpm 搜索引擎
- 自己制作的
2.4 光盘内的RPM包
一般常用必备的软件官方都会有封装好的rpm包, 并收录在光盘. 所以我们这里先将centos的光盘挂载上, 然后从里面获取官方的 rpm包.
- 光盘内软件都在
Pacakages
目录.
2.5 rpm 命令用法
-
概述 rpm 命令是RPM 软件包的管理工具, 是RedHatLinux 发行版本用来管理Linux 套件的程序, 遵循了GPL 规则, 且功能强大,
-
语法
rpm [OPTIONS] PACKAGE
-
选项
-a: 查询所有已安装的rpm包-c: 只列出组态配置文件, 需要结合 -l 使用-d: 只列出文本, 需要结合 -l 使用-e: --erase: 删除指定的已安装包-f: 查询指定文件的安装包-h: --hash 安装包安装时显示标记-i: 显示相关软件包的信息-i : --install 安装指定的软件包-l: 显示指定软件包的文件列表-p : 查询指定的(未安装)软件包-q: 使用询问模式, 遇到问题时, 会先询问用户-R: 显示 依赖信息-s: 显示文件状态, 需要结合 -l 使用-U : --upgrade 升级指定软件包-v: 显示指令执行过程-vv: 显示更加详细过程--test: 测试安装, 不真正执行安装--nodeps: 不检测依赖性--force: 强制安装--oldpackage: 降级--replacekgs: 已安装过的包 重装--replacefile: 其他已安装的rpm包的文件, 与现有文件冲突时 覆盖--nosignature: 不检查来源合法性--nodigest: 不执行程序脚本 %pre: 安装前脚本 --nopre %post: 安装后脚本 --nopost %preun: 卸载前脚本 --nopreun %postun:卸载后脚本 --nopostun
2.6 rpm命令的使用
- 这里测试使用rpm 命令安装 vsfptd, 先查看这个包的依赖 rpm -qRp PACKAGE
- 查看这个包的信息 rpm -qip PACKAGE
- 查看这个包的配置文件相关位置
- 安装
- 尝试启动vsftpd, 并查看
- 查看这个包 并 卸载 vsftpd
3. yum 工具
3.1 yum 是什么
yum 是RadHat, Fedora 以及 CentOS 中常用的前端软件包管理工具, 基于rpm 包管理, 能够冲指定服务器上下载PRM包并安装, 可以自动档处理依赖关系, 并且一次安装所有依赖包, 无需单独下载安装, yum 还可以查找, 删除 一个或一组软件包.
3.2 yum 工具用法
-
语法:
yum [OPTIONS] [GREAM]
-
选项
-h: 显示帮助信息-y: 对多有提问回答yes-c: 指定配置文件-q: 安静模式-v: 显示详细信息-d: 设置调试等级(0-10)-e: 设置错误等级(0-10)-R: 设置yum 处理命令最大等待时间-C: 从缓存中运行, 不去下载新的头文件
- 参数
install: 安装 rpm包update: 更新rpm包check-update: 检查是否有 更新remove: 删除指定的rpm包list: 显示软件包信息search: 搜索软件包info: 显示指定rpm包的描述信息和概要clean: 清除yum 过期的缓存shell: 进入yum 的shell 提示符resolvedep: 显示指定rpm的依赖关系localinstall: 安装本地的 rpm包localupdate: 显示本地rpm 软件包进行更新deplist: 显示rpm 包的所有依赖关系
- 常用操作
#安装yum install # 安装全部yum install PACKAGE # 安装指定的 packageyum groupinstall GROUP1 # 安装程序组 group1# 更新yum update # 更新所有包yum update PACKAGE # 更新指定 rpm 包yum check-update # 检查指定程序包yum groupupdate GROUP1 # 升级指定程序组# 查找显示yum info PACKAGE # 显示安装包信息yum list # 显示所有可用安装包yum list PACKAGE # 显示指定安装包yum groupinfo GROUP1 # 显示相关组信息# 删除yum remove PACKAGE # 删除指定的 包yum groupremove GROUP1 # 删除指定 程序包组yum deplist PACKAGE # 查看程序依赖# 清除缓存yum clean package # 清除缓存目录下的 软件包yum clean headers # 清除目录下的 headersyum clean oldheader # 清除旧的 headers缓存yum clean all # 清除所有
3.2 yum 搭建本地仓库
- 挂载光盘
- 备份 yum配置文件, 并添加新的配置文件
文件内容:
- 清理缓存, 并统计软件数量
- 尝试使用 yum 安装 vsftpd
4. 源码包编译安装
1. 概述
-
一般开源项目的源码包在项目的官网上都会提供下载地址, 如果非特殊原因不要再第三方下载源码包, 防止源码包被修改过.
-
大多数开源项目的源码包都会提供
.tar.gz
或.tar.bz2
一类的压缩包.
2. 源码包的优劣势
-
优势
- 源码包是开源的, 比RPM包更加自由, 可以选择自己想要的功能,
- 所有东西(命令, 文档, 配置文件)的位置都可以自己定义
- 卸载很方便
- 稳定性更高
-
劣势
- 源码包需要编译, 过程较为复杂, 容易出错,
- 编译安装过程较为漫长
- 依赖性问题更加复杂
- 配置项较多, 手动拼写容易出错
4. 编译安装需要的工具
- 其次需要用到 tar 以及 gzip, bzip2 等压缩打包工具, 用于解压源码包.
- 编译安装首先需要, gcc 和 gcc-c++ 编译器, 用于编译源码.
- 还需要用到 make 和 cmake 用于处理用于批处理,自动化编译所有源码包.
以上都是必须一些工具, 不同程序的 源码包, 还需要很多其他的工具以及库 等等.
5. 编译安装演示
这里我们演示下 httpd2.4 的源码包编译安装.
- 这里 http2.4 就需要用到 apr 和 apr-util 扩展, 所以都需要提前转呗准备好.
- 解压全部并进入httpd 目录内
- 可以查看 configure 有那些可选项 有 很多的选项
- 尝试安装
- 这里报错显示没有找到 apr.
- 查看指定apr 的选项, 再次尝试
- 再次报错, 显示在 ./srclib 目录中没有找到 apr 和 apr-util, 这是我们将之前的apr 和 apr-util拷贝到目录中, 并去掉版本号, 这时候就没有问题了.
- 配置完成 且没有出错 后就可编译安装了, 编译过程较为耗时.
- 编译结束时, 检查上面信息是否有显示 error, 如果没有则一切正常. 就可以正常使用了
- 检查软件是否安装成功
- 尝试启动
-正常启动且可以获取数据.
END