Linux浅析之三——APT

一、引言

就像iPhone的App Store、Windows的Microsoft Store,Linux同样也有“应用商店”(软件源),本文以deepin系统为例讲解衍生于Debian系统的在线升级工具APT。
APT(Advanced Packaging Tool)工具套件包括apt、apt-get、apt-cache、apt-config等,官方推荐使用apt,不过我觉得后面几个工具更好用。
软件源地址存放在/etc/apt/sources.list。好了,开始吧。

二、apt-cache命令

这个工具的所有命令都是访问与软件源保持一致的本地cache。

1、检索满足条件的软件:apt-cache search

//示例
apt-cache search samba

这条命令的执行结果会有多条,只要软件名或者软件描述中包含给定的关键字则列出。
在这里插入图片描述
观察检索结果,第一条4pane似乎就和samba没有任何关系,无论名称或者描述。别急,在deepin系统中软件描述分为长描述与短描述,这条命令检索长描述,但显示短描述(有点怪)。

2、检索满足条件的软件:apt-cache search --names-only

//示例
apt-cache search --names-only samba

增加一个参数names-only,表示只有软件名包含给定的关键字则列出,因为不再检索软件描述,结果大为减少。
在这里插入图片描述
观察检索结果,所有列出的软件名均包含samba。
通过检索获得软件的准确名称,接下来需要了解该软件各个方面的信息。

3、查询软件版本:apt-cache madison

//示例
apt-cache madison samba

在这里插入图片描述
观察运行结果,列出了软件samba最近的3个版本。不过说实话,这个版本号看着别扭,而且为什么要保留这么多的历史版本?

4、查询软件综合信息:apt-cache show

//示例
apt-cache show samba

在这里插入图片描述
观察运行结果,按版本列出了软件的各项信息,samba有3个版本,所以分3个部分列出。通过执行这条命令可以体会一下apt-cache的处理对象是本地cache(对标的是软件源),不是本机已安装的软件。

5、整简单点,我就想知道某个软件是否安装:apt-cache policy

//示例
apt-cache policy samba

在这里插入图片描述
结果按版本列出,100与500表示每个源的优先级(priority),100表示已安装,500表示未安装,还是整的有点复杂啊。
通过apt-cache的命令可以充分了解这个“应用商店”,接下来就是“购买商品”——apt-get。

三、apt-get命令

1、同步包索引文件(官方解释):apt-get update

//示例
apt-get update

执行apt-cache命令时的cache来自哪里?答案在这里,通过这条命令建立或更新包索引文件,存放在目录/var/lib/apt/lists,除安装软件外其他需要访问软件源的命令均访问索引文件(这正是索引的意义所在)。
试一试删除这个目录下的所有文件,然后运行:apt-cache search samba,结果有什么变化?

2、安装系统所有软件的最新版本:apt-get upgrade

//示例
apt-get upgrade

对系统的全面升级(除内核外),与apt-get update搭配使用,先update包索引文件,再upgrade软件。

3、安装或升级指定的软件:apt-get install

//示例
apt-get install samba

没啥说的,注意给定软件名称就行(如果要给出带版本号的文件名简直是反人类设计了)。

4、移除指定的软件:apt-get remove

//示例
apt-get remove samba

真没啥说的。

5、清除本地仓库(local repository):apt-get clean

//示例
apt-get clean

观察两个目录/var/cache/apt和/var/cache/apt/archives在命令执行后几乎所有的文件都被清除了,个人觉得本地仓库可以近似理解为安装或升级软件时留下的包文件。
尚不明确本地仓库与包索引文件的关系,也就是/var/cache/apt与/var/lib/apt/lists目录下文件之间的关系,但我觉得两者之间肯定有非常紧密的联系。

四、总结

Debian系Linux为了提高访问软件源的速度引入了本地cache机制,在APT命令的划分上分为apt-cache与apt-get两大门类,整体设计清晰合理,值得我们在日常工作中学习借鉴。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值