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

目录

一、Linux中是如何安装软件的

1.1 安装的方法

1.2 安装的本质(基本理解)

二、软件包

2.1 软件包的概念

2.2 为什么要有软件包

三、yum--软件包管理器

3.1 yum的概念

3.2 yum的使用

3.2.1 搜索一个软件

3.2.2 安装一个软件

3.2.3 卸载一个软件

3.3 yum源更新

四、注意


一、Linux中是如何安装软件的

1.1 安装的方法

方法1:源代码安装
        一般Linux下的很多工具和库是开源的,不提供编译功能,需要下载代码自行编译,编译出错也只能自己解决。解决之后,一般源代码都会提供一些自动化安装的脚本,编译完成后使用脚本安装。

方法2:rpm包
        有一些人将需要的软件编译并打包好,形成一个rpm,可以使用rpm把对应的软件直接安装。

  • 编译的难度较大,初学者不推荐方法1。 
  • 也不推荐方法2,因为一般不知道要下哪个安装包,也不知道哪个安装包是正确的。
    而且软件与软件之间是有依赖关系的,例如C语言是依赖于C动态库的。如果使用方法2,可能会对某些文件处理造成遗漏。

方法3:yum 一键式安装(centos)(推荐使用)
        yum可以根据提供的软件名,自动地去自己的软件园中搜索,找到之后自动地将软件包下载解压拷贝并安装到系统中。 

当前学习中,软件的查找、安装、更新、卸载都可以使用yum工具。

1.2 安装的本质(基本理解)

我们写了一个源文件code.c,编译生成可执行程序a.out,将其名称改为mycmd,可以使用 ./mycmd执行程序,code.c就是源代码,但这不是安装。

//code.c
#include <stdio.h>
int main()
{printf("Hello World\n");return 0;
}
[zzx@hecs mydir]$ touch code.c
[zzx@hecs mydir]$ vim code.c
[zzx@hecs mydir]$ gcc code.c -o a.out
[zzx@hecs mydir]$ mv a.out mybin
[zzx@hecs mydir]$ ll
total 16
-rw-rw-r-- 1 zzx zzx   77 Nov 24 17:23 code.c
-rwxrwxr-x 1 zzx zzx 8360 Nov 24 17:24 mybin
[zzx@hecs mydir]$ ./mybin 
Hello World

把mycmd拷贝到/user/bin目录下(sudo执行),此时就是将mycmd安装到系统里。
之后输入mycmd就可以执行对应的操作了。(演示完我就删除了,不要将自己的指令拷贝到系统里)

[zzx@hecs mydir]$ sudo cp mybin /usr/bin/
[zzx@hecs mydir]$ mybin
Hello World

所以 安装的本质就是把可执行程序拷贝指定的路径下(最基本的理解) 


二、软件包

2.1 软件包的概念

软件包(Software Package)是一种用于组织、分发和安装软件的文件集合。它通常包含了一个或多个软件程序、相关的库文件、配置文件、文档和其他必要的资源。

软件包的主要目的是简化软件的安装和管理过程,提供一种统一的方式来交付和维护软件。通过将相关的文件打包在一起,并提供一些预定义的安装和卸载机制,软件包可以使用户更便捷地获取和更新软件。

2.2 为什么要有软件包

在Linux下安装软件, 一个通常的办法是下载到程序的源代码, 并进行编译, 得到可执行程序.
但是这样太麻烦了, 于是有些人把一些常用的软件提前编译好, 做成软件包(可以理解成windows上的安装程序)放在一个服务器上, 通过包管理器可以很方便的获取到这个编译好的软件包, 直接进行安装.
软件包和软件包管理器, 就好比 "App" 和 "应用商店" 这样的关系.
yum(Yellow dog Updater, Modified)是Linux下非常常用的一种包管理器. 主要应用在Fedora,RedHat, Centos等发行版上.


三、yum--软件包管理器

3.1 yum的概念

yum 是Linux中的软件包管理器。类似于我们常用的软件商店/应用管家。
应用商店是一个客户端软件,里面的app在服务器端,服务器端是由手机厂商负责的,为了用户的良好体验,需要对上传到服务器里面的app负责。

