当前位置: 首页 > news >正文

Linux 软件安装的四种方式详解

Linux 软件安装的四种方式详解

前言

在 Linux 系统中,软件安装是核心操作之一。随着技术发展,除了传统的源代码、RPM、YUM 安装方式,Docker 容器化安装也成为主流选择。本文将详细解析这四种安装方式的原理、操作流程、实战案例及适用场景,帮助你根据实际需求选择最合适的安装方法。

1. YUM 安装:自动化依赖管理的高效方式

一、什么是 YUM

  • 核心定位:基于 RPM 包的自动化软件管理工具,是 RPM 的上层封装
  • 核心优势:自动解决 RPM 包的依赖关系,无需手动处理复杂的依赖链
  • 工作机制:通过配置的云端软件仓库(YUM 源)下载适配系统版本的软件包,按依赖顺序自动安装

举例:安装 Apache 时,它依赖 aprpcre 等库文件。YUM 会自动识别这些依赖并从仓库中下载安装,用户无需逐个处理。

二、YUM 源详解

  1. 默认存放目录

    • 路径:/etc/yum.repos.d/
    • 规则:所有配置文件必须以 .repo 结尾(系统仅识别此类文件)
  2. CentOS 系统常见默认源文件

文件名作用描述
CentOS-Base.repo基础官方软件仓库
CentOS-Debuginfo.repo调试信息包仓库
CentOS-Vault.repo旧版本软件归档仓库
CentOS-Media.repo本地媒体(如光盘)仓库配置
  1. 源文件作用
    定义软件仓库的地址(如阿里云镜像)、启用状态(enabled=1 表示启用)、优先级等信息,系统通过这些配置获取软件包索引。

三、YUM 常用命令与实战案例(以安装 Nginx 为例)

