Ubuntu和Centos中安装软件的命令

Centos和Ubuntu虽然都是Linux系统,但它们的软件包管理工具不同,因此安装软件的命令也有所区别

核心区别如下:

  • Centos:使用yum或dnf命令,包格式为.rpm
  • Ubuntu:使用apt命令,包格式为.deb

包格式就是Linux系统中软件安装包的"文件类型"或"压缩包格式",它决定了软件该如何打包、分发以及被系统识别和安装。

.exe是在Windows中,从"文件类型"上说它是可执行文件,它包含了能让CPU直接执行的机器码。任何.exe文件双击后"运行"是它的本质属性。从"功能"上说,.exe文件可以是一个游戏、一个文本编辑器,也可以是一个"安装引导程序"(我们常说的安装包)。Windows为了方便用户而做的一个设计选择:合并了"安装工具"和"运行程序",运行一个.exe文件实现两种截然不同的逻辑(应用程序如notepad.ext、安装引导程序如setup.exe)

在Linux中,.rpm/.edb是软件包文件,本质上是一种压缩包(类似于.zip),里面包含了软件的文件和安装指令,它们不能被运行,只能被包管理工具(如rmp)去"解包"和"安装"

Linux 的设计哲学是"一个程序只做一件事,并做好它"。所以角色分工极其明确:

文件类型 能不能直接"运行"? 它的作用是什么? 谁来处理它?
应用程序 (如 /usr/bin/vim) 。双击或输入命令就能用。 提供功能(编辑文字、浏览网页)。 用户直接使用。
软件包 (如 vim.rpm) 不能。双击会报错。 提供"安装应用程序所需的材料"。 包管理器 (yum/apt) 负责处理。

简单总结:

  • .exe :是一个可执行程序 的通用后缀。它既可以是一个"应用程序" (如 notepad.exe),也可以是一个"安装引导程序" (如 setup.exe)。

  • .rpm / .deb :是软件包 的后缀。它们不是可执行程序,而是**"安装材料包"**。它们本身不能运行,必须由系统的包管理器来解包和安装。

1.yum

yum是CentOS7及更早版本中的核心包管理工具,它会自动处理软件依赖关系,让你从"手动找包、解决依赖"的繁琐工作中解放出来。

如果你是CentOS8或更高版本,yum命令只是一个指向dnf的连接,作为yum的下一代版本,dnf提供了更好的性能和依赖解析能力,虽然你仍可以输入yum,但实际指向的是dnf的功能

yum的语法格式:

bash 复制代码
yum [选项] [命令] [软件包名称...]

常用:

bash 复制代码
yum [-y] [install | remove | rearch] 软件名称
bash 复制代码
[root@master /]# wget
-bash: /usr/bin/wget: No such file or directory
  • [root@master /]#:提示符,意思是root用户在名为master的服务器上,当前位于根目录(/)。

  • wget:你输入的命令,希望执行wget程序。

  • -bash: /usr/bin/wget: No such file or directoryBash解释器 (命令行程序)的报错。它找遍了系统环境变量PATH中定义的所有目录(如/usr/bin),发现wget这个程序根本不存在。

bash 复制代码
[root@master /]# yum search wget
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
======================================================================================= N/S matched: wget ========================================================================================
wget.x86_64 : A utility for retrieving files using the HTTP or FTP protocols

  Name and summary matches only, use "search all" for everything.
  • yum search wget:你使用yum在软件仓库中搜索包含wget关键词的软件包。

  • Loaded plugins: fastestmirroryum加载了一个插件,用于选择最快的镜像源,是正常信息。

  • Loading mirror speeds from cached hostfileyum正在读取缓存的镜像站速度信息。

  • N/S matched: wgetN/S代表Name/Summary (名称和简介都匹配)。yum找到了匹配的结果。

  • wget.x86_64 :这是软件包的完整名称

    • wget:软件名。

    • x86_64:软件架构,适用于64位的Intel/AMD处理器。

  • : A utility for retrieving files using the HTTP or FTP protocols:软件包简介,"一个用于使用HTTP或FTP协议获取文件的工具"。

  • 最后一行:这是yum的一个提示:刚才只搜索了软件包的"名称"和"简介"。如果想搜索更详细的描述(如软件包的说明文档),可以使用yum search all wget

bash 复制代码
[root@master /]# yum install wget
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
c7-media                                                                                                                                                                   | 3.6 kB  00:00:00     
Resolving Dependencies
--> Running transaction check
---> Package wget.x86_64 0:1.14-18.el7_6.1 will be installed
--> Finished Dependency Resolution