在这里yum就相当于应用商店,软件服务器由Linux社区提供,国内由镜像源提供新的下载链接。

查看yum的配置文件查看CentOs-Base.repo 基础软件源

vim /etc/yum.repos.d/CentOS-Base.repo

华为开源镜像站 

3.2 yum的使用

3.2.1 搜索一个软件

格式:yum list | grep [XXX]

如果我们只知道一个软件的部分名称sl,可以使用以下方法:

yum list | grep sl

yum list是将所有的常见软件罗列出来| 生成管道文件grep sl 搜索出带有sl关键字的软件

方框内的就是我的系统支持的sl命令,其中

sl   是软件名

x86_64  是支持32和64位的,我的系统默认是64位的,所以筛选出来的都是64位的

5.02-1   当前版本的版本号

el   CentOs的意思,el7 即CentOs7

epel      软件的来源,前面省略了一个@

找到对应的软件后即可进行安装

3.2.2 安装一个软件

格式:sudo install [软件名]       (注:root 用户不需要sudo)

安装sl软件,可以使用sl.x86_64,也可以直接用软件名sl

sudo yum install sl

安装时会提示你软件总大小和安装大小,再次询问你是否下载 ,确认后回复即可。
如果不想让它询问,安装时可以使用-y选项:yum install -y sl

 

大家可以自己试着安装一下,然后命令行输入sl ,看一下结果是什么。

在root账户下,安装一款软件,所有用户都能使用。

3.2.3 卸载一个软件

格式:yum remove [软件名]

sudo yum remove sl

