一、发行版
Ubuntu、Debian、Fedora、openSUSE、Arch、Mint、Mageia、PcLinuxOS、Gentoo、CentOS
二、包管理器
各个发行版之间最大的不同通常就在于包管理器,所以想玩的话可以集中玩几个代表性的就行:
apt系,当然选最纯正的Debian
yum系,选最具代表性的CentOS
YaST,最主要的就是openSUSE
Pacman,当然是Manjaro、ArchLinux
2.1、发行版概念
Linux发行版:是指基于Linux内核而开发发布的操作系统,围绕Linux内核所开发设计的一套完整的全新操作系统程序,是一个已经可以在个人电脑上安装运行的系统完整镜像包。
使用lsb_release -a查询Linux发行版本,如若无此命令(少数简装版系统可能无此命令),可使用以下命令安装:
Red Hat发行版系统:yum -y install redhat-lsb*
Debian发行版系统: apt-get install lsb-core
Arch发行版系统: pacman -Syu lsb-release
安装包后缀 | 安装包管理工具 | 安装包管理器 | 发行版系列 | 主流发行版系统 |
---|---|---|---|---|
*.rpm |
rpm |
yum dnf |
RedHat(红帽)系 | RedHat、Fedora、CentOS、Asianux(红旗Linux)、SuSE |
*.deb |
dpkg |
apt |
Debian系 | Debian、Ubuntu、Deepin(深度系统)、Ubuntu Kylin(优麒麟)、Mint、银河麒麟2 |
*.pkg.tar.xz *.pkg.tar.zst 3 |
---- | pacman |
Arch系 | Arch Linux、Manjaro、EndeavourOS |
*.sh |
sh |
bash Linux脚本格式 |
类Unix系 | 所有类Unix(支持Bash)的发行版系统 |
2.2、两大主流发行版
RedHat发行系列
RedHat:红帽Linux系统,2003年Red Hat Linux停止支持后,由Fedora取代Red Hat Linux在个人消费者的领域,而Red Hat则专注于Red Hat Enterprise Linux的企业版商业级领域,至于CentOS则是基于GPL协议对Red Hat Enterprise Linux源码重新打包发布的发行版Linux系统,两者除了在商业服务与软件维护两方面有所不同以外,并无区别。
介绍 | rpm | yum | dnf |
---|---|---|---|
官网 | RedHat Package Manager | yum包管理器 | DNF包管理器 |
说明 | RedHat Package Manager:RPM软件包管理工具 | Yellow dog Updater Modified:RPM软件包管理器 | Dandified Yum:新一代的RPM软件包管理器 |
语法手册 | rpm命令语法 | yum命令语法 | dnf命令语法 |
查询命令 | rpm -qa | grep package-name |
yum list installed |
dnf list installed |
安装命令 | rpm -ivh package-name.rpm |
yum -y install package-name |
dnf install package-name |
卸载命令 | rpm -e package-name.rpm |
yum remove package-name |
dnf remove package-name |
Debian发行系列
Debian:Debian Linux系统,1997年由德裔美国人Ian Murdock开发并成立的社区项目,也是绝大部分个人Linux发行版系统用户所基于的内核系统,如:当前世界最主流的国外Ubuntu Linux和国内Deepin Linux深度系统,都是基于Debian Kernel而发布,因其软件包封装和管理机制的简便,使基于Debian的Linux发行版系统成为了个人桌面用户首选系统的条件之一。
介绍 | dpkg | apt |
---|---|---|
官网 | Debian Packager | apt包管理器 |
说明 | Debian Packager:deb软件包管理工具 | Advanced Package Tool:deb软件包管理器 |
语法手册 | dpkg命令语法 | apt命令语法 |
查询命令 | dpkg -l |
apt list --installed |
安装命令 | dpkg -i package-name.deb |
apt-get install package-name |
卸载命令 | dpkg -r package-name.deb |
apt-get –purge remove package-name |
2.3、包管理命令之间的区别
软件包管理器(yum/dnf/apt) 是基于 软件包管理工具(rpm/dpkg) 的
对比项 | rpm | yum | dnf | dpkg | apt | pacman | hdiutil | installer |
---|---|---|---|---|---|---|---|---|
发行系列 | RedHat系 | RedHat系 | RedHat系 | Debian系 | Debian系 | Arch Linux发行 | Mac OS X | Mac OS X |
类型区别 | 软件包管理工具 | 软件包管理器 | 新版软件包管理器 | 软件包管理工具 | 软件包管理器 | 软件包管理器 | 软件包管理工具 | 软件包管理工具 |
作用区别 | 安装rpm格式软件包 | 安装rpm格式软件包并处理依赖 | Dandified Yum新一代yum管理器 | 安装deb格式软件包 | 安装deb格式软件包并处理依赖 | 安装zst格式软件包并处理依赖 | 命令安装dmg格式软件包 | 命令安装pkg格式软件包 |
查询命令 | rpm -qa |
yum list installed |
dnf list installed |
dkpg -l |
apt list –installed |
pacman -Qs package-name |
---- | ---- |
安装命令 | rpm -i package.rpm rpm –ivh |
yum -y install package-name |
dnf -y install package-name |
dpkg -i package.deb |
apt-get install package |
pacman -U package-name.xz pacman -S package-name.zst |
hdiutil attach <dmgFile> |
sudo installer -pkg <package.pkg> -target dirName |
卸载命令 | rpm -e [module1][module2]… |
yum -remove |
dnf -remove |
dpkg -r package |
apt remove package |
pacman -R package_name |
---- | ---- |
其他命令 | 见上文 | 见上文 | 见上文 | 见上文 | 见上文 | pacman软件包管理器 | ---- | ---- |
2.4、包管理命令的相关配置
配置项 | rpm | yum dnf |
dpkg | apt | pacman |
---|---|---|---|---|---|
发行系列 | RedHat系 | RedHat系 | Debian系 | Debian系 | Arch Linux发行 |
后缀 | *.rpm |
*.rpm |
*.deb |
*.deb |
*.zst |
仓库源 | ---- | /etc/yum.repos.d/*.repo |
---- | /etc/apt/sources.list |
/etc/pacman.d/mirrorlist |
配置文件 | ---- | /etc/yum.conf /etc/dnf/dnf.conf |
---- | /etc/apt/apt.conf |
/etc/pacman.conf |
使用手册 | /usr/share/doc |
---- | /usr/share/man |
---- | ---- |
注意:Red Hat系统的镜像站仅允许注册用户使用,因此如果系统为Red Hat的话,必须要更换yum源为CentOS镜像站、阿里云镜像站或网易开源镜像站等三方镜像站,才可正常使用yum/dnf安装应用程序,至于如何更换yum源的操作,详细可自行百度,这里不再赘述,或者建议使用基于Red Hat Enterprise Linux二次发布的CentOS发行版Linux系统!
2.5、软件包的转换
Alien:一个用于在各种不同的Linux发行版之间的包格式相互转换的工具,其最常见的用法是将.rpm格式和.deb格式互相转换,但是这样的转换,不能代替生产需求,必要的话建议采用源码编译方式。
# RedHat发行版系列安装Alien工具
yum -y install alien
# 将rpm包转换为deb软件包
alien --to-deb --scripts package-name.rpm
# 亦可使用缩写方式命令
alien -d package-name.rpm
# ==============================
# Debian发行版系列安装Alien工具
apt-get install alien
# 进行deb包转换为rpm包处理
alien --to-rpm --scripts package-name.deb
# 或者使用缩写方式命令
alien -r package-name.deb
myprogram-1.10-3.i386.deb generated
RPM 与 YUM区别
RPM 软件包管理器允许你在基于 RPM 的 Linux 系统上安装、升级、删除、查询和验证软件包。
Yum 使用 RPM 包管理器。是一个 RPM 的前端工具,可以自动解决软件包的依赖关系。它可以从发行版官方仓库和其他第三方仓库中安装 RPM 软件包。
编号 | RPM | YUM |
---|---|---|
1 | 红帽在 1997 年引入了 RPM | Yellowdog UPdater(YUP)开发于 1999-2001 年,YUM 于 2003 年取代了原来的 YUP 工具 |
2 | RPM 代表 RPM Package manager(原名 Red Hat package manager) | YUM 代表 Yellowdog Updater Modified |
3 | RPM 文件的命名规则如下,httpd-2.4.6-92.el7.x86_64.rpm :httpd - 实际的包名;2.4.6 - 包发布版本号;92 - 包发布子版本号;el7 - Red Hat 版本;x86_64 - 硬件架构;rpm - 文件扩展名 |
后台使用 rpm 数据库 |
4 | 不解析依赖关系,你必须手动安装依赖 | 可以自动解析依赖关系并同时安装它们(任何包都会和它的依赖关系一起安装) |
5 | 允许你同时安装多个版本的软件包 | 不允许,并显示该软件包已经安装 |
6 | 当使用 RPM 命令安装一个软件包时,你必须提供 .rpm 软件包的确切位置 |
你可以安装仓库中的任何软件包,而你只需要知道软件包的名称就可以了,要联网 |
7 | RPM 不依赖于 YUM | 它是一个前端工具,在后台使用 RPM 包管理器来管理包 |
8 | RPM 在安装包的管理方面比较难 | YUM 是最简单的管理 RPM 包的方法 |
9 | RPM 不能让你将整个系统升级到最新的版本 | YUM 可以让你将系统升级到最新的版本(例如 7.0 到 7.x 的小版本升级) |
10 | RPM 不能让你自动更新/升级安装在系统上的软件包 | YUM 可以让你自动更新/升级系统上的更新 |
11 | 不使用在线仓库来执行任何操作 | 完全依赖在线仓库来完成所有的工作 |
12 | RPM 是一种包格式,它也是一个底层的包管理器,只做基本的事情 | 这是一个上层的包管理器前端,它可以完成你所需要的一切工作 |
参考: