Linux 软件包管理(CentOS)
软件包分类
一种是源码包,另一种是二进制的 rm 包
shell
# RPM 包(Red Hat Package Manager)
适用发行版:Red Hat、CentOS、Fedora、openSUSE 等。
文件扩展名:.rpm。
包管理工具:rpm是低级工具,直接操作 RPM 包;yum(旧版)或dnf(新版)是高级工具,可自动解决依赖关系。
# 源码包
适用发行版:所有 Linux 发行版。
文件扩展名:.tar.gz、.tar.bz2、.tar.xz等。
安装方式:需要手动解压,进入解压目录后,通过./configure、make、sudo make install等命令进行编译和安装,需手动解决依赖关系。RPM 包管理
注解
CentOS 的软件包格式为 .rpm,包含二进制文件、配置文件、依赖信息等。
通过 yum(CentOS 7 及之前)或 dnf(CentOS 8 及之后,yum 的升级版)工具进行自动化管理。
优缺点
- 优点
shell
1. 包管理系统简单,只通过几个命令即可完成安装、升级、查询、卸载
2. 安装速度比源码包快- 缺点
shell
1. 经过编译,看不到源码包
2. 功能选择不如源码包灵活
3. 依赖性,安装 a 软件包,可能需要安装 a1、a2 后才可正常使用RPM 命名规则
以 httpd-2.2.15-15.e16.CentOS.1.i686.rpm 为例
text
httpd 软件包名
2.2.15 软件版本
15 软件发布的次数
e16 软件发行商,e16是RedHat公司发布,适合CentOS6.x使用
i686 适合的硬件平台
rpm 包的拓展名手动管理 .rpm 包
适用于手动下载的 .rpm 包(需手动解决依赖,不推荐新手使用)。
shell
# 安装本地 RPM 包
rpm -ivh 包名.rpm # -i:安装,-v:详细输出,-h:显示进度
# 卸载 RPM 包
rpm -e 软件名 # 注意是软件名,不是包文件名
# 查看已安装的 RPM 包
rpm -qa | grep 软件名
# 验证 RPM 包是否完整
rpm -V 软件名yum 工具(CentOS 7 及之前)
基于 RPM 的前端工具,自动解决依赖关系,从仓库(Repository)下载并安装软件。
- yum 源文件存储位置
shell
# 系统通过 /etc/yum.repos.d/ 目录下的 .repo 文件配置仓库地址。
cd /etc/yum.repos.d/
ls
展示:CentOS-Base.repo(默认), CentOS-Media.repo(光盘源文件,配置它可完成离线 yum 安装)
# 查看文件内容:more CentOS-Base.repo,内容如下
[base] 容器名称
name 容器说明,随便写
mirrorlist 镜像站点,可注释,可选国内站点
baseurl yum 的服务器地址,yum官方地址,可修改成其他的yum源地址
enabled 此容器是否生效,enabled=1 生效,enabled=0 不生效
gpgcheck rpm证书是否生效,gpgcheck=1 生效,gpgcheck=0 不生效
gpgkey 数字证书公钥的保存地址- yum 命令
shell
# 仓库基础管理
yum repolist enabled # 查看已启用的仓库
yum clean all # 清除缓存(解决仓库元数据过期问题)
yum makecache # 生成新缓存
yum install -y epel-release # 安装 EPEL 扩展仓库(提供更多软件包)
# 安装
yum install -y 软件名 # 安装指定软件包,比如:yum install -y nginx
# 升级
yum update -y 包名 # 升级指定软件包
yum update -y # 升级所有软件包
# 卸载
yum remove -y 软件名 # 卸载软件(保留配置文件)
yum erase -y 软件名 # 彻底删除(包括配置文件)
# 查询
yum list installed | grep 软件名 # 查看已安装的软件
yum search 关键词 # 搜索软件(根据关键词),比如:yum search mysql
yum info 包名 # 查看软件详情(版本、依赖等),比如:yum info mysqlDNF 工具(CentOS 8 及之后)
- dnf 命令
shell
# 安装软件
dnf install -y 软件名
# 卸载软件
dnf remove -y 软件名
# 更新软件
dnf update -y 软件名
# 搜索软件
dnf search 关键词
# 查看仓库
dnf repolist
# 清除缓存
dnf clean alllinux 源码包
Linux 源码包是 Linux 内核或各类开源软件的源代码压缩包,需手动编译后才能安装使用,核心价值在于可自定义功能和适配特定硬件。
优缺点
- 优点
shell
开源(最大优势),代码可修改
可自由选择所需的功能
软件是编译安装,更适合自己的系统,所以:更稳定,更高效
卸载方便- 缺点
shell
和二进制软件包相比,安装时间长
因为是编译安装,所以安装过程中报错,新手很难解决,解决方式:换版本,联系官方
安装步骤较多,容易出现拼写错误源码包安装(以 httpd 为例)
- 第一步 获取:到官网下载软件包,httpd-2.2.9.tar.gz
- 第二步 解压:上传到服务器上,然后解压缩,执行:tar -zxvf httpd-2.2.9.tar.gz
- 第三步 安装 gcc:安装 gcc (让 linux 系统可以识别 c 语言文件),执行:yum -y install gcc
- 第四步 配置编译参数:进入解压目录,执行 ./configure 命令,可通过 --prefix 指定安装路径,执行:
shell
cd httpd-2.2.9
./configure --prefix=/usr/local/apache2/- 第五步 编译:执行 make 命令,将源代码编译为可执行文件。
- make 会调用 gcc 编译器,并读取 makefile 中的信息进行系统软件编译,编译的目的是把 c 语言源码程序,编译成 linux 认识的可执行文件
- 第六步 安装:执行 make install 命令,将编译后的文件复制到指定安装路径。
- 如果报错需要执行 make clean 删除编译的文件,再继续其他操作
- 第七步 卸载源码包:源码包没有删除命令,如果需要删除,直接删除安装目录即可,执行:rm -rf /usr/local/apache2/
安装方式选择(rpm 包和源码包)
能用 rpm 就用 rpm,如果用不了再选择源码包,如果应用需要跨平台部署到其他发行版本的服务器上,可使用源码包
源码包(以 Apache 服务器为例):源码包没有安装数据库,没有删除命令
如果服务是给大量用户提供访问的,建议使用源码包,因为源码包效率更高
shell
/usr/local/apache2/conf/http.conf 配置文件位置
/usr/local/apache2/htdocs 网页位置
/usr/local/apache2/logs 日志位置启动方式:/usr/local/apache2/bin/apachectl start
RPM 包(以 Apache 服务器为例)
RPM 包管理更方便
下载:yum 在线安装,或者 rpm 安装
安装地址:默认即可
shell
# 文件所在
/etc/httpd/conf/httpd.conf 配置文件位置
/var/www/html/ 网页位置
/var/log/httpd/ 日志位置
# 启动方式
启动方式一:service httpd restart
启动方式二:/etc/rc.d/init.d/httpd restart注意
linux 的软件包无法在 windows 中使用,windows 软件包也无法在 linux 中使用