Dependencies Resolved

==================================================================================================================================================================================================
 Package                                   Arch                                        Version                                                Repository                                     Size
==================================================================================================================================================================================================
Installing:
 wget                                      x86_64                                      1.14-18.el7_6.1                                        c7-media                                      547 k

Transaction Summary
==================================================================================================================================================================================================
Install  1 Package

Total download size: 547 k
Installed size: 2.0 M
Is this ok [y/d/N]: 

yum 询问 Is this ok [y/d/N]: 时,它提供了三种选项,分别代表了不同的确认行为。

核心回答

  • y (yes) :确认执行。yum 会按照计划开始下载和安装。

  • d (download only) :仅下载。yum 只会把软件包下载到本地缓存中(通常是 /var/cache/yum/),不进行安装。下载完成后就退出。

  • N (No) :取消操作。yum 会放弃本次安装任务,不做任何更改,并返回到命令提示符。

注意提示符 [y/d/N] 中,N 是大写的 。这在 Linux 提示中是一个标准惯例:大写字母表示默认选项

  • 如果你直接按 回车键 (Enter) 而不输入任何字母,系统会默认选择 N,即取消本次操作。

  • 这是为了安全考虑,防止你因误触回车键而执行了不想执行的操作。

CTRL C将运行过程停止(中断当前正在运行的命令,对系统没有影响,因为此时yum还没有开始下载和安装任何东西,它只是生成了一个"安装计划"并正在等待你的确认,CTRL C只是让它放弃这个计划),来看看-y选项的作用

yum -y install wget 的作用:告诉yum,自动对一切问题回到yes,静默地完成安装。

-y这个选项代表"yes",会自动回答所有yum可能提出的交互式问题

bash 复制代码
[root@master /]# yum -y install wget
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
Resolving Dependencies
--> Running transaction check
---> Package wget.x86_64 0:1.14-18.el7_6.1 will be installed
--> Finished Dependency Resolution

Dependencies Resolved

==================================================================================================================================================================================================
 Package                                   Arch                                        Version                                                Repository                                     Size
==================================================================================================================================================================================================
Installing:
 wget                                      x86_64                                      1.14-18.el7_6.1                                        c7-media                                      547 k

Transaction Summary
==================================================================================================================================================================================================
Install  1 Package

Total download size: 547 k
Installed size: 2.0 M
Downloading packages:
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  Installing : wget-1.14-18.el7_6.1.x86_64                                                                                                                                                    1/1 
  Verifying  : wget-1.14-18.el7_6.1.x86_64                                                                                                                                                    1/1 

Installed:
  wget.x86_64 0:1.14-18.el7_6.1                                                                                                                                                                   

Complete!
[root@master /]# wget
wget: missing URL
Usage: wget [OPTION]... [URL]...

