Linux学习笔记05 -- Linux中dpkg和apt对deb软件包的管理
文章目录
1.简介
Linux下的软件包管理工具有多种,其中包括类windows下的图形界面、简单的文本窗口界面以及最实用的命令行等。其中命令行的软件包管理是在linux下最常用且最实用的,常用的命令行软件包管理工具有
dpkg-deb
dpkg
apt
其中dpkg
和apt
在不同的Linux发行版本中应用非常广泛,且根据不同的需求搭配选用效率非常高
2.dpkg软件包管理
1)相关常用命令
apkg命令安装软件包最大的特地是不强制系统在联网状态下,可以直接将已经下载好的deb包同个dpkg命令安装到本地,常用命令如下所示
命令 | 功能 |
---|---|
dpkg -i | 安装一个在本地文件系统上存在的Debian包 |
dpkg -r | 移除一个已经安装的软件包 |
dpkg -P | 移除已安装软件包及配置文件(彻底清除) |
dpkg -L | 列出安装的软件包清单 |
dpkg -s | 显示出软件包的安装状态 |
3.apt软件包管理
1)apt工作原理
- 以Ubuntu操作系统为例,Ubuntu采用集中式的软件仓库机制,将各式各样的软件包分门别类的存放在软件仓库中,进行有效的组织和管理,然后,将软件仓库置于叙叙多多的镜像服务器中,并保持基本一致。这也是当今许多软件源网站所争相效仿的 ,因此,对于用户而言,这些镜像服务器就是他们的软件源。
- 用户需要某个软件安装包,就链接到本操作系统中的软件源配置文件,联网情况下,在服务器的镜像站点处的软件清单中分类别找出所需要的软件资源,再反馈到本机,以便本地主机的查询和安装。
2)apt-get常用命令
命令 | 功能 |
---|---|
apt-get update | 下载更新软件包列表信息 |
apt-get upgrade | 将系统中所有软件包升级到最新的版本 |
apt-get install | 下载所需软件包并进行安装配置 |
apt-get install --reinstall | 重新安装软件包 |
apt-get remove | 卸载软件包 |
apt-get remove package --purge | 完全卸载软件包 |
apt-get autoremove | 将不满足依赖关系的软件包自动卸载 |
apt-get source | 下载源码包 |
apt-get bulid-dep | 为源码包构建所需要的编译环境 |
apt-get dist-upgrade | 发布版升级 |
apt-get dselect-upgrade | 更具dselect的选择来进行软件包升级 |
apt-get clean | 删除缓冲区中所有已下载的包文件 |
apt-get autoclean | 删除缓冲区中老版本的已经下载的包文件 |
apt-get check | 检查系统中依赖关系的完整性 |
以下载rxvt终端命令行工具为例
-
apt-get install rxvt
安装软件包l命令
-
apt-get install rxvt --reinstall
重新安装软件包命令
-
apt-get clean
表示清除缓冲区中下载的所有软件包命令,apt-get autoclean
则为清除缓冲区中下载的软件包,保留最新下下载软件包版本命令
3)apt-get其他辅助子命令
一下子命令常用于搭配apt-get + command使用
命令 | 功能 |
---|---|
-d | 仅下载软件包,而不安装或者解压 |
-f | 修复系统中存在的软件包依赖性问题 |
-m | 当发现缺少关联软甲包时,仍视图继续执行 |
-q | 将输出作为日志保留,不获取命令执行进度 |
-b | 在下载完源码包后,编译生成相应的软件包 |
-s | 不做实际操作,知识模拟命令执行结果 |
-y | 对所有询问都做肯定的回答,apt-get不再进行任何提示 |
-u | 获取已经升级的软件包列表 |
-h | 获取帮助信息 |
-v | 获取apt-get版本号 |
4.查询软件包信息
使用apt-cache命令完成查询软件源和软件包的相关信息,搭配一下子命令使用
命令 | 功能 |
---|---|
show | 获取二进制软件包的详细信息 |
showsrc | 获取源码包的详细描述信息 |
showpkg | 获取二进制软件包的常规描述信息 |
stats | 获取软件源的基本软件信息 |
depends | 获取该软件包的依赖关系 |
rdepends | 获取所有依赖于该软件包的软件包 |
pkgnames | 列出所有已经安装包的名字 |
policy | 获取软件包当前的安装状态 |
如下所示apt-cache show gcc
,查看gcc的软件信息
如下所示apt-cache policy gcc
查看安装状态
如下所示apt-cache depends gcc
查询依赖关系
5.dpkg和apt软件包的区别
-
dpkg
:用来安装.deb
文件,但不会解决模块的依赖关系,且不会关心Ubuntu的软件仓库内的软件,可以用于安装本地的deb文件(离线状态) -
apt
:apt
会解决和安装模块的依赖问题,并会咨询软件仓库, 但不会安装本地的deb
文件,apt
是建立在dpkg
之上的软件管理工具(在线状态)
在Linux系统中常用的是apt管理软件包的方式