[Feelings & Sharing] 【小知识】debian的包管理系统
Tofloor
poster avatar
enforcee
deepin
2023-04-25 05:45
Author

包管理系统通常是一个GNU/Linux发行版中最基础的组件之一。使用包管理器可以安装和删除系统的各个组件。安装系统时也通常是先设置包管理系统,再使用他安装系统的其他组件。采用何种包管理系统也是判断GNU/Linux分类的常用依据。

debian使用的包管理系统是dpkg(Debian Package)和apt(Advanced Package Tool)。其中dpkg是后端,负责管理当前系统中的软件结构,安装和删除软件;apt则是前端,负责管理软件源,将远程服务器上的软件列表和信息同步到本地,下载软件包再调用dpkg安装。dpkg主内,apt主外,而apt也建设在dpkg的基础上。两者既是独立的,各自有自己的数据库;而apt和dpkg也必须相互配合才能为用户提供完整现代的包管理功能。(这只是debian的状况,有其历史原因,而其他操作系统的包管理系统也不一定采用前后端分离的模式)

dpkg的命令工具就是同名的dpkg,而apt是有三组功能类似的命令:apt-get与apt-cache、apt、aptitude。apt-get和apt-cache是其中最先推出的命令工具;apt是较后设计的,整合了apt-get和apt-cache的功能,并且对命令的用户体验有一定改进(比如说增加了进度条);aptitude更加智能,对一些依赖问题有更强的处理能力,并且可以自动删除不再使用的软件包。aptitude既能像apt一样用传统的命令执行,又同时有一个在终端中显示的图形界面(TUI),只需要输入不加选项的 sudo aptitude就可以进入,可以交互式的操作软件包(最神奇的是这个终端应用还能用鼠标点)。具体选用哪组命令,推荐大家在脚本中使用apt-get和apt-cache,而日常命令操作更推荐apt和aptitude。如果大家希望一个更智能方便的命令就用aptitude,如果害怕aptitude太过自作主张做出错误的决定就用apt。

除了命令之外,一些图形界面也可以用于管理软件包,debian官方推出的工具是synaptic(中文名叫「新立得软件包管理器」,和那个做触摸板的厂商synaptics要区分开),一些软件商店也是以apt作为后端(倒是很多是用PackageKit做中间端)。此外还有一系列辅助工具来补充apt的功能,我自己常用的是apt-file,用于通过文件名查找包含这个文件的软件包。

想了解更多的可以看debian的官方文档:https://www.debian.org/doc/manuals/debian-reference/ch02.zh-cn.html

Reply Favorite View the author
All Replies
阿尼樱奈奈
Moderator
2023-04-25 05:51
#1

ok

Reply View the author
青稚°
Moderator
2023-04-25 05:57
#2

包管理还有pacman,yum,zypper等。

Reply View the author
jjcui8595
Moderator
2023-04-25 06:07
#3

like

Reply View the author
fuuko
deepin
2023-04-25 16:05
#4

目前官方都已经不推荐使用dpkg了,虽然这玩意儿还是最底层的那一套

Reply View the author