软件包就是用于安装、升级、卸载一个软件应用程序的。Linux下有很多可以安装的软件,而这些软件的安装包可细分为两种,分别是源码包和二进制包。
二进制包(预制菜):也就是源码包经过成功编译之后产生的包,二进制包是Linux下默认的软件安装包。
源码包(原始材料):源码包就是一大堆源代码程序,是由程序员按照特定的格式和语法编写出来的。计算机只能识别机器语言,也就是二进制语言,所以源码包安装之前需要编译。
一、 RedHat 系发行版
主流发行版:CentOS、RHEL(Red Hat Enterprise Linux)、Fedora、Oracle Linux、Rocky Linux、AlmaLinux
核心安装包类型:
RPM 包
基础安装(需手动解决依赖):rpm -ivh 包名.rpm
升级包:rpm -Uvh 包名.rpm(-U:update,若无旧版本则直接安装)
替换安装(强制覆盖旧版本):rpm -Fvh 包名.rpm(-F:freshen,仅升级已安装的包)
YUM 包管理器
DNF 包管理器
二、 Debian 系发行版
主流发行版:Debian、Ubuntu、Linux Mint、Kali Linux
核心安装包类型:
DEB 包
包格式后缀:.deb
核心特点:预先编译的二进制包,同样需处理依赖关系
APT 包管理器
安装指定软件:apt-get install -y 软件名
从本地 DEB 包安装(需手动处理依赖):dpkg -i 包名.deb && apt-get -f install -y
升级软件:apt-get upgrade -y 软件名
更新软件源缓存:apt-get update(安装前建议先执行,确保获取最新包信息)
APTITUDE 包管理器
三、 SUSE 系发行版
主流发行版:openSUSE、SUSE Linux Enterprise Server(SLES)
核心安装包类型:
RPM 包
ZYPPER 包管理器
安装指定软件:zypper install -y 软件名
从本地 RPM 包安装:zypper install -y 本地包名.rpm
升级软件:zypper update -y 软件名
更新软件源缓存:zypper refresh
四、 通用型安装包类型(跨发行版)
源码包
包格式后缀:.tar.gz、.tar.bz2、.tar.xz
核心特点:跨所有 Linux 发行版,需手动编译安装,灵活性最高(可自定义编译参数)
安装步骤(通用流程):
注意事项:编译前需安装编译器和依赖库,如gcc、make、cmake等,可通过对应发行版的包管理器安装。
解压源码包:tar -zxvf 包名.tar.gz(.gz格式)或tar -jxvf 包名.tar.bz2(.bz2格式)
进入解压目录:cd 解压后的目录名
配置编译参数:./configure --prefix=/usr/local/软件名(--prefix指定安装路径,建议自定义)
编译源码:make(耗时较长,取决于软件大小和服务器性能)
安装编译后的程序:make install
Snap 包
RedHat 系:yum install -y snapd 或 dnf install -y snapd
Debian 系:apt-get install -y snapd
SUSE 系:zypper install -y snapd
Flatpak 包
RedHat 系:dnf install -y flatpak
Debian 系:apt-get install -y flatpak
SUSE 系:zypper install -y flatpak
另一种跨发行版打包格式,与 Snap 类似,自带依赖,沙箱化运行
安装前提:先安装 flatpak 服务
添加软件源(默认源):flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
安装命令:flatpak install flathub 软件名
AppImage 包
赋予可执行权限:chmod +x 软件名.AppImage
直接运行:./软件名.AppImage
五、 各发行版核心安装方式对照表
| 发行版系列 | 核心包类型 | 推荐包管理器 | 核心安装命令 |
|---|
| RedHat 系 | RPM | YUM/DNF | yum install -y 软件名 / dnf install -y 软件名 |
| Debian 系 | DEB | APT | apt-get install -y 软件名 |
| SUSE 系 | RPM | ZYPPER | zypper install -y 软件名 |
| 跨发行版 | 源码包/Snap/Flatpak/AppImage | 无(或对应工具) | 源码包:./configure && make && make install;Snap:snap install 软件名 |