背景知识
Linux的软件安装方式与Windows有很大的不同。甚至同为Linux系统,Rocky Linux和Ubuntu之间都有很大差异。
假设我需要安装一个"htop"软件,这是一款命令行工具,主要用于监控系统运行状体。进入htop官网,找到下载页面:https://htop.dev/downloads.html,可以看到官方提供了多2种安装选择:
Sources - source code, provided on Github
Binaries - pre-compiled binaries, provided by distributions
Sources即源码,需手动执行三步进行安装:./configure(配置编译参数)→ make(编译源代码)→ make install(安装到系统)。
Binaries即预编译的二进制文件,一般可以“一键安装”。
源代码包是不区分Linux发行版的,预编译的二进制包有 "Red Hat系" 和 "Debian系"的差异。
Red Hat系包括:RHEL/Fedora/CentOS/Rocky Linux等等。
Debian系包括:Debian/Ubuntu//Kali Linux等等。
使用dnf/yum安装软件
大部分的Linux发行版,都有自己内置的“应用商店”,一般我们称之为软件仓库,里面包含了大量常用软件的.rpm包,例如 htop 软件包就可以在阿里云的镜像站里找到:https://mirrors.aliyun.com/rockylinux/10/devel/x86_64/os/Packages/h
如果想安装软件仓库里的软件,可以使用 dnf 或者 yum 命令。dnf 和 yum 都是Red Hat系Linux发行版中用于管理 RPM 软件包的命令行工具,核心功能是安装、卸载、更新软件,以及处理依赖关系。两者的关系和区别如下:
yum(Yellowdog Updater Modified):早期的包管理器,曾是 Red Hat 系的默认工具(如 CentOS 7、RHEL 7 及更早版本)。dnf(Dandified Yum):yum的继任者,设计用于解决yum的性能问题(如依赖解析慢、内存占用高等),在 CentOS 8+、RHEL 8+、Rocky Linux 9、Fedora 22+ 中成为默认包管理器。兼容性:现代系统中,
yum通常是dnf的别名(输入yum实际执行的是dnf),以兼容旧脚本。
# 使用阿里云镜像站,替换默认软件源,以提升中国大陆地区的软件安装速度
sudo sed -e 's|^mirrorlist=|#mirrorlist=|g' \
-e 's|^#baseurl=http://dl.rockylinux.org/$contentdir|baseurl=https://mirrors.aliyun.com/rockylinux|g' \
-i.bak \
/etc/yum.repos.d/rocky*.repo
# 创建缓存数据
sudo dnf makecache
# 安装EPEL仓库,EPEL旨在为RHEL及其衍生版提供官方仓库未包含的高质量开源软件,同样可以配置阿里云镜像站
sudo dnf install epel-release
sed -i 's|^#baseurl=https://download.example/pub|baseurl=https://mirrors.aliyun.com|' /etc/yum.repos.d/epel*
sed -i 's|^metalink|#metalink|' /etc/yum.repos.d/epel*
sudo dnf makecache
# 安装软件
sudo dnf install htop
# 升级软件
sudo dnf update htop
# 卸载软件
sudo dnf remove htop
# 搜索软件
sudo dnf list |grep -i htop
# 安装指定版本,短横线拼接软件名和版本号
sudo dnf install htop-3.3.0-5.el10_0