Linux最常用的几个软件包管理命令
仅个人想法,会持续不间断更新和改进。
软件安装,应该算是Linux系统中最常见的操作之一,而软件包管理命令,也是我们在Linux系统中最常用的命令之一。
但凡系统安装好以后,第一件事情就是更新软件包,然后安装自己需要的软件包,这是一个很常见的操作。
Linux不同与Windows,直接下载一个exe文件双击就可以安装,Linux系统需要命令行来安装软件包,这是一个很大的区别。
而用于安装、更新、删除软件包,以及管理系统的软件包又由于不同的Linux发行版,由不同的方式,比如apt
、yum
、dpkg
、rpm
等。
软件管理利器 - Debian系的apt
对于最常用的命令而言,apt
可能排不上号,但是,在新安装的系统中,apt
命令绝对应该是排在前十位的存在,所以apt
是管理 Debian 系列系统中软件包的必备工具。
apt - command-line interface
apt是Advanced Package Tool的缩写,恰如字面描述高级包工具,apt
命令是用于 Debian 系列 Linux 发行版的强大工具,比如广为人知的Ubuntu,还有超赞桌面的Linux Mint。
apt
使得处理软件包,比如安装、更新和删除软件包的过程特别丝滑,也结合了较早的工具如 apt-get
和 apt-cache
的功能,提供了更友好的交互体验。
更新软件包列表
在安装或升级软件包之前,可以更新软件包列表,以确保拥有可用软件包的最新信息。
使用以下命令:
1 | $ sudo apt update |
此命令从配置的仓库中获取最新的软件包信息。
升级软件包
要将所有已安装的软件包升级到最新版本,可以使用:
1 | $ sudo apt upgrade |
要进行更全面的升级,包括删除旧软件包和安装新依赖项,请使用:
1 | $ sudo apt full-upgrade # 特别留意,这个会把老版本给删除 |
安装软件包
apt
命令使得软件包安装变得非常简单。要安装一个软件包,只需要使用:
1 | $ sudo apt install <软件包名称> |
例如,要安装文本编辑器瑞士军刀 vim
,您可以运行:
1 | $ sudo apt install vim |
删除软件包
卸载软件包同样简单。要删除一个软件包,使用:
1 | $ sudo apt remove <软件包名称> |
如果您想删除软件包及其配置文件,使用:
1 | $ sudo apt purge <软件包名称> |
搜索软件包
要查找某个软件包,可以使用关键词进行搜索:
1 | $ apt search <关键词> |
例如,要搜索与 “python” 相关的软件包,您可以运行:
1 | $ apt search python |
显示软件包信息
要查看特定软件包的详细信息,使用:
1 | $ apt show <软件包名称> |
此命令提供软件包描述、依赖关系和版本信息等详细信息。
清理
随着时间的推移,积累过时的软件包和缓存文件。要清理不必要的软件包,使用:
1 | $ sudo apt autoremove |
要清除本地存储库中获取的包文件,使用:
1 | $ sudo apt clean |
管理仓库
apt
获取软件包信息的仓库列表存储在 /etc/apt/sources.list
及 /etc/apt/sources.list.d/
目录下的文件中。
要添加新的仓库,可以直接编辑这些文件或使用 add-apt-repository
命令:
1 | $ sudo add-apt-repository ppa:<仓库名称> |
添加仓库后,需要更新软件包列表才能使用:
1 | $ sudo apt update |
红帽系的软件管理利器 - yum
.. note::
当年不肯嫁春风,无端却被秋风误。
贺铸《芳心苦·杨柳回塘》
我从ubuntu开始,后面短暂切换到Fedora,然后切换到CentOS,在CentOS断更之前,再无改变,所以最了解的还是yum命令了。
官方定义为:
yum - Yellowdog Updater Modified
说实话,yum跟yellowdog感觉半毛线关系都没有,那为什么有这个名字呢?
其实曾经有一个基于PowerPC架构的Linux发行版,名为Yellow Dog Linux。
而yum
的名字即来源于此,且为其改进版本。
yum
是一个强大的包管理工具,常用于 Red Hat 系的 Linux 发行版,如 CentOS、Fedora 和 RHEL。
它简化了安装、更新、删除和管理软件包的过程。
基本其他基于RPM的Linux发行版也使用这个命令。
其他列出了一些常用和不太常用的命令,基本足矣。
安装软件包
使用 yum
安装软件包的基本语法是:
1 | $ sudo yum install package_name |
例如,要安装 wget
软件包,可以使用以下命令:
1 | $ sudo yum install wget |
yum
会自动解决依赖关系,确保所有必需的软件包都被安装。
更新软件包
保持系统更新对于安全性和性能非常重要。要更新特定的软件包,使用:
1 | $ sudo yum update package_name |
例如,更新 wget
:
1 | $ sudo yum update wget |
要更新所有已安装的软件包,只需运行:
1 | $ sudo yum update |
删除软件包
如果需要删除一个软件包,语法如下:
1 | $ sudo yum remove package_name |
例如,删除 wget
:
1 | $ sudo yum remove wget |
yum
将处理指定软件包的删除,并删除不再需要的依赖项。
检查可用更新
要检查是否有可用更新而不实际应用它们,使用:
1 | $ yum check-update |
此命令会列出所有有可用更新的软件包,帮助您决定哪些需要更新。
列出已安装的软件包
要列出系统上所有已安装的软件包,运行:
1 | $ yum list installed |
此命令提供了当前已安装的所有软件包的详细列表。
搜索软件包
如果不确定软件包的确切名称,可以使用:
1 | $ yum search keyword |
例如,搜索与 wget
相关的软件包:
1 | $ yum search wget |
此命令会返回与关键字匹配的软件包列表。
显示软件包信息
要查看特定软件包的详细信息,使用:
1 | $ yum info package_name |
例如,获取 wget
的信息:
1 | $ yum info wget |
此命令提供软件包的详细信息,如版本、发布、大小和简短描述。
清理 yum
缓存
随着时间推移,yum
的缓存会增长并占用磁盘空间。要清理缓存,使用:
1 | $ sudo yum clean all |
此命令会删除缓存数据,释放空间,并确保 yum
获取最新的软件包信息。
管理仓库
yum
使用仓库作为软件包的来源。要列出所有配置的仓库,运行:
1 | $ yum repolist |
启用特定仓库:
1 | $ sudo yum-config-manager --enable repository_name |
禁用特定仓库:
1 | $ sudo yum-config-manager --disable repository_name |
高级用法
安装特定版本的软件包
如果需要安装特定版本的软件包,使用:
1 | $ sudo yum install package_name-version |
例如,安装 wget
的 1.20
版本:
1 | $ sudo yum install wget-1.20 |
降级软件包
要将软件包降级到以前的版本,使用:
1 | $ sudo yum downgrade package_name |
组安装
yum
允许您安装为特定目的而设计的一组软件包。例如,安装开发工具组,使用:
1 | $ sudo yum groupinstall "Development Tools" |
稍显底层的红帽系软件管理工具 - rpm
如果说yum是高大上的软件安装管理工具,那么rpm就是低调奢华的底层工具。
简洁但略显繁琐。
官方定义为:
rpm - RPM Package Manager
其实rpm也可以看作是Redhat Package Manager的缩写,因为rpm也是基本用于Red Hat 系的 Linux 发行版,如 CentOS、Fedora 和 RHEL。
这个命令命令主要用于安装、卸载、升级、查询和验证软件包。所以重点来了,需要软件包。
安装软件包
要使用 RPM 安装软件包,基本语法是:
1 | $ sudo rpm -ivh package_name.rpm |
比如,安装 example.rpm
软件包:
1 | $ sudo rpm -ivh example.rpm |
其中:
-i
表示安装(install)-v
表示详细模式(verbose),显示安装过程的详细信息-h
表示显示进度条(hash),可视化安装进度
升级软件包
要升级已安装的软件包,使用:
1 | $ sudo rpm -Uvh package_name.rpm |
比如,升级 example.rpm
:
1 | $ sudo rpm -Uvh example.rpm |
其中 -U
表示升级(upgrade),如果软件包未安装则进行安装。
删除软件包
要删除已安装的软件包,语法如下:
1 | $ sudo rpm -e package_name |
比如,删除 example
软件包:
1 | $ sudo rpm -e example |
其中 -e
表示删除(erase)。
查询软件包
查询已安装的软件包
要查询系统上已安装的软件包,使用:
1 | rpm -qa |
其中 -q
表示查询(query),-a
表示所有(all)。
查询特定软件包信息
要查看特定软件包的信息,使用:
1 | $ rpm -qi package_name |
比如,查询 example
软件包的信息:
1 | $ rpm -qi example |
其中 -i
表示信息(info)。
查询文件属于哪个软件包
要查询系统中文件属于哪个软件包,使用:
1 | $ rpm -qf /path/to/file |
比如,查询 /usr/bin/example
文件属于哪个软件包:
1 | $ rpm -qf /usr/bin/example |
其中 -f
表示文件(file)。
验证软件包
要验证已安装的软件包,使用:
1 | $ rpm -V package_name |
比如,验证 example
软件包:
1 | $ rpm -V example |
其中 -V
表示验证(verify)。
显示软件包内容
要显示软件包中的文件列表,使用:
1 | $ rpm -ql package_name |
比如,显示 example
软件包的文件列表:
1 | $ rpm -ql example |
其中 -l
表示列表(list)。
检查软件包依赖
要检查软件包的依赖关系,使用:
1 | $ rpm -qpR package_name.rpm |
比如,检查 example.rpm
软件包的依赖关系:
1 | $ rpm -qpR example.rpm |