探索Linux软件包管理的进化之路:从源码编译到Snap包的飞跃
目录
- 引言
- 一、Linux软件包管理的发展过程
- 1、从源代码安装软件
- 2、使用软件包安装软件
- 3、高级软件包管理工具
- 二、Deb软件包管理
- 1、查看
- 2、安装
- 3、卸载
- 三、 使用APT工具管理软件包
- 1、基本功能
- 2、解决依赖关系
- 3、软件包更新
- 4、查询软件包
- 5、安装软件包
- 6、卸载软件包
- 7、升级软件包
- 8、新立得软件包管理器(Synaptic Package Manager)
- 四、安装和管理 Snap包
- 1、简介
- 2、特点
- ①搜索要安装的Snap包
- ②查看Snap包的详细信息
- ③搜索要安装的Snap包
- ④列出已经安装的Snap包
- ⑤更新已安装的Snap包
- ⑥还原已安装的Snap包
- ⑦列出所有可用的版本
- ⑧启用或禁用Snap包
- ⑨卸载Snap包
- 总结
引言
在Linux操作系统中,软件包管理是一项至关重要的功能,它直接关系到用户能否高效、安全地安装、更新和卸载软件。随着Linux的发展,软件包管理也经历了从简单到复杂、从手动到自动的演变过程。从早期的从源代码编译安装,到后来的RPM和Deb等软件包格式的出现,再到高级软件包管理工具如Yum、APT以及Snap的兴起,Linux软件包管理逐渐变得更加便捷、高效和智能化。本文将详细介绍Linux软件包管理的发展过程,重点探讨Deb软件包管理和APT工具的使用,以及新兴的Snap包管理方式的特点和操作方法,旨在帮助读者更好地理解和使用Linux软件包管理工具。
一、Linux软件包管理的发展过程
1、从源代码安装软件
早期Linux主要使用源代码包发布软件。
直接将源代码编译成二进制文件,并对系统进行相关配置。
过程概述:
下载源代码
解压源代码
配置
编译
安装
2、使用软件包安装软件
软件包将应用程序的二进制文件、配置文档和帮助文档等合并打包在一个文件中。
主流的软件包格式有两种:RPM和Deb。
二进制文件:经过编译的程序代码,可以直接运行。
配置文档:这些文件帮助我们设置软件的行为和参数。
帮助文档:提供使用说明和指南,帮助用户了解如何使用这个软件
3、高级软件包管理工具
Yum:基于RPM包的软件包管理器。
APT:Debian及其派生发行版(如Ubuntu)的软件包管理器。
Snap:一种全新的软件包安装管理方式,可以不依赖于第三方系统功能库独立包装,代表未来软件包安装的发展方向。
二、Deb软件包管理
1、查看
使用选项-l列出软件包的简要信息:
dpkg -l 软件包名
使用选项-s来查看软件包状态的详细信息:
dpkg -s 软件包名
使用选项-S获知已安装的软件包拥有哪些文件:
dpkg -S 软件包名
列出所有已安装的软件包:
dpkg -l
2、安装
所有的软件包安装之前必须保证所依赖的库和软件已经安装到系统上。
首先要获取Deb软件包文件,然后使用选项-i安装Deb软件包
sudo dpkg -i 软件包文件名
所有的软件包安装之前必须保证所依赖的库和软件已经安装到系统上,一定要清楚依赖关系。
3、卸载
使用选项-r卸载软件包同时会保留该软件的配置信息:
sudo dpkg -r 软件包名
要将配置信息一并删除,应使用选项-P:
sudo dpkg -P 软件包名
使用dpkg工具卸载软件包不会自动解决依赖性问题。
三、 使用APT工具管理软件包
1、基本功能
2、解决依赖关系
多数情况下APT会安装最新的软件包,被安装的软件包所依赖的其他软件包也会安装。
3、软件包更新
APT可以智能地从软件源下载最新版本的软件并且安装。
APT还支持Ubuntu(或Debian)从一个发布版本升级到新的发布版本。
4、查询软件包
apt list 列出软件包
apt search 软件包名 查找使用参数定义的软件包并列出该软件包的相关信息。
apt show 软件包名 查看指定名称的软件包的详细信息。
apt depends 软件包名 查看软件包所依赖的软件包。
apt rdepends 软件包名 查看软件包被哪些软件包所依赖:
apt policy 软件包名 显示软件包的安装状态和版本信息。
5、安装软件包
在每次安装和更新软件包之前先执行apt update更新系统中apt缓存中的软件包信息。
执行apt install命令安装指定名称的软件包。
安装过程中APT为用户提供了大量信息,自动分析并解决了软件包依赖问题。
6、卸载软件包
apt remove
卸载一个已安装的软件包,但会保留该软件包的配置文档。
要同时删除配置文件
,则要执行
apt purge
更彻底的删除,可执行以下命令删除与该软件包及其所依赖的、不再使用的软件包 。
sudo apt-get autoremove 软件包名
7、升级软件包
apt upgrade 升级本地已安装的所有软件包。
apt dist-upgrade 识别出依赖关系改变的情形并作出相应处理,会尝试升级最重要的包。
apt upgrade -u 让APT显示完整的可更新软件包列表。
apt upgrade -s 使用选项-s模拟升级软件包。
apt install 软件包名 --reinstall 只想对某一具体的软件包进行升级
8、新立得软件包管理器(Synaptic Package Manager)
APT管理工具的图形化前端。
可以在图形界面中通过鼠标操作就能安装、删除、配置、升级软件包,对软件包列表进行浏览、排序、搜索以及管理软件仓库,甚至升级整个系统。
新立得软件包管理器相当于终端中运行的apt命令。
通过以下命令进行安装:
sudo apt-get install synaptic
使用命令打开:
sudo synaptic
四、安装和管理 Snap包
1、简介
Snap是Canonical提出的一个打包概念。
Snap的安装包扩展名是.snap,类似于一个容器,完全独立于系统。
Snap软件包一般安装在/snap目录下。
每个Snap包都运行在一个由AppArmor和Seccomp策略构建的沙箱环境中,实现了各个应用程序之间的相互隔离。
2、特点
单个Snap 包可以内嵌多个不同来源的软件,从而提供一个能够快速启动和运行的解决方案。
Snap包能自动地进行事务化更新。
每个Snap包会安装到一个新的只读squashfs文件系统中。
Snap还可以同时安装多个版本的软件。
Snap内建与Linux发行版不兼容的库,做到“一次打包,到处使用”。
使用Snap包带来的问题是会占用更多的磁盘空间。
①搜索要安装的Snap包
snap find <要搜索的文本>
②查看Snap包的详细信息
snap info 包名
③搜索要安装的Snap包
snap install 包名
④列出已经安装的Snap包
snap list
⑤更新已安装的Snap包
snap refresh 包名
⑥还原已安装的Snap包
snap rtevert 包名
⑦列出所有可用的版本
snap list --all
⑧启用或禁用Snap包
sudo snap disable 包名 sudo snap enable 包名
⑨卸载Snap包
snap remove 包名
总结
通过对Linux软件包管理的发展过程、Deb软件包管理、APT工具以及Snap包管理的深入探讨,我们可以发现,Linux软件包管理已经变得非常成熟和多样化。从早期的从源代码编译安装,到现在的一键式安装和更新,Linux软件包管理不仅提高了用户的操作效率,还增强了系统的安全性和稳定性。Deb软件包管理和APT工具作为Debian及其派生发行版(如Ubuntu)的核心组件,为用户提供了强大的软件包管理功能,而Snap包管理作为一种全新的软件包安装方式,更是以其独立性、安全性和易用性赢得了广泛的关注和认可。未来,随着Linux操作系统的不断发展和完善,我们可以期待更加高效、智能和安全的软件包管理工具的出现,为Linux用户带来更加便捷和丰富的使用体验。