Linux-开发与管理 P5软件管理

Linux-开发与管理 P5软件管理

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-uDKXtXwd-1608173048425)(en-resource://database/1772:1)]

软件包管理简介

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ICpG8P4e-1608173048434)(en-resource://database/1774:1)]

软件包简介

Linux 系统主要支持RPMDeb两种软件包管理工具

Linux为用户提供了不同层次类型的软件包管理工具,根据用户交互方式的不同,可以将常见的软件包管理工具分为三类,命令行工具文本窗口界面图像界面
下面将对几种分类进行详细讲解

软件包管理工具分类

类别常用工具描述
命令行dpkg-deb、dpkg、apt在命令行模式下完成软件包管理任务
文本窗口界面dselect、aptitude、tasksel在文本窗口模式中,使用窗口和菜单可以完成软件包管理任务
图形界面synaptic在X-window图形桌面环境中运行,具有更好的交互性、可读性、易用性等特点

dpkg是最早的Deb包管理工具,它在Debian一提出包管理模式后就诞生了;使用dpkg可以实现软件包的安装、编译、卸载、查询,以及应用程序打包等功能

APT系列工具可能是Deb软件包管理工具中功能最强大的,Ubuntu将所有的开发软件包存放在Internet上的许许多多镜像站点上;用户可以选择其中最适合自己的站点作为软件源,然后在APT工具的帮助下,就可以完成所有的软件包的管理工作,包括维护系统中的软件包数据库自动检查软件包依赖关系安装升级软件包、从软件源镜像站点主动获取相关软件包等

软件管理机制

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ivE29Rr6-1608173048440)(en-resource://database/1773:1)]

软件安装与卸载

简介

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的文件列表

APT软件包管理工具

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-bsi5vbk0-1608173048444)(en-resource://database/1775:1)]

运作机制与配置文件

运行机制简介

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旧版本中部分地添加新功能,该类软件包无任何技术支持

apt-get工具集

简介
在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-cache是一个apt软件包管理工具,配合不同的子命令和参数使用,可以实现查询软件源和软件包的相关信息及包依赖关系等功能

基本结构

apt-cache 子命令 子选项 pkg

子命令

子命令描述
showpkg获取二进制软件包的常规描述信息
showsrc获取源码包的详细描述信息
show获取二进制软件包的详细描述信息
stats获取软件源的基本统计信息
dump获取软件源所有软件包的简要信息
dumpavail获取当前中已安装的所有软件包的描述信息
unmet获取所有未满足的依赖关系
search根据正则表达式检索软件包
depends获取该软件包的依赖信息
rdepends获取所有依赖于该软件包的软件包
pkgnames列出所有已安装软件包的名字
policy获取软件包当前的安装状态

子选项

选项描述
-p软件包缓存
-s源代码包的缓存
-q关闭进度获取
-i获取重要的依赖关系
-c读取指定配置文件
-h获取帮助信息

更多内容

Linux-开发与管理 P1 shell编程

Linux-开发与管理 P2 GCC编译器

Linux-开发与管理 P3 GDB调试器

Linux-开发与管理 P4 Makefile基础

Linux-开发与管理 P5 软件管理

Linux-开发与管理 P6 用户管理

Linux-开发与管理 P7 文件系统

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

CagePan

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值