失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > python包管理工具ports_Linux软件包管理器讲解

python包管理工具ports_Linux软件包管理器讲解

时间:2020-04-24 04:27:04

相关推荐

python包管理工具ports_Linux软件包管理器讲解

众所周知,Linux是个友好的操作系统,在Linux世界里软件包管理器基本上就是它的生命,而由于Linux发行版众多,所以软件包管理器也是鱼龙混杂。有Debian系的apt/dpkg,Redhat系的yum/dnf/rpm,还有小众的ArchLinux的pacman以及从源码开始编译的ports(这货咱先不讲,它是FreeBSD的)和emerge。

基础软件包管理dpkg/rpm

先讲开山鼻祖dpkg吧,远古时期上世纪90年代的Linux都是将软件用源码来编译的,但是并不是所有的电脑都会自带诸如gcc/clang一类的编译工具,就算你有了这些编译工具,你也需要像make这种将所有头文件和源代码一并编译和链接的工具,否则你可能编译只花了10分钟,但是打命令就用了20分钟,如果一些比较大的软件包像gcc要更新的话,至少要一个小时左右,就算你有make这样的工具你依然会疯掉......

dpkg就是救世主般的存在,它直接将二进制的文档复制进计算机的/usr目录中,省去你大量编译的时间(毕竟现在电脑不是i686就是x86_64),这也拯救了那些没有自带编译器的系统。然而,你要知道就算你想装的软件包只有一个,你还是得装大量的软件包,这就是Linux界软件包的依赖关系。一个软件包会调用其他软件包的可执行文件(如python脚本),以及库文件(那些以lib开头的文件),这就很蛋疼了。

商业大佬Redhat因为对Debian的dpkg羡慕嫉妒恨,也开发了一个叫rpm的软件包管理器,其本质也是和dpkg相似,都是将二进制可执行文件/字节码/脚本复制到计算机硬盘中。

网络时代——apt/yum/dnf

为了解决依赖关系这个蛋♂疼的事情,Debian系和Redhat系分别开发出了自己的工具。

apt是Debian开发的软件包管理器,apt可以通过从网络站点下载软件包,并自动解决Debian系统的软件包依赖关系,这就是为什么你装一个GNOME3可能你要装一大堆没有用的软件包,当然如果你是精简派人物你也可以用--no-install-recommends参数解决。

而Redhat用了yum这个软件包管理器,和apt不同,yum用python进行编写,这样就表明了它具有比apt更好的拓展性,可以用一些python脚本添加一些功能。however,这是有代价的,由于使用的是脚本语言,速度会慢于apt。由于python2式微,现在Redhat在使用新的软件包管理器dnf(不是游戏是管理器!!!),它用python3编写,还支持多线程下载,apt到现在还是没有这个功能。

但是在用户界面友好性上我觉得apt更胜一筹,因为apt的用户界面aptitude支持在TUI界面搜索和安装软件包,还有新立德软件包管理器(GNOME3下,话说它不支持Wayland)。而且apt下软件包最常见的,要么是自动安装,要么是手动安装,卸载时不会有大量依赖包残留。

冷门系列——pacman/AUR

pacman是ArchLinux的软件包管理器,众所周知,Arch系的系统都是滚动更新的,所以基本上软件包版本是不会因为发行版的版本而限制,所有的软件包都是最新的。Arch系最大的特点就是更新时只要用pacman -Syyu来更新就行了。然而,Arch系的软件包的安全性和稳定性就不得而知了——比起Debian的stable分支而言,Arch系统的稳定性还是比较差的,所以Arch有一个著名的砖业名词“滚挂”。当然,有一些替代的发行版,比如Manjaro,它的源和ArchLinux源是完全独立的。Arch的一大特色就是AUR了,但是用户提供的,稳定性也就不得而知了。

坚守传统——emerge

emerge是gentoo的软件包管理器,也就是让你编译一下午的软件包管理器。emerge将源代码从镜像站上下载,编译,安装。因为从源代码编译可以进行自行调整,很多人比较喜欢从源代码编译,做一回抖M去折腾自己。编译的另外一个好处就是可以跨架构安装,就可以节约镜像站的空间。

兄弟们,春光灿烂,实为三连的好时候,再点一个关注,就更香了。关注过千我给大家开课(手动滑稽)。

如果觉得《python包管理工具ports_Linux软件包管理器讲解》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。