赞
踩
Linux 系统主要支持RPM和Deb两种软件包管理工具
Linux为用户提供了不同层次和类型的软件包管理工具,根据用户交互方式的不同,可以将常见的软件包管理工具分为三类,命令行工具、文本窗口界面和图像界面
下面将对几种分类进行详细讲解
类别 | 常用工具 | 描述 |
---|---|---|
命令行 | dpkg-deb、dpkg、apt | 在命令行模式下完成软件包管理任务 |
文本窗口界面 | dselect、aptitude、tasksel | 在文本窗口模式中,使用窗口和菜单可以完成软件包管理任务 |
图形界面 | synaptic | 在X-window图形桌面环境中运行,具有更好的交互性、可读性、易用性等特点 |
dpkg是最早的Deb包管理工具,它在Debian一提出包管理模式后就诞生了;使用dpkg可以实现软件包的安装、编译、卸载、查询,以及应用程序打包等功能
APT系列工具可能是Deb软件包管理工具中功能最强大的,Ubuntu将所有的开发软件包存放在Internet上的许许多多镜像站点上;用户可以选择其中最适合自己的站点作为软件源,然后在APT工具的帮助下,就可以完成所有的软件包的管理工作,包括维护系统中的软件包数据库、自动检查软件包依赖关系、安装和升级软件包、从软件源镜像站点主动获取相关软件包等
简介
dpkg是UbuntuLinux中最基本的命令行软件包管理工具,可用于安装、编译、卸载和查询Deb软件包,但dpkg不能主动从镜像站点获取软件包,且安装软件包时,无法检查软件包的依赖关系;因此,在对一个软件组件的依赖关系不清楚的情况下,建议使用APT软件包管理器
安装与卸载指令
命令 | 功能 |
---|---|
dpkg -i | 安装一个在本地文件系统上存在的Debian软件包 |
dpkg -r | 移除一个已经安装的软件包 |
dpkg -P | 移除已安装软件包及配置文件 |
dpkg -L | 列出安装的软件包清单 |
dpkg -s | 显出软件包的安装状态 |
dpkg -reconfigure | 重新配置一个已经安装的软件包 |
Debian Linux 首次提出“软件包”的管理机制—Deb软件包,将应用程序的二进制文件、配置文档、man\info帮助页面等文件合并打包在一个文件中,用户使用软件包管理器直接操作软件包,完成获取、安装、卸载、查询等操作
软件包命名
Filename_Version-Reversion_Architecture.deb
Filename:软件包名称
Version:软件版本
Reversion:修订版本
Architecture: 体系结构
软件包优先级
Linux为每个软件包指定了一个优先级,作为软件包管理器选择安装和卸载的一个依据
基本系统又Required级和Importtant级软件包组成,属于这类优先级的软件包首先被冻结;由于这些软件包为其他软件包所依赖,它们能保证整个系统的稳定,因此是Ubuntu发布新版本所必须的。然后,冻结Standard级软件包,紧接着,在发布新版本之前对Optional级和Extra级软件包进行冻结
类别 | 含义 |
---|---|
Required(必须) | 该级别软件包时保证系统正常运行所必须的 |
Important(重要) | 若缺少该级别软件包,系统会运行困难或不好操作 |
Standard(基本) | 该级别软件包是任何Linux系统的标准件 |
Optional(可选) | 该级别软件包是否安装不影响系统的正常运行 |
Extra(额外) | 该级别软件包可能与其他高级别软件包存在冲突 |
软件包的状态
在使用系统过程中,用户会不断地安装、卸载软件包,为了记录用户的安装行为,Ubuntu对软件包定义了以下两种状态
期望状态:标记用户希望将某个软件包处于的状态
当前状态:标记用户操作该软件包后的最终状态
类别 | 状态 | 状态符 | 描述 |
---|---|---|---|
期望状态 | 未知(unknown) | u | 用户并没描述他想对软件包进行什么操作 |
期望状态 | 已安装(install) | i | 该软件包已安装或升级 |
期望状态 | 删除(remove) | r | 软件包已删除,但不想删除任何配置文件 |
期望状态 | 清除(purge) | p | 用户希望完全删除软件包,包括配置文件 |
期望状态 | 保持(hold) | h | 用户希望软件包保持现状 |
当前状态 | 未安装(Not) | n | 该软件包描述信息已知,但仍未在系统中安装 |
当前状态 | 已安装(installed) | i | 已经完全安装和配置了该软件包 |
当前状态 | 仅存配置(config-file) | c | 软件包已删除,但配置文件仍保留在系统中 |
当前状态 | 仅解压缩(Unpacked) | U | 已将软件中的所有文件释放,但尚未执行安装和配置 |
当前状态 | 配置失败(Failed-config) | F | 曾尝试安装该软件包,但由于错误没有完成安装 |
当前状态 | 不完全安装(Half-installed) | H | 以开始进行提取后的配置工作,但由于错误没有完成安装 |
依赖性关系
依赖关系 | 关系描述 |
---|---|
依赖(depends) | 要运行软件包A必须安装软件包B,甚至还依赖于B的特定版本 |
推荐(recommends) | 软件包维护者认为所有用户都不会喜欢缺少软件包A 的某些功能,而这些功能需要B来提供 |
建议(suggests) | 软件包B能够增强软件包A 的功能 |
替换(replaces) | 软件包B安装的文件被软件包A中的文件删除或覆盖 |
冲突(conflicts) | 如果系统中安装了软件包B,那么软件包A将无法运行 |
提供(provides) | 软件包A 中包含了软件包B中的所有文件和功能 |
已安装软件信息
命令 | 功能 |
---|---|
dpkg -l | 查看当前系统中已经安装的软件包信息 |
dpkg -s | 查询系统已经安装的指定软件包的详细信息 |
dpkg -L | 显示指定名称的软件包安装到系统中的文件列表 |
dpkg -S | 查询系统中的某个文件属于哪个软件包 |
dpkg -c | 查看Deb包中包含Deb的文件列表 |
运行机制简介
dpkg并不会自动解决软件卸载过程中遇到的软件包依赖性问题,而通过apt-get命令可以解决此问题,APT是Ubuntu Linux中功能最强大的命令行软件包管理工具,用于获取、安装、编译、卸载和查询Deb软件包,以及检查软件包依赖关系;Ubuntu采用集中式的软件仓库机制,将各式各样的软件包分门别类地存放在软件仓库中,进行有效的组织和管理
软件源是指散布在互联网中的众多服务器,在这些服务器中存放了大量的软件包,用于进行用户主机的更新和升级,它们是专门向Ubuntu用户免费开放的,所以只要在软件源中定期上传最新版本的软件,便可确保所有用户用到最新发布的软件包
两个维度
Ubuntu将软件包从两个维度—支持力度和安装必要性,合理地进行了划分;Ubuntu的每一个版本都是安装这个软件包分类体系管理软件源的,并一直延续下去
维度一
首先根据软件包开发组织对该软件的支持程度,以及其遵从的开源程度
1.核心(Main):官方维护的开源软件,是由Ubuntu官方完全支持的软件,包括大多数流行的、稳定的开源软件
2.公共(Universe):社区维护的开源软件,是由Ubuntu社区的计算机爱好者维护的软件
3.受限(Restricted):官方维护的非开源软件,是专供特殊用途,而且没有自由软件版权,不能直接修改软件,但依然被Ubuntu团队支持的软件
4.多元化(Multiverse):非Ubuntu官方维护的非开源软件,是指那些非自由软件,通常不能被修改和更新,用户使用这些软件包时,需要特别注意版权问题
维度二
从另一个角度根据软件包的必要性和安全性,也可将软件包划分为4类
1.安全更新(Security):稳定的、安全的软件包,是必须要安装的
2.最新更新(Updates):最新完成的更新软件包,建议安装
3.推荐更新(Proposed):提前释放出的更新,处于Alpha测试阶段的软件包
4.修补性更新(Backports):在Ubuntu旧版本中部分地添加新功能,该类软件包无任何技术支持
简介
在Ubuntu Linux中,通常使用apt-get命令管理软件包,只需告知软件包名字,该命令就可以自动完成软件包的获取、安装、编译和卸载,并检查软件包依赖关系
基本结构
apt-get 子命令 子选项 pkg
子命令
子命令 | 描述 |
---|---|
update | 下载更新软件包列表信息 |
upgrade | 将系统中所有软件包升级到最新的版本 |
install | 下载所需软件包并进行安装配置 |
remove | 卸载软件包 |
autoremove | 将不满足依赖关系的软件包自动卸载 |
source | 下载源码包 |
build-dep | 为源码包构建所需的编译环境 |
dist-upgrade | 发布版升级 |
dselect-upgrade | 根据dselect的选择来进行软件包升级 |
clean | 删除缓存区中所有已下载的包文件 |
autoclean | 删除缓存区中老版本的已下载文件 |
check | 检查系统中依赖关系的完整性 |
子选项
选项 | 描述 |
---|---|
-d | 仅下载软件包,而不安装或解压 |
-f | 修复系统中存在的软件包依赖性问题 |
-m | 当发现缺少关联软件包时,仍试图继续执行 |
-q | 将输出作为日志保留,不获取命令执行进度 |
-purge | 与remove子命令一起使用,完全卸载软件包 |
-reinstall | 与install子命令一起使用,重新安装软件包 |
-b | 在下载完源码包后,编译生成相应的软件包 |
-s | 不做实际操做,只是模拟命令执行结果 |
-y | 对所有询问都做肯定的回答 |
-u | 获取已升级的软件包列表 |
-h | 获取帮助信息 |
-v | 获取apt-get版本号 |
简介
apt-cache是一个apt软件包管理工具,配合不同的子命令和参数使用,可以实现查询软件源和软件包的相关信息及包依赖关系等功能
基本结构
apt-cache 子命令 子选项 pkg
子命令
子命令 | 描述 |
---|---|
showpkg | 获取二进制软件包的常规描述信息 |
showsrc | 获取源码包的详细描述信息 |
show | 获取二进制软件包的详细描述信息 |
stats | 获取软件源的基本统计信息 |
dump | 获取软件源所有软件包的简要信息 |
dumpavail | 获取当前中已安装的所有软件包的描述信息 |
unmet | 获取所有未满足的依赖关系 |
search | 根据正则表达式检索软件包 |
depends | 获取该软件包的依赖信息 |
rdepends | 获取所有依赖于该软件包的软件包 |
pkgnames | 列出所有已安装软件包的名字 |
policy | 获取软件包当前的安装状态 |
子选项
选项 | 描述 |
---|---|
-p | 软件包缓存 |
-s | 源代码包的缓存 |
-q | 关闭进度获取 |
-i | 获取重要的依赖关系 |
-c | 读取指定配置文件 |
-h | 获取帮助信息 |
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。