0%

linux下载软件包

Linux 软件包安装全指南:从 RPM、YUM 到源码编译

Linux 系统中软件包的安装与管理是系统运维的基础技能。本文将详细介绍 Linux 中两种核心软件包(源码包与二进制包)的特点及操作方法,包括 RPM 命令、YUM/APT 包管理工具的使用,以及源码包的编译安装流程,帮助你高效管理系统软件。

Linux 软件包的两种类型

Linux 软件包主要分为两类,适用场景和安装方式差异显著:

类型 格式示例 特点 适用场景
源码包 .tar.gz.tar.bz2 包含源代码,需编译后安装;跨架构,可自定义配置;安装步骤较复杂。 需要定制功能、优化性能的场景
二进制包 .rpm(RedHat 系)、.deb(Debian 系) 已编译为可执行文件,安装快速;依赖特定 CPU 架构;依赖关系需手动处理。 快速安装、版本稳定的场景

RPM 包管理(RedHat 系系统:CentOS、RHEL)

RPM(Redhat Package Manager)是 RedHat 系列系统的二进制包管理工具,直接操作 .rpm 格式的软件包。

RPM 包的命名规则

RPM 包名包含丰富信息,格式为:
名称-版本-发布版本.架构.rpm
例如:httpd-2.4.6-97.el7.centos.x86_64.rpm

  • httpd:软件名称
  • 2.4.6:版本号
  • 97.el7.centos:发布版本(与系统版本相关)
  • x86_64:适用架构(常见架构见下表)
架构标识 适用 CPU 类型
noarch 不依赖架构(如脚本类软件)
i386/i686 Intel 32 位 / 64 位兼容 CPU
x86_64 AMD/Intel 64 位 CPU
arm ARM 架构(如嵌入式设备、树莓派)

RPM 核心操作命令

(1)安装 RPM 包
1
2
3
4
5
6
7
rpm -ivh 包全名.rpm
# 选项说明:
# -i:安装(install)
# -v:显示详细过程(verbose)
# -h:显示进度条(hash)
# --force:强制安装(覆盖已安装文件)
# --nodeps:忽略依赖关系(不推荐,可能导致软件运行异常)

示例:
rpm -ivh httpd-2.4.6-97.el7.centos.x86_64.rpm

(2)升级 RPM 包
1
2
rpm -Uvh 包全名.rpm
# -U:升级(upgrade),若未安装则自动安装

示例:
rpm -Uvh httpd-2.4.6-98.el7.centos.x86_64.rpm

(3)卸载 RPM 包
1
2
rpm -e 包名  # 注意:此处用包名(如 httpd),而非完整文件名
# -e:卸载(erase)

示例:
rpm -e httpd

注意:卸载会同时删除依赖该包的其他软件,需谨慎操作。

(4)查询 RPM 包信息
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
# 1. 查询是否安装某包
rpm -q 包名
# 示例:rpm -q httpd

# 2. 查询已安装的所有包
rpm -qa
# 过滤查询:rpm -qa | grep httpd(查找含 httpd 的包)

# 3. 查询包的详细信息(版本、开发者、描述等)
rpm -qi 包名
# 示例:rpm -qi httpd

# 4. 查询包安装的文件列表
rpm -ql 包名
# 示例:rpm -ql httpd(查看 httpd 安装的所有文件路径)

# 5. 查询某个文件属于哪个包
rpm -qf 文件名
# 示例:rpm -qf /usr/sbin/httpd(查看 /usr/sbin/httpd 属于哪个包)

SRPM 包(源码 RPM 包)的处理

SRPM 包(.src.rpm)是未编译的源码包,需先编译为二进制 RPM 包再安装:

1
2
3
4
5
6
7
8
9
10
11
# 1. 安装 SRPM 包(解压源码到 /usr/src/redhat/ 目录)
rpm -i 包名.src.rpm

# 2. 进入 SPECS 目录(存放编译配置文件)
cd /usr/src/redhat/SPECS

# 3. 编译为二进制 RPM 包(生成的包在 /usr/src/redhat/RPMS/ 对应架构目录)
rpmbuild -bb 包名.spec

# 4. 安装编译后的二进制包
rpm -ivh /usr/src/redhat/RPMS/x86_64/生成的包.rpm

YUM 包管理工具(自动解决依赖)

YUM(Yellowdog Updater Modified)是基于 RPM 的前端工具,能自动解决依赖关系,支持从软件仓库在线安装 / 升级软件,是 RedHat 系系统的首选工具。

YUM 软件仓库配置

YUM 仓库配置文件位于 /etc/yum.repos.d/ 目录,扩展名为 .repo(如 CentOS-Base.repo)。
示例配置(阿里云镜像源):

1
2
3
4
5
[base]
name=CentOS-$releasever - Base - mirrors.aliyun.com
baseurl=http://mirrors.aliyun.com/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7