Try `wget --help' for more options.
[root@master /]# which wget
/usr/bin/wget

📋 yum 命令速查表

这是 yum 最常用、最核心的命令,可以保存下来随时查阅:

功能类别 命令示例 (yum 开头) 说明
更新软件源 sudo yum update 推荐首先执行,刷新仓库信息,并将已安装的软件包升级到最新版。
安装软件 sudo yum install <软件名> 最常用的安装方式,会自动解决依赖。
sudo yum install -y <软件名> -y 参数跳过"确认"步骤,直接安装。
sudo yum localinstall <本地包.rpm> 安装从网上下载的 .rpm 文件,并用网络仓库解决其依赖。
搜索查询 yum search <关键词> 在软件名称、描述中搜索关键词。
yum info <软件名> 显示软件的详细信息,如版本、大小、简介等。
yum list installed 列出系统上所有已安装的软件包。
yum provides <文件路径/命令> 反向查找,当你知道某个文件或命令但不知道包名时使用。
卸载软件 sudo yum remove <软件名> 卸载软件,但依赖项会保留。
sudo yum autoremove 清理在 remove 后变得不再需要的"孤儿"依赖包。
维护与清理 sudo yum clean all 常用,清除所有已下载的软件包和元数据缓存,能解决很多奇怪的安装问题,并释放磁盘空间。
yum history 查看 yum 所有操作的记录,可用于回滚。
包组管理 yum group list 列出可用的软件包组(如 "Development Tools")。
sudo yum group install "<组名>" 安装整个包组。

2.apt

apt命令是 Ubuntu 和 Debian 系统中的核心包管理工具,相当于 CentOS 中的 yum

会自动处理软件的依赖关系,让你能轻松地安装、更新和卸载软件。

📋 apt 命令速查表

这是 apt 最常用、最核心的命令,可以保存下来随时查阅:

功能类别 命令示例 (sudo apt 开头) 说明
更新软件源 sudo apt update 极度重要,每次安装前建议先执行。从互联网仓库刷新软件包列表,让系统知道有哪些软件可以安装或更新。
升级已装软件 sudo apt upgrade 将系统中所有已安装的软件升级到最新版本。
sudo apt full-upgrade 更智能的升级,如果升级某个包需要删除其他冲突的包,它会自动处理。
安装软件 sudo apt install <软件名> 最常用的安装方式,会自动解决依赖。
sudo apt install -y <软件名> -y 参数跳过"确认"步骤,直接安装。
sudo apt install ./<本地包.deb> 安装从网上下载的 .deb 文件,并用网络仓库解决其依赖。
搜索查询 apt search <关键词> 在软件名称和描述中搜索关键词。
apt show <软件名> 显示软件的详细信息,如版本、大小、依赖、简介等。
apt list --installed 列出系统上所有已安装的软件包。
apt list --upgradable 列出所有可以升级的软件包。
卸载软件 sudo apt remove <软件名> 卸载软件,但会保留配置文件。
sudo apt purge <软件名> 彻底卸载,连配置文件一起删除。
sudo apt autoremove 常用,自动清理那些因依赖关系被安装、但现在不再被任何软件需要的孤立的包。

3.yum与wget的区别

它们的核心区别是:wget 是"下载工具",而 yum 是"包管理工具"

打个比方:

  • wget 就像你浏览器里的 "另存为..." 功能。它只管把网上的文件(比如一个网页、一张图片、一个软件包)下载到你的电脑硬盘里,之后的事它就不管了。

  • yum 则像一个 "智能应用商店" 。你告诉它要装什么软件,它会自动去网上的仓库把软件包和相关依赖都下载下来,然后自动帮你安装好,甚至以后还能帮你更新和卸载。

下面我们来详细拆解一下。

核心区别对比表

特性 wget yum
本质 一个非交互式网络下载器 一个包管理工具
主要功能 从 HTTP、HTTPS、FTP 协议下载文件 自动安装、升级、卸载软件,并处理依赖关系
处理依赖 不会。只下载你指定的那个文件 。自动下载并安装所有依赖
安装软件 不会 。下载完后,你需要手动安装 (如 rpm -ivh) 。下载后自动安装
软件来源 需要你提供精确的 URL 地址 连接到配置好的 软件仓库 (repository)
常用场景 下载网页、图片、压缩包、源码、公共数据集 安装、更新或卸载系统软件,如 nginx, python3, vim

什么时候用哪个?

  • yum 的场景 (90% 的情况)

    • 你想安装、更新或卸载一个标准的系统软件。

    • 你希望软件能被系统统一管理,方便后续维护。

    • 这是 CentOS 上安装软件的首选和标准方式

  • wget 的场景 (特殊需求)

    • 你想下载一个 yum 仓库里没有的第三方 .rpm 包,然后手动用 rpm 安装。

    • 你想下载一个软件的源码压缩包 (.tar.gz),准备手动编译安装 (执行 ./configure && make && make install)。

    • 你想从网上备份一个网页或文件:wget https://www.example.com/index.html

    • 你需要下载一个很大的文件,并且希望支持断点续传 (wget -c)。

    • 在写 Shell 脚本时,需要从某个 URL 获取内容或文件。

相关推荐
A小辣椒1 天前
TShark:Wireshark CLI 功能
linux
A小辣椒1 天前
TShark:基础知识
linux
AlfredZhao2 天前
OCI 明明分配了 200G 系统盘,为什么 df 只看到 30G?
linux·oci
AlfredZhao2 天前
vi 删除指定范围的行,不用再反复按 dd
linux·vi
用户9718356334662 天前
银河麒麟 KY10 申威(SW64) 安装 nginx-1.16.1-2.p01.ky10.sw_64.rpm 详细步骤
linux
猪脚踏浪2 天前
linux 拷贝文件或目录到指定的位置
linux
摇滚侠3 天前
Linux CentOS7 rpm 安装 MySQL 5.7
linux·运维·mysql
bush43 天前
嵌入式linux学习记录十四、术语
linux·嵌入式
载数而行5203 天前
Linux 11 动态监控指令top
linux
不会C语言的男孩3 天前
Linux 系统编程 · 第 8 章:进程基础
linux·c语言