文章目录
1.简介
Linux下的软件包管理工具有多种,其中包括类windows下的图形界面、简单的文本窗口界面以及最实用的命令行等。其中命令行的软件包管理是在linux下最常用且最实用的,常用的命令行软件包管理工具有
dpkg-debdpkgapt
其中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管理软件包的方式