常用镜像源:阿里云、腾讯云、网易开源镜像站(解决官方源访问慢的问题)。

YUM 核心操作命令

(1)查询软件包
1
2
3
4
5
6
7
8
9
# 1. 列出仓库中所有可用软件包
yum list

# 2. 列出已安装的软件包
yum list installed

# 3. 搜索含关键字的软件包
yum search 关键字
# 示例:yum search httpd(查找与 httpd 相关的包)
(2)安装软件包
1
2
3
yum -y install 包名  
# 选项:-y 自动回答 yes(无需手动确认)
# 示例:yum -y install httpd(安装 Apache 服务)

离线安装本地 RPM 包(自动解决依赖):
yum localinstall 本地包.rpm

(3)升级软件包
1
2
3
4
5
6
# 1. 升级指定包
yum -y update 包名
# 示例:yum -y update httpd

# 2. 升级系统中所有可升级的包(谨慎使用,可能导致兼容性问题)
yum -y update
(4)卸载软件包
1
2
3
4
5
# 1. 卸载包(保留配置文件)
yum remove 包名

# 2. 彻底删除包及所有相关文件
yum erase 包名

注意:卸载会删除依赖该包的其他软件,建议先通过 yum deplist 包名 查看依赖关系。

(5)软件组操作
1
2
3
4
5
6
7
8
# 1. 列出所有软件组
yum grouplist

# 2. 安装指定软件组(如 "Development Tools" 开发工具集)
yum -y groupinstall "Development Tools"

# 3. 查看软件组包含的包
yum groupinfo "Development Tools"
(6)缓存与依赖修复
1
2
3
4
5
6
7
8
9
10
# 清理缓存(解决仓库元数据过期问题)
yum clean all

# 重建缓存
yum makecache

# 修复损坏的依赖关系
yum -y install yum-utils
package-cleanup --problems # 检查问题
package-cleanup --repair # 修复依赖

APT 包管理工具(Debian 系系统:Ubuntu、Debian)

APT(Advanced Package Tool)是 Debian 系列系统的包管理工具,功能类似 YUM,操作对象为 .deb 包,核心命令包括 apt-getapt-cache

APT 软件源配置

软件源配置文件为 /etc/apt/sources.list,示例(阿里云 Ubuntu 源):

1
2
deb http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse
  • deb:二进制包仓库
  • deb-src:源码包仓库

APT 核心操作命令

(1)更新与安装
1
2
3
4
5
6
7
8
9
# 1. 更新软件源缓存(安装前必做)
apt-get update

# 2. 安装软件包
apt-get install 包名
# 示例:apt-get install nginx(安装 Nginx)

# 3. 自动安装推荐依赖
apt-get install -y 包名
(2)卸载软件
1
2
3
4
5
6
7
8
# 1. 卸载包(保留配置文件)
apt-get remove 包名

# 2. 彻底删除包及配置文件
apt-get purge 包名

# 3. 清理无用依赖
apt-get autoremove
(3)查询与搜索
1
2
3
4
5
6
7
8
9
10
# 1. 搜索软件包
apt-cache search 关键字
# 示例:apt-cache search nginx

# 2. 查看包的依赖关系
apt-cache depends 包名
# 示例:apt-cache depends nginx

# 3. 查看包的详细信息
apt-cache show 包名

源码包安装(自定义编译)

源码包是软件的原始代码,需手动编译为可执行文件,适合需要定制功能或优化性能的场景(如数据库、Web 服务器)。

源码包安装步骤(通用流程)

1. 解压源码包
1
2
3
4
5
6
7
8
# 解压 .tar.gz 包
tar -zxvf 包名.tar.gz

# 解压 .tar.bz2 包
tar -jxvf 包名.tar.bz2

# 进入解压目录
cd 包名/
2. 配置(生成 Makefile)
1
2
3
./configure --prefix=安装路径  
# --prefix:指定安装目录(如 /usr/local/nginx),便于后续卸载
# 其他可选参数:--with-xxx(启用功能)、--without-xxx(禁用功能)

作用:检测系统环境(如是否有编译器、依赖库),生成编译配置文件 Makefile

3. 编译(生成可执行文件)
1
2
make  
# 调用 gcc 编译器,根据 Makefile 编译源码

出错处理:若编译失败,执行 make clean 清空编译产物,排查依赖问题后重新编译。

4. 安装(复制文件到指定目录)
1
2
make install  
# 将编译好的文件复制到 --prefix 指定的目录
5. 卸载源码包
1
2
3
4
5
6
7
# 方法 1:若支持 uninstall(需源码目录存在)
cd 源码目录
make uninstall

# 方法 2:手动删除安装目录(适用于无 uninstall 支持的软件)
rm -rf 安装路径
# 示例:rm -rf /usr/local/nginx

欢迎关注我的其它发布渠道

表情 | 预览
快来做第一个评论的人吧~
Powered By Valine
v1.3.10