原理:
首先认识一个`/etc/apt/sources.list `文件:它是 APT(Advanced Package Tool)软件包管理系统的配置文件,用于指定软件包的下载源(通过不同途径下载东西),系统会根据此文件中定义的源来查找、下载、安装、更新软件包。选择不同的源会有不同的下载速度。为了获得更快的下载速度,所以我们需要进行换源操作。
换源
本质:以管理员权限,将源复制粘贴到`/etc/apt/sources.list`文件,选择最合适的源,将其他源注释掉,保存修改后的文件,使用命令更新源。操作
1. 以管理员身份进入`/etc/apt/sources.list`文件sudo vim /etc/apt/sources.list
2.敲击回车后会进入下面的页面。
3. 将下面的源复制粘贴进去。并选择合适的源(#是被注释掉的)
#其他apt源
#此处,仅添加中科达和阿里的,其他注释掉
#中科大
deb http://mirrors.ustc.edu.cn/kali kali-rolling main non-free contrib
deb-src http://mirrors.ustc.edu.cn/kali kali-rolling main non-free contrib
#阿里云
deb http://mirrors.aliyun.com/kali kali-rolling main non-free contrib
deb-src http://mirrors.aliyun.com/kali kali-rolling main non-free contrib
#清华大学
#deb http://mirrors.tuna.tsinghua.edu.cn/kali kali-rolling main contrib non-free
#deb-src https://mirrors.tuna.tsinghua.edu.cn/kali kali-rolling main contrib non-free
#浙大
#deb http://mirrors.zju.edu.cn/kali kali-rolling main contrib non-free
#deb-src http://mirrors.zju.edu.cn/kali kali-rolling main contrib non-free
#东软大学
#deb http://mirrors.neusoft.edu.cn/kali kali-rolling/main non-free contribp.kali.org/kali kali-rolling main non-free contrib
#重庆大学
#deb http://http.kali.org/kali kali-rolling main non-free contrib
#deb-src http://http.kali.org/kali kali-rolling main non-free contrib
4. 按 ESC, 输入 :wq
保存配置并退出(或 :wq!
,强制保存)
5. 执行命令apt-get update
:用于更新软件包列表
- 它会连接到系统中配置的软件源服务器(如 Ubuntu 官方软件源、第三方软件源等),并下载最新的软件包列表信息。这些信息包括软件包的名称、版本、依赖关系等。
- 为后续的软件包安装(如
apt-get install
)和更新(如apt-get upgrade
和apt-get dist-upgrade
)操作提供准确的软件包信息。 - 如果没有先运行
apt-get update
,当你尝试安装或更新软件包时,系统可能会基于旧的软件包列表信息进行操作,可能会导致无法获取最新版本的软件包或者出现依赖关系问题。
其他命令
apt-get upgrade
:
- 它只对系统中已安装的软件包进行更新。例如,如果你的系统中已经安装了软件包 A、B、C,且这些软件包有新的版本可供更新,apt-get upgrade 会将它们升级到最新版本。但是,它不会移除或安装新的软件包。它的目的是在保持系统软件包现状的基础上,对现有软件进行修补和功能增强。
假设你安装了一个图形界面程序,它依赖于一些库文件。如果这些库文件有更新,apt-get upgrade 会更新这些库文件,但不会改变程序本身的功能范围(只要程序没有新的版本发布)。 - 在处理软件包依赖关系方面相对保守。它不会自动处理依赖关系导致的软件包安装或移除。如果有软件包因为依赖关系不能被更新,它会提示用户,但不会自行更改系统中的软件包配置。
比如,软件包 X 是软件包 Y 的依赖,而软件包 Y 要更新需要软件包 X 的新版本,但软件包 X 的新版本可能会破坏系统中其他软件的依赖关系。此时,apt-get upgrade 可能不会更新软件包 Y,以避免破坏系统的稳定性。 - 适合在日常使用中,对系统进行小规模的更新,比如定期更新浏览器、办公软件等应用程序以及它们的依赖库,同时又不想改变系统中软件包的整体结构。
apt-get dist - upgrade
:
- 除了能像 apt-get upgrade 一样更新已安装的软件包外,它还可以移除那些不再需要的软件包,同时安装新的软件包以满足依赖关系。这通常用于系统版本升级,比如从 Ubuntu 20.04 升级到 Ubuntu 22.04。
例如,当系统架构发生改变,某些软件包变得不再兼容或者不再需要时,apt-get dist - upgrade 会移除这些软件包。同时,如果新的软件包版本依赖于一些之前未安装的组件,它会安装这些新组件。 - 更智能地处理依赖关系。它会自动计算出需要添加或移除的软件包,以确保系统中所有软件包的依赖关系得到满足。它会根据软件包配置文件和依赖关系树来做出决策。
例如,如果软件包 A 的新版本需要软件包 B 的新版本,而软件包 B 的新版本又与系统中已有的软件包 C 冲突,apt-get dist - upgrade 可能会移除软件包 C(如果软件包 C 不再需要或者有替代方案)以完成软件包 A 和 B 的更新。 - 更适用于系统升级或者重大更新场景。当系统发布新的更新版本,可能涉及到软件包的架构调整、依赖关系大规模更新等情况时,使用它来全面更新系统。
apt-get clean
:
- 安装或更新完成后,会遗留一些软件的安装包,会占用部分硬盘空间,可使用该命令来对其进行清理。