Linux包管理器及包安装工具基础知识

部分内容摘入出处:yum与apt的区别;原创文章,转载请注明出处。

一、概述

处理器架构

处理器架构什么是架构?即处理器(CPU)执行的计算机语言指令集,不同的处理器架构,所支持软件的开发、编译、打包以及部署或安装都将会完全不一样,这也是为何操作系统要对各种CPU处理器进行适配的原因,例如:Windows 10 ARM系统是无法安装在Intel和AMD的PC处理器上的、常见于Win Pad平板设备上、且默认也只能安装UWP应用程序,Linux系统可使用uname -a命令来查询处理器架构类型!

架构架构分类架构说明
32+位处理器架构x86/i386(已基本被淘汰)
x86_64
AMD64(x64)
常见电脑上的Intel或AMD的x86架构处理器
ARM处理器架构ARM64(AArch64)常见的高通骁龙、华为麒麟、苹果A系以及MTK联发科的天玑等手机处理器
MIPS处理器架构MIPS64常见的路由器、智能音箱及智能手表等嵌入式设备所用处理器
同时也是国产龙芯处理器所采用的架构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
安装包后缀安装包管理工具安装包管理器发行版系列主流发行版系统
*.rpmrpmyum
dnf
RedHat(红帽)系RedHat、Fedora、CentOS、Asianux(红旗Linux)
*.debdpkgaptDebian系Debian、Ubuntu、Deepin(深度系统)、Ubuntu Kylin(优麒麟)、银河麒麟2
*.pkg.tar.xz
*.pkg.tar.zst3
----pacmanArch系Arch Linux、Manjaro
*.shshbash
Linux脚本格式
类Unix系所有类Unix(支持Bash)的发行版系统

二、两大主流发行版

RedHat发行系列

RedHat红帽Linux系统,2003年Red Hat Linux停止支持后,由Fedora取代Red Hat Linux在个人消费者的领域,而Red Hat则专注于Red Hat Enterprise Linux的企业版商业级领域,至于CentOS则是基于GPL协议对Red Hat Enterprise Linux源码重新打包发布的发行版Linux系统,两者除了在商业服务软件维护两方面有所不同以外,并无区别。
Red Hat Linux系统

介绍rpmyumdnf
官网RedHat Package Manageryum包管理器DNF包管理器
说明RedHat Package Manager:RPM软件包管理工具Yellow dog Updater Modified:RPM软件包管理器Dandified Yum:新一代的RPM软件包管理器
语法手册rpm命令语法yum命令语法dnf命令语法
查询命令rpm -qa | grep package-nameyum list installeddnf list installed
安装命令rpm -ivh package-name.rpmyum -y install package-namednf install package-name
卸载命令rpm -e package-name.rpmyum remove package-namednf remove package-name

Debian发行系列

DebianDebian Linux系统,1997年由德裔美国人Ian Murdock开发并成立的社区项目,也是绝大部分个人Linux发行版系统用户所基于的内核系统,如:当前世界最主流的国外Ubuntu Linux和国内Deepin Linux深度系统,都是基于Debian Kernel而发布,因其软件包封装和管理机制的简便,使基于Debian的Linux发行版系统成为了个人桌面用户首选系统的条件之一。
Debian Linux系统

介绍dpkgapt
官网Debian Packagerapt包管理器
说明Debian Packager:deb软件包管理工具Advanced Package Tool:deb软件包管理器
语法手册dpkg命令语法apt命令语法
查询命令dpkg -lapt list --installed
安装命令dpkg -i package-name.debapt-get install package-name
卸载命令dpkg -r package-name.debapt-get –purge remove package-name

三、命令与包格式区别

各命令之间的区别

对比项rpmyumdnfdpkgaptpacmanhdiutilinstaller
发行系列RedHat系RedHat系RedHat系Debian系Debian系Arch Linux发行Mac OS XMac OS X
类型区别软件包管理工具软件包管理器新版软件包管理器软件包管理工具软件包管理器软件包管理器软件包管理工具软件包管理工具
作用区别安装rpm格式软件包安装rpm格式软件包并处理依赖Dandified Yum新一代yum管理器安装deb格式软件包安装deb格式软件包并处理依赖安装zst格式软件包并处理依赖命令安装dmg格式软件包命令安装pkg格式软件包
查询命令rpm -qayum list installeddnf list installeddkpg -lapt list –installedpacman -Qs package-name--------
安装命令rpm -i package.rpm
rpm –ivh
yum -y install package-namednf -y install package-namedpkg -i package.debapt-get install packagepacman -U package-name.xz
pacman -S package-name.zst
hdiutil attach <dmgFile>sudo installer -pkg <package.pkg> -target dirName
卸载命令rpm -e [module1][module2]…yum -removednf -removedpkg -r packageapt remove packagepacman -R package_name--------
其他命令见上文见上文见上文见上文见上文pacman软件包管理器--------

各命令的相关配置

配置项rpmyum
dnf
dpkgaptpacman
发行系列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系统!

软件包的转换

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

四、综述

本文章内容全为本人基于官网、及网络上的权威参考资料所写,属于个人梳理和记录,纯手打不免可能存在误写,如若发现有误,可随时通过下方方式联系我,私信评论皆可,我会尽快核对并修正;
尤其是细节、名词方面,例如“软件包管理器、软件包管理工具”4,这两个名词是我按网上所写的,为了区分特意将两者写为不一样的名词,因为正常来说:软件包管理器(yum/dnf/apt) 是基于 软件包管理工具(rpm/dpkg) 的,如果有更专业的名词,可以告知我修正,切不可误导新手;
当然,有其他关于Linux软件想要了解的技术知识点,也可以私信我,我整理了后更新上来,方便各位参考;
谨记:Linux纯内网安装应用程序,极其麻烦,当Linux网络环境为纯内网时,一定要部署本地yum/apt源,否则依赖问题将会始终存在!


点击联系我 | 点击私信我


  1. 计算机领域仅存的MIPS架构处理器国产【龙芯】处理器:基于MIPS架构的龙芯处理器 ↩︎

  2. 根据麒麟官网试用页面的信息,表明“银河麒麟”和“中标麒麟”是基于“优麒麟”的商业发行版系统:产品试用申请 · 麒麟软件官方网站
    个人用户不能申请商业版本试用,可前往优麒麟官网下载优麒麟操作系统试用: ↩︎

  3. Arch使用zstd替代xz安装包打包格式:Now using Zstandard instead of xz for package compression ↩︎

  4. 软件包管理的区别:YUM和RPM包管理器的不同之处 ↩︎

©️2020 CSDN 皮肤主题: 编程工作室 设计师:CSDN官方博客 返回首页