【Linux】Linux安装软件---软件包管理器 yum

主页:醋溜马桶圈-CSDN博客

专栏:Linux_醋溜马桶圈的博客-CSDN博客

giteemnxcc (mnxcc) - Gitee.com

目录

1.Linux中安装软件

[1.1 源代码安装](#1.1 源代码安装)

[1.2 rpm包安装](#1.2 rpm包安装)

[1.3 yum安装](#1.3 yum安装)

[1.3.1 举例](#1.3.1 举例)

[1.3.2 图示yum下载安装](#1.3.2 图示yum下载安装)

2.Linux系统的生态

如何选择系统

[3.Linux 软件包管理器 yum](#3.Linux 软件包管理器 yum)

[3.1 什么是软件包](#3.1 什么是软件包)

[3.2 关于 rzsz](#3.2 关于 rzsz)

注意事项

​编辑

[3.3 查看软件包](#3.3 查看软件包)

​编辑

注意事项

[3.4 如何安装软件](#3.4 如何安装软件)

注意事项

[3.5 如何卸载软件](#3.5 如何卸载软件)

[3.6 centos yum安装指令指南](#3.6 centos yum安装指令指南)

[3.6.1 搜索](#3.6.1 搜索)

[3.6.2 安装](#3.6.2 安装)

[3.7 yum本地配置](#3.7 yum本地配置)

[3.7.1 配置将来是在干什么?](#3.7.1 配置将来是在干什么?)

[3.7.2 如何配置?](#3.7.2 如何配置?)


1.Linux中安装软件

Linux中安装软件一般有三种方式:

  1. 源代码安装
  2. rpm包安装
  3. yum安装

1.1 源代码安装

有些软件本来就是开源的,如果不想用别人直接发布好的软件,我们就可以把源代码下载下来,在我们的环境中编译,自己安装

但是这个过程非常麻烦,而且可能会遇到很多问题,比如发布这个软件的人是在Ubuntu下发布的,或者在一个老系统下发布的,这时候这个源代码在我们的电脑上不一定编译通过,所以源代码安装过程中最让人头疼的问题就是编译报错

1.2 rpm包安装

由于源代码安装非常麻烦,所以就有一批程序员在各种不同的环境下编译好,形成rpm包(压缩格式),这时候我们直接将这个编译好的程序下载过来就行了

1.3 yum安装

rpm包安装还是有一定的问题,在打包的时候可能不会将一些库打包进去,比如c的库,c++的库,图形化界面的库,所以在rpm包安装的时候有一定概率能安装好,但是也不排除安装不全的可能,这个时候就得我们来解决软件的依赖关系,还是很复杂

所以这时候yum就把所有的依赖关系解决,同时也内置一些下载链接,指向去指定地方下载适合我们自己系统的软件,其他的依赖软件也一并下载好

yum可以说是最简单的安装方式

1.3.1 举例

我们以QQ举例,假如我们在Windows中要安装QQ,然后Tencent说给我们把源代码发过来,让我们自己编译,这岂不是很扯了;或者说只有一部分软件,还缺一些库,让我们自己去把这些库下载下来,同样对我们也是挑战;所以最简单的安装方式就是将软件和依赖的库一同打包好,然后提供一个下载链接

1.3.2 图示yum下载安装

我们在我们的centos上输入yum安装指令,yum就会去centos服务器中查找对应的包,然后下载安装的我们本地的centos,至此一个完整的安装过程完成

我们在centos中输入对应的安装命令,就类似于在应用商店中搜索抖音然后安装,服务器那么多,而yum是怎么知道去哪个服务器下载呢?

很简单,我们的机器内部一定内置了目标服务器的地址链接

2.Linux系统的生态

如何选择系统

假设我们要去选择一个系统,Linux系统各版本的底层都是一样的,Linux各系统的区别不会是简单的系统区别,我们选择一个系统,考虑该系统是否完善是最重要的,系统可用是最基本的要求,还要考虑这个系统有没有社区,有没有维护,文档是否齐全,配套的软件是否丰富

如果这个系统开源社区非常活跃,文档很齐全,配套的软件很丰富,问题暴露很快能够解决,有大量的程序员愿意来开发,更重要的是有很多企业来选择,这时会有很多的企业级应用场景暴露出来,这就是操作系统的生态

系统本身没有区别,主要是当年我们给系统设置的调性,吸引了不同种类的人群,构建了不同种类的社区,暴露了特定种类的问题,以及配套的各种问题的解决方案出来了,这才是系统有差别

我们选择系统并不是区分系统本身,而是区分系统的生态和社区

为了有更多的用户选择,系统的开发者一定会维护好系统的生态和社区

"有需求者,就一定有满足需求的人"

3.Linux 软件包管理器 yum

3.1 什么是软件包

在Linux下安装软件,一个通常的办法是下载到程序的源代码,并进行编译,得到可执行程序

但是这样太麻烦了,于是有些人把一些常用的软件提前编译好,做成软件包(可以理解成windows上的安装程序)放在一个服务器上,通过包管理器可以很方便的获取到这个编译好的软件包,直接进行安软件包和软件包管理器,就好比 "App" 和 "应用商店""这样的关系

yum(Yellow dog Updater,Modified)是Linux下非常常用的一种包管理器,主要应用在Fedora,RedHat,Centos等发行版上

3.2 关于 rzsz

这个工具用于 windows 机器和远端的 Linux 机器通过 XShell 传输文件.

安装完毕之后可以通过拖拽的方式将文件上传过去.

注意事项

关于 yum 的所有操作必须保证主机(虚拟机)网络畅通!!!

可以通过 ping 指令验证

bash 复制代码
ping www.baidu.com

3.3 查看软件包

通过 yum list 命令可以罗列出当前一共有哪些软件包,由于包的数目可能非常之多,这里我们需要使用 grep 命令只筛选出我们关注的包,例如:

bash 复制代码
yum list | grep lrzsz

结果如下:

bash 复制代码
lrzsz.x86_64 0.12.20-36.el7 @base

注意事项

软件包名称:主版本号.次版本号.源程序发行号-软件包的发行号.主机平台.cpu架构.

"x86_64" 后缀表示64位系统的安装包,"i686" 后缀表示32位系统安装包,选择包时要和系统匹配.

"el7" 表示操作系统发行版的版本,"el7" 表示的是 centos7/redhat7,"el6" 表示 centos6/redhat6.

最后一列,base 表示的是 "软件源" 的名称,类似于 "小米应用商店","华为应用商店" 这样的概念

3.4 如何安装软件

通过 yum,我们可以通过很简单的一条命令完成 gcc 的安装

bash 复制代码
sudo yum install lrzsz

yum 会自动找到都有哪些软件包需要下载,这时候敲 "y" 确认安装

出现 "complete" 字样,说明安装完成

注意事项

安装软件时由于需要向系统目录中写入内容,一般需要 sudo 或者切到 root 账户下才能完成

yum安装软件只能一个装完了再装另一个,正在yum安装一个软件的过程中,如果再尝试用yum安装另外一个软件,yum会报错;如果 yum 报错,请自行百度

3.5 如何卸载软件

仍然是一条命令:

bash 复制代码
sudo yum remove lrzsz

3.6 centos yum安装指令指南

如果我们在Linux中输入命令发现该命令没有的时候,我们就可以通过yum来安装这个命令

具体分为两步:搜索,安装

3.6.1 搜索

首先搜索centos yum 安装 + 指令

以zip指令为例,在搜索框中输入centos yum 安装zip

3.6.2 安装

复制安装命令到shell,直接安装即可

3.7 yum本地配置

3.7.1 配置将来是在干什么?

yum会根据/etc/yum.repos.d/该路径下面的配置文件,来构成自己的下载路径,(根据OS版本,根据你要下载的软件),yum帮助我们下载,安装

一般的机器,内置的链接地址是centos的官网,软件链接都指向的是国外的,yum可能会比较慢,所以需要配置

3.7.2 如何配置?

本质都是更改文件,或者更改文件的内容

CentOS 7如何配置yum源「建议收藏」-腾讯云开发者社区-腾讯云 (tencent.com)

使用yum一般都是要联网的

相关推荐
wowocpp22 分钟前
ubuntu 22.04 硬件配置 查看 显卡
linux·运维·ubuntu
山河君34 分钟前
ubuntu使用DeepSpeech进行语音识别(包含交叉编译)
linux·ubuntu·语音识别
鹏大师运维38 分钟前
【功能介绍】信创终端系统上各WPS版本的授权差异
linux·wps·授权·麒麟·国产操作系统·1024程序员节·统信uos
筱源源41 分钟前
Elasticsearch-linux环境部署
linux·elasticsearch
萨格拉斯救世主44 分钟前
jenkins使用slave节点进行node打包报错问题处理
运维·jenkins
川石课堂软件测试1 小时前
性能测试|docker容器下搭建JMeter+Grafana+Influxdb监控可视化平台
运维·javascript·深度学习·jmeter·docker·容器·grafana
龙哥说跨境1 小时前
如何利用指纹浏览器爬虫绕过Cloudflare的防护?
服务器·网络·python·网络爬虫
pk_xz1234563 小时前
Shell 脚本中变量和字符串的入门介绍
linux·运维·服务器
小珑也要变强3 小时前
Linux之sed命令详解
linux·运维·服务器
海绵波波1073 小时前
Webserver(4.3)TCP通信实现
服务器·网络·tcp/ip