Linux软件包管理
一 Linux主要的发行版及软件包管理标准
在之前,我们讲到过Linux的发行版本,主要的版本有四个:Red Hat,CentOS,Debian,Ubuntu。但目前,CentOS发展路线已经改变,不再是Red Hat的克隆版本,Fedora则成为了Red Hat支持的开源社区项目。
不同的系统,提供了不同的软件包管理标准,主要有两类:rpm
和deb
。我们使用Ubuntu,是从Debian
继承来的deb
标准。
在vscode的下载界面,我们可以看到两个版本的软件包,我们下载时,选择.deb
版本。
无论
rpm
还是deb
,在他们相关联的系统中,都为我们提供了“本地包管理”和“远程包管理”两种工具。
二 本地包管理工具dpkg
当我们下载完成.deb
包后,并不能像windows
上一样,直接双击安装。我们需要使用dpkg
命令进行安装。下载完的安装包如下:
我们使用如下命令进行安装:
sudo dpkg -i ./code_1.82.1-1694163687_amd64.deb
dpkg
有很多选项,可以实现不同的功能,具体如下表
序号 | 选项 | 功能描述 |
---|---|---|
0 |
-i (--install ) |
安装软件包 |
1 |
-l (--list ) |
列出所有已安装的软件包 |
2 |
-L (--listfiles ) |
列出已安装软件包的文件列表,这对于查找软件包的文件位置很有帮助 |
3 |
-c (--contents ) |
列出deb 包里面的文件.不是安装后的
|
4 |
-I (--info ) |
查看deb 软件包文件的信息,包括版本号、描述和依赖关系等 |
5 |
-s (--status ) |
检查已安装软件包的状态,包括是否已安装和软件包的相关信息 |
6 |
-S (--search ) |
搜索系统中哪些软件包安装了指定的文件 |
7 | -r |
卸载安装包,将删除软件包的文件和配置 |
软件包的安装,上面已经做过。其他命令执行情况如下:
-
列出已经安装的软件包
dpkg -l code
-
列出一个或多个已经安装的软件包所安装的文件
dpkg -L code
-
列出
deb
包里面的文件dpkg -e ./code_1.82.1-1694163687_amd64.deb
-
查看
deb
软件包文件的信息dpkg -I ./code_1.82.1-1694163687_amd64.deb
-
检查已安装软件包的状态
dpkg -s code
-
搜索系统中哪些软件包安装了指定的文件
dpkg -S /usr/share/appdata/code.appdata.xml
-
卸载安装包
sudo dpkg -r code
三 远程包管理工具apt
apt
是对deb
格式软件包的管理工具,用于直接从远程服务器下载和安装deb
格式的软件包;可以自动安装软件的依赖包。
其命令的基本格式如下:
apt [选项] [命令] [软件包名]
apt
的常用选项,如下表
序号 | 选项 | 功能描述 |
---|---|---|
1 | -h |
查看帮助信息 |
2 | -y |
当命令执行过程中,有询问yes/no 时,自动回答yes
|
3 | -q |
安静模式执行,就是不会有一大堆东西输出在屏幕上 |
apt
的常用命令,如下表
序号 | 命令 | 功能描述 |
---|---|---|
1 | update |
更新本地软件包列表,从远程软件源获取最新的软件信息 |
2 | install |
安装一个或多个软件包,如果已经安装了旧版本,则会升级到最新版本 |
3 | remove |
移除一个或多个已安装的软件包,但保留其配置文件 |
4 | purge |
完全移除一个或多个已安装的软件包,包括其配置文件 |
5 | upgrade |
升级所有可升级的软件包,不会删除任何已安装的软件包(可能会造成某些本地安装的既有软件无法使用) |
6 | full-upgrade |
升级所有可升级的软件包,并且在必要时删除一些已安装的软件包或安装一些新的软件包,以解决依赖关系 |
7 | search |
搜索一个或多个关键字,在本地软件包列表中查找匹配的软件包 |
8 | show |
显示一个或多个软件包的详细信息,如版本号、大小、依赖关系、描述等 |
9 | list |
列出符合条件的软件包及其状态。这个命令可以用来查看已经安装、可升级、可用等不同状态的软件包 |
10 | autoremove |
自动移除不再需要的依赖和库文件 |
-
更新本地软件包列表
几乎在每次安装前,我们都会去执行本地软件包列表的更新。这样可以获取服务器上的最新软件包版本等信息。sudo apt update
-
安装软件
当我们执行某条指令时,如果未安装相应的软件包,系统会给我们提醒。比如查看本机ip
.ifconfig
我们可以利用
install
命令来进行安装,安装过程中系统会让你进行确认,可以使用选项-y
自动回答yes
。sudo apt install net-tools -y
-
通过关键字搜索软件包
sudo apt search '^vim$'
-
查看软件包的详细信息
apt show vim
- 列出符合状态的软件
基本语法为:
可供使用的状态包括:apt list --<status>
installed
(已经安装的)、upgradeable
(可升级的)、hold
(需保持不升级的)、not-installed
(未被安装的)
列出已经安装的,具有vim
关键字的软件包apt list --installed | grep 'vim'
-
卸载软件
sudo apt remove net-tools sudo apt remove net-tools -y
-
移除没有用的包
sudo apt autoremove -y
-
彻底卸载软件包
sudo apt purge net-tools -y sudo apt remove --purge net-tools -y