什么是包管理器

简介: 什么是包管理器

现代计算机世界里面有很多的包管理器,例如 Ubuntu 的 apt 跟 dpkg, Centos 的 yum,Fedora 的 dnf。

甚至,Windows应用商店,Apple Store,安卓应用市场,应用宝,都是包管理器。


这些包管理器,在云端都有一个庞大的软件仓库。仓库里面有支持各种 CPU 架构的软件。

仓库里面的软件都是可运行文件,静态库或者动态库,这些都是二进制的字节码,没有源代码。二进制文件,只有两个重点。

1,里面的字节码是哪种CPU指令集的。

2,文件格式是哪种,ELF 还是 PE 还是其他。

这里面没有涉及到 编译链接的东西,因为软件仓库的东西是别人已经编译链接好的了。

通常一个完善的软件,会提供多个版本来支持不同的 CPU 指令集,例如 ARM 指令集的发一个版本,x86 指令集的发一个版本。

而文件格式是 操作系统如何 加载 (loader) 这个文件定义出来的,例如 Windows 的 exe 文件是 PE格式,Linux 的可执行文件是 ELF 格式。


而包管理器干的活,就是判断你当前的环境是什么 CPU 指令集的,当前是什么操作系统,下载相应的压缩包,然后解压放到本地的各个默认目录,例如 /etc ,/usr/lib ,/usr/bin,等等。

这与我们在 windows 下一个 exe 然后指定他的安装目录不同,包管理器是有默认目录的。所以包管理器是一种统一管理软件的方式。


由于云端仓库有非常多的软件,通常比较好的平台都会有分析软件,分析出这些安装包有无危害代码。

参考资料:

1,《怎么理解ubuntu中的软件包管理器apt和dpkg》

2,《Linux 包管理基础:apt、yum、dnf 和 pkg》


目录
相关文章
|
7月前
|
Ubuntu Java Linux
软件包管理篇
软件包管理篇
|
Linux 编译器 开发工具
【Linux环境基础开发工具】软件包管理器-yum
【Linux环境基础开发工具】软件包管理器-yum
167 0
|
Linux 编译器 数据库
pacman包管理器介绍
pacman包管理器介绍
556 0
|
Linux iOS开发 MacOS
npm将软件包安装到哪里
npm将软件包安装到哪里
220 0
|
7月前
|
缓存 Linux Shell
【Linux工具篇】软件包管理器yum
【Linux工具篇】软件包管理器yum
90 1
|
7月前
|
Linux
软件包管理工具 - dpkg
【1月更文挑战第15天】
107 4
|
7月前
|
Java Linux 开发工具
Windows中使用包管理器(类似于apt/yum的) - Chocolatey
Windows中使用包管理器(类似于apt/yum的) - Chocolatey
409 0
|
7月前
|
缓存 Linux
软件包管理工具 - yum
【1月更文挑战第17天】
127 0
|
7月前
|
缓存 Linux
软件包管理工具 - dnf
【1月更文挑战第14天】
189 0
|
7月前
|
缓存 Ubuntu Linux
apt-get 软件包管理工具
【1月更文挑战第1天】
211 0