什么是包管理器

简介: 什么是包管理器

现代计算机世界里面有很多的包管理器,例如 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》


目录
相关文章
|
8月前
|
程序员 Python
|
8月前
|
Apache Windows
MapServer安装
MapServer安装
88 1
|
Kubernetes Linux 网络安全
安装k8s
完成安装k8s集群以后,推荐使用[https://github.com/512team/dhorse](https://github.com/512team/dhorse)发布应用。 ## 准备环境 准备两台服务器节点,如果需要安装虚拟机,可以参考[《wmware和centos安装过程》](https://blog.csdn.net/huashetianzu/article/details/109510266) | 机器名 | IP | 角色 | CPU | 内存 | | :----: | :----: | :----: | :----: | :----: | | centos01 |
安装
安装
120 0
安装
|
Python
Anconda安装(超详细 3.5X)
Anconda安装(超详细 3.5X)
163 0
Anconda安装(超详细 3.5X)
|
自然语言处理
致第一次安装RIME的你
转载自百度RIME吧,作者:半月湾C 原帖地址:http://tieba.baidu.com/p/3288634121   序言 很喜欢小狼毫输入法,喜欢他的简洁,美观以及超强悍的个人定制功能。关于 RIME输入法。
3816 0
|
Kubernetes 数据可视化 Docker
dacker安装
dacker安装
|
算法 Ubuntu Linux
fsarchiver安装及使用
fsarchiver安装及使用
667 0
|
Kubernetes API 开发工具
Kubernate之安装-yellowcong
Kubernate安装的时候,需要先安装主节点,然后安装从节点,主节点中,需要注意配置文件的配置,而且ETCD最好做单独服务,让etcd先启动后,然后再启动kubernate的master和node子节点,Master节点 有apiServer ,Scheduler,Controller-manager,Node节点有:kubelet和proxy和flanned,flanned是用来管理docker容器网络的,而且需要结合etcd来使用。
2804 0
|
Python 开发工具 git