apt(AdvancedPackagingTool)是一个在Debian和Ubuntu中的Shell前端软件包管理器。 apt命令提供了查找、安装、升级、删除某一个、一组甚至全部软件包的命令,而且命令简洁而又好记。 apt命令执行需要超级管理员权限(root)。前些日子需要打一个镜像,用到的命令有点多,正好梳理一下,防止忘掉。一、镜像源 apt从哪里获取要安装的软件呢?答案是镜像源。镜像源的配置文件一般在:etcaptsources。list。 该文件中的镜像源一般位于国外,所以安装包会比较慢,为解决这个问题,可以更换镜像源。1。1更换镜像源方案一:sed命令sedishttp:deb。debian。orghttps:mirrors。163。comgetcaptsources。list或者sedissecuritycdn。debian。orgmirrors。aliyun。cometcaptsources。list 如果使用https源,则需要执行aptinstallapttransporthttps,再执行aptupdate更新源索引。方案二:更改文件 直接更改etcaptsources。list文件,国内常用的镜像源有163、中科大、阿里云、华为云、清华大学云、兰州大学云、上海交通大学云镜像源等。 如163的镜像源:debhttp:mirrors。163。comdebianstretchmainnonfreecontribdebhttp:mirrors。163。comdebianstretchupdatesmainnonfreecontribdebhttp:mirrors。163。comdebianstretchbackportsmainnonfreecontribdebsrchttp:mirrors。163。comdebianstretchmainnonfreecontribdebsrchttp:mirrors。163。comdebianstretchupdatesmainnonfreecontribdebsrchttp:mirrors。163。comdebianstretchbackportsmainnonfreecontribdebhttp:mirrors。163。comdebiansecuritystretchupdatesmainnonfreecontribdebsrchttp:mirrors。163。comdebiansecuritystretchupdatesmainnonfreecontrib1。2镜像源说明第一个字段 deb与debsrc,是指软件包(deb)和源代码包(debsrc)第二个字段 指向的是软件库的位置,apt会自动根据软件库的位置和第三字段的信息去抓取软件索引(dists)和软件包或源代码包(pool)的信息第三个字段 代表的是发行版,与URL路径中dists目录下的文件夹对应 ubuntudebian都有自己的发行版本,以debian为例,有下一代Debian正式发行版的代号为bookworm测试(testing)版发布日期尚未确定Debian11(bullseye)当前的稳定(stable)版Debian10(buster)当前的旧的稳定(oldstable)版Debian9(stretch)更旧的稳定(oldoldstable)版,现有长期支持Debian8(jessie)已存档版本,现有扩展长期支持Debian7(wheezy)被淘汰的稳定版Debian6。0(squeeze)被淘汰的稳定版DebianGNULinux5。0(lenny)被淘汰的稳定版DebianGNULinux4。0(etch)被淘汰的稳定版DebianGNULinux3。1(sarge)被淘汰的稳定版DebianGNULinux3。0(woody)被淘汰的稳定版DebianGNULinux2。2(potato)被淘汰的稳定版DebianGNULinux2。1(slink)被淘汰的稳定版DebianGNULinux2。0(hamm)被淘汰的稳定版 通过如下命令可查看debian版本,镜像源尽量与系统版本一致命令catetcosrelease结果PRETTYNAMEDebianGNULinux8(jessie)NAMEDebianGNULinuxVERSIONID8VERSION8(jessie)IDdebianHOMEURLhttp:www。debian。orgSUPPORTURLhttp:www。debian。orgsupportBUGREPORTURLhttps:bugs。debian。org后续字段 发行版的软件包,有多种,简单整理了一些main:官方支持。main组件包括了自由软件、可以被自由发布的软件和被Ubuntu团队完全支持的软件。其中包括了大多数流行的和稳定的开源软件,当您安装Ubuntu时默认安装的就是这些软件。nonfree:非DFSG兼容软件contrib:带有非自由依赖关系的DFSG兼容软件restricted:专供普遍用途,而且没有自由软件版权,但依然被Ubuntu团队支持的软件。universe:在universe组件中,你可以找到大多数开源软件,以及在开源版权下的软件,所有这些都是在公共源的基础上建立的。这些软件都是使用main中的组件编写的,它们能与main组件相安无事地共同运行,但它们没有安全升级的保障。multiverse:包含了不自由的软件,这意味着这些软件不满足Ubuntu相对于main组件的各种版权政策。当您使用这些软件时,如何调整各种权力以及遵重版权所有者的问题,就完全依靠您自己把握。二、命令 apt相关的命令有两个,一个是apt、一个是aptget。简单认为:aptaptget、aptcache和aptconfig中最常用命令选项的集合虽然apt与aptget有一些类似的命令选项,但它并不能完全向下兼容aptget命令。也就是说,可以用apt替换部分aptget系列命令,但不是全部。 本次主要讲解aptget命令,可通过aptgeth或者manaptget查看操作手册。aptgeth用法:aptget〔选项〕命令aptget〔选项〕installremove软件包1〔软件包2。。。〕aptget〔选项〕source软件包1〔软件包2。。。〕aptget可以从认证软件源下载软件包及相关信息,以便安装和升级软件包,或者用于移除软件包。在这些过程中,软件包依赖会被妥善处理。常用命令:update取回更新的软件包列表信息upgrade进行一次升级install安装新的软件包(注:软件包名称应当类似libc6而非libc6。deb)reinstall重新安装软件包(注:软件包名称应当类似libc6而非libc6。deb)remove卸载软件包purge卸载并清除软件包的配置autoremove卸载所有自动安装且不再使用的软件包distupgrade发行版升级,见aptget(8)dselectupgrade根据dselect的选择来进行升级builddep为源码包配置所需的编译依赖关系satisfy使系统满足依赖关系字符串clean删除所有已下载的包文件autoclean删除已下载的旧包文件check核对以确认系统的依赖关系的完整性source下载源码包文件download下载指定的二进制包到当前目录changelog下载指定软件包,并显示其变更日志(changelog)选项:h帮助文件。q输出到日志无进展指示qq不输出信息,错误除外d仅下载不安装或解压归档文件s不实际安装。模拟执行命令y在需要确认的场景中回应yesf尝试修正系统依赖损坏处m如果归档无法定位,尝试继续u同时显示更新软件包的列表b获取源码包后编译V显示详细的版本号c?阅读此配置文件o?设置自定的配置选项,如odir::cachetmp2。1查 通过查功能,我们可以知道自己安装了哪些包,想要安装的包是否在镜像源里存在,以及是否有合适的版本。已安装的包aptlistinstalled包位于哪些镜像源及对应版本aptcachemadison包名比较习惯使用这个aptcachepolicy包名aptshowversionsa包名查看包详情aptcacheshow包名查看损坏的依赖aptgetcheck2。2增安装 安装包主要使用aptgetinstall命令,不过该命令有很多参数可以使用aptgetyinstall包名〔{pkgversionnumbertargetrelease}〕forceyes 说明: 1。常用选项使用f,fixbreesk子选项来修复或者尝试纠正损坏的依赖项。使用m,ignoremissing,fixmissing子选项来忽略丢失的包。使用y,yes,assumeyes子选项自动选择是以提示。使用forceyes子选项在安装升级或者删除包时强制yes。这是一个危险操作,使用后如果apt做一些潜在危害系统的操作也不会有提示。只有特殊情况下才应该使用。该选项有可能破坏掉你的系统。使用reinstall子选项重新安装已安装的包。 2。指定版本通过指定具体版本和对应的镜像源安装想要的版本,样例如下aptgetinstallgnupgbusteraptgetinstallmonkeysphere0。433修复安装 如果安装包,报依赖错误,可以执行该语句aptgetfinstall2。3删删除包 带purge,不但会删除包,还会删除配置文件等aptgetremove包名purge清理无用包aptgetcleanaptgetautoclean2。4改更新源文件 更新源文件,并不会做任何安装升级操作。如果更新了etcaptsources。list或者打算开始使用aptget,都执行一下该命令aptgetupdate升级所有包 不太建议使用aptgetupgrade仅升级指定包 升级尽量用这个aptgetinstall包名onlyupgrade重新安装包 较少使用aptgetinstall包名reinstall三、总结 使用apt,可以使用下面的流程进行操作 1。更改镜像源文件,然后使用aptgetupdate命令 2。使用aptlistinstalled查看是否安装过,以及安装的版本信息不符合要求使用aptgetremove移除该包符合要求无需继续处理 3。使用aptcachemadison包名查看要安装的包信息 4。使用aptgetyinstall包名〔{pkgversionnumbertargetrelease}〕安装来自指定镜像源的指定版本 关于aptget的使用还有很多内容,大家可以通过manaptget查看。资料Linuxapt命令菜鸟教程Debian如何更换apt源快速搭建apt源新手初解apt的源〔附:各发行版信息和镜像目录的说明〕DebianSecurity源使用帮助dpkg命令详解及apt源配置Debian发行版本Debian查看系统版本的6种方式Debian包管理工具APTdebian9。6关于源main,contrib,nonfree的小知识aptaptget区别apt和aptget之间的区别【转】apt和aptget的区别aptget命令详解(超详细)【Linux】使用aptget查询并安装指定版本的软件aptgettjessiebackports如何在ubuntu上使用aptget命令最后 大家如果喜欢我的文章,可以关注我的公众号(程序员麻辣烫) 我的个人博客为:https:shidawuhen。github。io 往期文章回顾:设计模式招聘思考存储算法系列读书笔记小工具架构网络Go语言