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 获取内容或文件。

相关推荐
程序猿编码1 小时前
Linux 高负载场景下 Web 服务访问日志极速定位工具实现解析(C/C++代码实现)
linux·服务器·c语言·前端·c++
CC城子1 小时前
嵌入式Linux宕机问题GDB调试(二)
linux·gdb
lifewange1 小时前
VMware如何安装并配置CentOs镜像
linux·运维·centos
j_xxx404_1 小时前
【Linux进程间通信】硬核剖析:消息队列、信号量、内核IPC资源统一管理与mmap加餐
linux·运维·开发语言·c++·人工智能·ai
keyipatience1 小时前
14.Linux进程状态:从运行到僵尸的奥秘
linux
SilentSamsara2 小时前
生成器完全指南:`yield` 与惰性求值的工程价值
linux·开发语言·python·算法·机器学习·青少年编程
不怕犯错,就怕不做13 小时前
RK3562的CPU如何降频及关闭硬件编解码
linux·驱动开发·嵌入式硬件
CoderMeijun13 小时前
Linux 文件操作详解:open/read/write/lseek 系统调用
linux·文件操作·系统调用·open·文件描述符
可可西里_X_back13 小时前
Linux学习(二)- 驱动开发步骤
linux·驱动开发·学习