再次确认卸载 。(如果不想让它询问,卸载时可以使用-y选项:yum remove -y sl

 

卸载完成,此时在输入sl命令就不能执行了。 

3.3 yum源更新

云服务器的yum源已经被厂商配置好了,如果我是虚拟机,里面的配置的yum源可能是CentOs7官网的(国外的),此时下软件会特别慢。

yum下载软件主要是从Base.repo仓库下载的,所以更新yum源就是把配置文件里的信息用国内下载链接仓库文件全部替换掉。(不建议删掉,最好保存备份)

第一步:备份配置文件

mv CentOS-Base.repo CentOS-Base.repo_bak

第二步获取国内yum源(选一个就行)

阿里云:

wget -O CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo或curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo

华为云:

wget -O /etc/yum.repos.d/CentOS-Base.repo https://repo.huaweicloud.com/repository/conf/CentOS-7-reg.repo 

 第三步:把刚才下载的CentOs-Base.repo仓库源 move 到/etc/yum.repos.d/

mv CentOs-Base.repo /etc/yum.repos.d/

四、注意

  1. 基础yum源对应的一些官方软件、稳定性可以保证,但是可能不包括一些新的软件。
    epel是扩展软件源,可能会有一些新的软件。如果安装后执行不了,可能是yum的epel扩展源或者yum仓库源epel.repo没安装,可以用yum install -y epel-release安装
  2. yum工具在每次安装指定软件包的时候,都会检测源服务器上的软件包信息,为了便捷不用每次都去搜索软件包信息,因此使用 yum makecache将软件包信息缓存到本地,使用 yum clean all 清理老旧的缓存信息。
  3. yum search 用于在搜索包含有指定关键字的软件包
  4. yum -y  update:升级所有包同时,也升级软件和系统内核;
  5. yum -y upgrade:只升级所有包,不升级软件和系统内核,软件和内核保持原样。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/226527.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

图书管理系统源码,图书管理系统开发,图书借阅系统源码配置和运行图解源码已附加

目录 配置简介和软件条件 数据库附件配置 vs应用程序web.config配置数据库链接字符串 数据库文件脚本代码 配置简介和软件条件 所需要的软件是Vs2017以上数据库是Sqlserver2012以上,如果数据库附件不了可以使用数据库脚本附件数据库脚本会在文章末尾写出来。可以直接复制到…

51单片机项目(17)——基于51单片机的双机通信系统

1.功能设计 本次实现的功能如下&#xff1a; 发送端通过串口向接收端循环发送字符0~F&#xff0c;并且实时显示在数码管上 接收端通过串口接收数据&#xff0c;将接收到的数据实时显示在数码管上。 &#xff08;需要完整工程的移步至最后 包括发送端代码 接收端代码 仿真图…

vue+uniapp校园寻物失物招领平台 微信小程序1f6z5

系统中的核心用户是管理员&#xff0c;管理员登录后&#xff0c;通过管理员菜单来管理后台系统。主要功能有&#xff1a;首页、个人中心、用户管理、物品分类管理、物品信息管理、物品归还管理、留言板管理、系统管理等功能。管理员用例如图3-7所示。 对于本网上失物招领小程序…

js闭包的必要条件及创建和消失(生命周期)

>创建闭包的必要条件&#xff1a; 1.函数嵌套 2.内部函数引用外部函数的变量 3.将内部函数作为返回值返回 >闭包是什么&#xff1f; 就是可以访问外部函数&#xff08;作用域&#xff09;中变量的内部函数 > 闭包是什么时候产生的&#xff1f; - 当调用外部函数…

初识Java 18-4 泛型

目录 泛型存在的问题 在泛型中使用基本类型 实现参数化接口 类型转换和警告 无法实现的重载 基类会劫持接口 自限定类型 奇异递归类型 自限定 自限定提供的参数协变性 本笔记参考自&#xff1a; 《On Java 中文版》 泛型存在的问题 接下来讨论的&#xff0c;是在泛型…

爱芯元智AX650N部署yolov8s 自定义模型

爱芯元智AX650N部署yolov8s 自定义模型 本博客将向你展示零基础一步步的部署好自己的yolov8s模型&#xff08;博主展示的是自己训练的手写数字识别模型&#xff09;&#xff0c;本博客教你从训练模型到转化成利于Pulsar2 工具量化部署到开发板上 训练自己的YOLOv8s模型 准备自…

神经网络:脑科学中功能MRI成像的应用及其一些相关概念

文章目录 一、MRI成像简介核磁共振成像&#xff08;MRI&#xff09;侵入式成像功能磁共振成像&#xff08;fMRI&#xff09;血氧水平依赖&#xff08;BOLD&#xff09;效应对比基线状态代理指标 二、fMRI具有延迟性及其解决方案原因解决方法 三、fMRI 数据处理1. 数据预处理2. …

《2023全球隐私计算报告》正式发布!

2023全球隐私计算报告 1、2023全球隐私计算图谱2、国内外隐私计算相关政策3、隐私计算技术的最新发展4、隐私计算技术的合规挑战5、隐私计算的应用市场动态6、隐私计算开源整体趋势7、隐私计算的未来趋势 11月23日&#xff0c;由浙江省人民政府、商务部共同主办&#xff0c;杭州…

unity3d NPC寻路时相互挤压、导致离目标越来越远

更改寻路代理 约束的大小&#xff0c;人物周围绿色圆柱范围线&#xff0c;尽量调小

npm管理发布包-创建与发布

创建与发布 我们可以将自己开发的工具包发布到 npm 服务上&#xff0c;方便自己和其他开发者使用&#xff0c;操作步骤如下 创建文件夹&#xff0c;并创建文件indexjs&#xff0c;在文件中声明函数&#xff0c;使用 module.exports 暴露npm初始化工具包&#xff0c;package.j…

学C的第十一天【查看汇编代码一步步了解 函数栈帧(栈区局部变量)的创建和销毁】

相关代码gitee自取&#xff1a;C语言学习日记: 加油努力 (gitee.com) 接上期&#xff1a;学C的第十天&#xff08;继续深入学习函数、函数递归、练习&#xff09;-CSDN博客 函数栈帧的创建和销毁 越高级的编译器&#xff0c;越不容易学习和观察该过程 同时在不同的编译器下&…

会声会影2024旗舰版系统配置要求及格式支持

会声会影2024旗舰版是一款广受欢迎的视频编辑软件&#xff0c;它的最新版本&#xff0c;会声会影2023&#xff0c;已经发布。在这篇文章中&#xff0c;我们将探讨会声会影2024旗舰版系统配置要求及格式支持 会声会影2024是一款专业的视频剪辑软件&#xff0c;能够帮助用户制作高…