命令选项功能描述示例命令
install安装指定软件包yum install -y nginx
update升级软件包(不加包名则升级系统所有可更新软件)yum update nginx
remove卸载软件包(自动清理无用依赖)yum remove -y nginx
search根据关键字搜索软件包yum search "web server"
list installed查看已安装软件`yum list installed

完整操作流程

# 1. 搜索 Nginx 包
yum search nginx# 2. 安装(-y 自动确认)
yum install -y nginx# 3. 验证安装
nginx -v  # 输出版本信息
systemctl start nginx  # 启动服务# 4. 卸载
yum remove -y nginx

2. RPM 二进制包安装:手动控制的精准部署

一、RPM 基础概念

  • 定义:RPM(Red Hat Package Manager)是 Linux 二进制包管理工具,通过 .rpm 文件实现软件快速安装
  • 工作机制:类似 Windows 的 .exe,但会严格检查系统环境和依赖关系,需手动解决依赖冲突

二、RPM 包命名规则

格式:包名-版本号-发布号.平台.rpm
示例nginx-1.20.1-1.el7.x86_64.rpm

部分说明
包名软件名称(如 nginx
版本号软件版本(如 1.20.1
发布号发行商内部版本(如 1.el7
平台适用硬件(x86_64 表示 64 位)

三、RPM 常用命令与实战案例

# 安装软件(-i 安装,-v 详细输出,-h 显示进度)
rpm -ivh nginx-1.20.1-1.el7.x86_64.rpm# 查看已安装软件信息
rpm -qi nginx  # 详细信息
rpm -ql nginx  # 安装的文件路径# 升级软件(-U 表示升级,若未安装则全新安装)
rpm -Uvh nginx-1.22.0-1.el7.x86_64.rpm# 卸载软件
rpm -e nginx

注意:若安装时提示依赖缺失(如 error: Failed dependencies: libpcre.so.1() is needed),需手动下载并安装对应的依赖 RPM 包(如 pcre-8.32-17.el7.x86_64.rpm)。

3. 源代码安装:定制化与最新版本的选择

一、核心概念

  • 定义:直接使用开发者发布的原始代码,通过编译工具(如 gcc)转换为二进制可执行文件后安装
  • 适用场景:需定制功能、官方未提供二进制包、需要最新版本时

二、完整安装流程(以安装 Python 3.11 为例)

1. 准备工作
# 安装编译工具链
yum install -y gcc make zlib-devel openssl-devel# 下载源码包并解压
wget https://www.python.org/ftp/python/3.11.4/Python-3.11.4.tgz
tar -zxvf Python-3.11.4.tgz
cd Python-3.11.4
2. 配置阶段(定制安装参数)
./configure --prefix=/usr/local/python311 \--enable-optimizations \  # 启用编译器优化--with-ssl  # 支持 SSL(确保 pip 可使用 HTTPS)
  • --prefix:指定安装目录(避免与系统自带 Python 冲突)
3. 编译与安装
make -j4  # 4 线程并行编译(加速,核心数可通过 nproc 查看)
make install  # 安装到指定目录
4. 验证与配置
# 验证版本
/usr/local/python311/bin/python3 --version  # 输出 Python 3.11.4# 添加到环境变量(方便直接调用)
echo 'export PATH=/usr/local/python311/bin:$PATH' >> /etc/profile
source /etc/profile  # 生效配置

4. Docker 安装:容器化的隔离部署

一、Docker 核心概念

  • 定义:Docker 是一种容器化技术,将软件及其依赖打包到独立容器中,实现"一次构建,到处运行"
  • 核心优势:环境隔离(避免系统冲突)、快速部署、版本可控

二、Docker 安装流程(以安装 Nginx 为例)

1. 安装 Docker 引擎(CentOS)
# 1. 安装依赖
yum install -y yum-utils device-mapper-persistent-data lvm2# 2. 添加 Docker 源
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo# 3. 安装 Docker
yum install -y docker-ce docker-ce-cli containerd.io# 4. 启动 Docker
systemctl start docker
systemctl enable docker  # 开机自启
2. 拉取并运行 Nginx 容器
# 1. 拉取 Nginx 镜像(默认最新版本)
docker pull nginx# 2. 运行容器(-d 后台运行,-p 端口映射)
docker run -d --name mynginx -p 80:80 nginx# 3. 验证
docker ps  # 查看运行中的容器
curl localhost  # 访问 Nginx 首页
3. 容器管理命令
docker stop mynginx  # 停止容器
docker restart mynginx  # 重启容器
docker rm mynginx  # 删除容器
docker rmi nginx  # 删除镜像

三、Docker 安装的独特优势

  • 环境隔离:容器内软件依赖不会影响宿主机系统
  • 版本控制:可同时运行多个版本(如 Nginx 1.20 和 1.22)
  • 快速迁移:镜像可导出到其他服务器直接运行,无需重新配置

5. 四种安装方式对比表

对比维度源代码安装RPM 安装YUM 安装Docker 安装
操作复杂度高(需配置、编译)中(需手动处理依赖)低(一键安装,自动解决依赖)中(需掌握 Docker 命令)
依赖处理手动安装所有依赖手动下载依赖 RPM 包自动检测并安装依赖依赖封装在镜像中,无需处理
系统侵入性高(文件分散在系统目录)中(按规范存放)中(同 RPM)极低(容器与宿主隔离)
版本灵活性最高(可指定任意版本)中等(依赖已编译 RPM)中等(依赖仓库版本)高(可选择任意镜像版本)
典型场景定制功能、最新版本、无预编译包时离线环境、需精确控制版本时日常快速安装、依赖复杂的软件(如 LAMP 栈)微服务部署、多版本共存、环境一致性要求高的场景
代表命令./configure && make && make installrpm -ivh package.rpmyum install packagedocker pull && docker run

总结

  • 优先选 YUM:日常运维、快速部署通用软件(如 Nginx、MySQL),依赖关系复杂时。
  • 选择 RPM:离线环境、已有二进制包,且依赖已提前准备好时。
  • 使用源代码:需要定制功能、安装最新版本,或官方未提供二进制包时。
  • 推荐 Docker:微服务架构、多环境一致性(开发/测试/生产)、快速扩缩容场景。

根据实际需求灵活选择安装方式,可大幅提升 Linux 系统管理效率。对于新手,建议从 YUM 入手,熟悉后再尝试 Docker 和源代码安装。

http://www.dtcms.com/a/283964.html

相关文章:

  • HTTP 状态码笔记
  • 网络原理 —— HTTP
  • uniapp用webview导入本地网页,ios端打开页面空白问题
  • 自定义 django 中间件
  • 《小白学习产品经理》第六章:方法论之SWOT分析
  • 3D工业相机是什么?如何选择和使用它?
  • docker安装与简单项目上手
  • 5. 实战项目类:《用TypeScript + Vite从零搭建企业级React应用》
  • Django由于数据库版本原因导致数据库迁移失败解决办法
  • 我的开发日志:随机数小程序
  • redis中间件
  • 手撕Spring底层系列之:后置处理器“PostProcessor”
  • Vmware虚拟机使用仅主机模式共享物理网卡访问互联网
  • 研报复现|格雷厄姆成长股内在价值策略
  • Error: llama runner process has terminated: exit status 2
  • 实习Last Day研二Last Day
  • 纯前端html实现图片坐标与尺寸(XY坐标及宽高)获取
  • JavaScript进阶篇——第七章 原型与构造函数核心知识
  • 深度学习 -- 初步认识Torch
  • vue中的this.$set
  • 在分布式系统中,如何保证缓存与数据库的数据一致性?
  • LVS实验
  • 板凳-------Mysql cookbook学习 (十一--------12)
  • LVS集群
  • Docker实战:使用Docker部署IT工具箱Team·IDE
  • Android15系统实现刷机防呆功能
  • Flutter在Android studio运行出现Error: Entrypoint is not a Dart file
  • C++网络编程 2.TCP套接字(socket)编程详解
  • 微信小程序列表数据上拉加载,下拉刷新
  • ASP .NET Core 8实现实时Web功能