1、APT工作原理
**Ubuntu采用集吕式的软件包管理机制**将各式各样的软件包分门别类地存放在软件仓库中,进行有效地组织管管理,然后,将软件仓库置于许许多多的镜像服务器中,并保持基本一致。因些,对于用户,这些镜像服务器就是他们的软件源(reposity)-在Ubuntu系统中,使用的软件源配置文件“/ect/apt/source.list”列出最合适访问地镜像站点地址-软件源配转置文件只是告知Ubuntu系统可以访问的镜像站点地址。但那些镜像站点都有什以软件 资源并不清楚,若是每安培训一个软修的包,就在服务器上录找一次,效率太低,因此,就有必 要为这些软件资源列一个清单(索引) ,以便本地主机查询,这就是apk软件包管理器的工作原理 vim /ect/apt/source.list
![9909443a56b82ade747e1e3775647a10.png](https://i-blog.csdnimg.cn/blog_migrate/3a0e855ef3ffc83602844edd14067993.jpeg)
软件源
根据软件包的开发组职对该软件的支持程度,以及开源程度,划分为如下四类-核心(Main)官方维护的开源软件-公共(Universe)社区维护的开源软件-受限(Restricted)官方维护的非开源软件-多元化(Multiverse)非Ubuntu官方维护的非开源软件
刷新软件源
-修改置配文件 “/ect/apt/source.list”-使用 “apt-get update” 更新本地软件源,索引文件存放在本地 “/var/lib/apt/lists”
![5f46db48e08f6a890312c2fdffc5f19b.png](https://i-blog.csdnimg.cn/blog_migrate/fea381874348b2980dfaa1d4987ebcef.jpeg)
2、软件管理相关命令
apt-get update 下载更新软件包列表信息apt-get upgrade 将系统中所有软件包升级到最新版本apt-get install 下载所需软件包并进行安装apt-get remove 删除软件apt-get autoremove 将不满足依赖关系的软件包自动删除apt-get source 下载源码包apt-get build-dep 为源码包构建所需的编译环境apt-get dist-upgrade 发布版升级apt-get clean 删除缓存区中所有已下载的包文件apt-get autoclean 删除缓存区中老版本的已下载包文件apt-get check 检查系统中依赖关系安整性
3、修复软件包依赖关系
-如果由于故障而中断软件安装过程,可能会造成关联的软件包只有部分安装,之后,用户就会发现该软件不能重新安装也不能删除作为组合命令,可以使用以下命令检查软件依赖,然后修复安装 apt-get ckeck 检查, apt-get -f install 重新安装 -在处理依赖关系上,apg-get会自动下载并安装具有依赖关系的软件包
4、安装软件包
apt-get install 安装步骤- step1 扫描本地存放的软件包更新列表- step2 进行软件包依赖关系检查,找到支持该软件正常运行的所有软件包:- step3 从软件源所指的镜像站点中,下载相关软件包- step4 解压软件包,并自动安成本应安装和配置apt-get install reinstall 重新安装
4、软件包卸载
不完全卸载- "apt-get remove" 会关注那些与被删除的软包相关的其他软件包,删除一个软件时,会把依赖包也一起删除完全卸载- “apt-get --purge remove” 命令在卸载软件包文件同时,还删除该软件包所使用的配置文件
5、清理软件包缓冲区
可以使用 “apt-get clean” 清理整个软件包缓冲区,除了lock锁文件和partial 目录目录 “/var/cache/apt/archives” 可以在没网络的情况下再次安装软件
![154b1ee19a479d41a785760d796ec7f2.png](https://i-blog.csdnimg.cn/blog_migrate/c004df3a5b2153c3ff36a8a5cc2b7db9.jpeg)
6、查询软件包信息
使用apt-cache命令完成查询软件源和软件包的相关信息apt-cache show 查询软件包相关信息 如:apt-get shwo gccapt-cache policy 查询软件包安装状态apt-cache depends 查询软件包依赖包apt-cache rdepends 查询被谁所依赖
总结
APT软件包管理器的工作原理及主要命令
思考
下列文件的作用?- "/etc/apt/sources.list"- "/var/lib/apt/lists/*"- "/var/cache/apt/archives"