【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.mzph.cn/news/168599.shtml

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

相关文章

Node.js入门指南(三)

目录 Node.js 模块化 介绍 模块暴露数据 导入模块 导入模块的基本流程 CommonJS 规范 包管理工具 介绍 npm cnpm yarn nvm的使用 我们上一篇文章介绍了Node.js中的http模块&#xff0c;这篇文章主要介绍Node.js的模块化&#xff0c;包管理工具以及nvm的使用。 Node…

Joint Cross-Modal and Unimodal Features for RGB-D Salient Object Detection

提出的模型 the outputs H i m _i^m im​ from the unimodal RGB or depth branch in MFFM FFM means ‘Feature Fusion Module’ 作者未提供代码

优秀软件设计特征与原则

1.摘要 一款软件产品好不好用, 除了拥有丰富的功能和人性化的界面设计之外, 还有其深厚的底层基础, 而设计模式和算法是构建这个底层基础的基石。好的设计模式能够让产品开发快速迭代且稳定可靠, 迅速抢占市场先机&#xff1b;而好的算法能够让产品具有核心价值, 例如字节跳动…

GPS 定位信息获取(北斗星通 GPS)

GPS 定位信息获取&#xff08;1&#xff09; 首先回顾北斗星通 GPS 数据获取&#xff08;1&#xff09;~&#xff08;5&#xff09; gps_pub.cpp 将接收到的串口数据转化为GPS的经纬度信息gps_path.cpp 将经纬度信息转化为全局坐标系下的XY值&#xff0c;以第一个GPS经纬度为…

【初始前后端交互+原生Ajax+Fetch+axios+同源策略+解决跨域】

初始前后端交互原生AjaxFetchaxios同源策略解决跨域 1 初识前后端交互2 原生Ajax2.1 Ajax基础2.2 Ajax案例2.3 ajax请求方式 3 Fetch3.1 fetch基础3.2 fetch案例 4 axios4.1 axios基础4.2 axios使用4.2.1 axios拦截器4.2.2 axios中断器 5 同源策略6 解决跨域6.1 jsonp6.2 其他技…

搭配:基于OpenCV的边缘检测实战

引言 计算机中的目标检测与人类识别物体的方式相似。作为人类&#xff0c;我们可以分辨出狗的形象&#xff0c;因为狗的特征是独特的。尾巴、形状、鼻子、舌头等特征综合在一起&#xff0c;帮助我们把狗和牛区分开来。 同样&#xff0c;计算机能够通过检测与估计物体的结构和性…

Linux 常见命令篇

history 获取执行的指令记录 语法格式: history [参数] 常用参数&#xff1a; -a 写入命令记录 -c 清空命令记录 -d 删除指定序号的命令记录 -n 读取命令记录 -r 读取命令记录到缓冲区 -s 将指定的命令添加到缓冲区 -w 将缓冲区信息写入到历史文件 history#获取最近的三条…

C#关键字、特性基础及扩展合集(持续更新)

一、基础 Ⅰ 关键字 1、record record&#xff08;记录&#xff09;&#xff0c;编译器会在后台创建一个类。支持类似于结构的值定义&#xff0c;但被实现为一个类&#xff0c;方便创建不可变类型&#xff0c;成员在初始化后不能再被改变 &#xff08;C#9新增&#xff09; …

Hologres性能优化指南1:行存,列存,行列共存

在Hologres中支持行存、列存和行列共存三种存储格式&#xff0c;不同的存储格式适用于不同的场景。 在建表时通过设置orientation属性指定表的存储格式&#xff1a; BEGIN; CREATE TABLE <table_name> (...); call set_table_property(<table_name>, orientation,…

Centos上安装Docker和DockerCompose

安装Docker Docker可以运行在MAC&#xff0c;Windows&#xff0c;CtenOS,UBUNTU等操作系统上。目前主流的版本有Docker CE和Docker EE&#xff0c;CE是免费的开源Docker版本&#xff0c;适用于开发人员和小型团队&#xff0c;EE是适用于企业的容器化解决方案。它基于Docker CE…

2023-11-24 LeetCode每日一题(统计和小于目标的下标对数目)

2023-11-24每日一题 一、题目编号 2824. 统计和小于目标的下标对数目二、题目链接 点击跳转到题目位置 三、题目描述 给你一个下标从 0 开始长度为 n 的整数数组 nums 和一个整数 target &#xff0c;请你返回满足 0 < i < j < n 且 nums[i] nums[j] < targe…

开源的文本编辑器Notepad++ 8.6.0版本在Windows系统上的下载与安装配置

目录 前言一、Notepad 安装二、使用配置总结 前言 Notepad 是一款简单而强大的文本编辑工具&#xff0c;通常用于快速创建和编辑文本文件。以下是 Notepad 工具的详细介绍。注&#xff1a;文末附有下载链接&#xff01; 主要特点&#xff1a; ——简洁易用&#xff1a; Note…

蓝桥杯物联网竞赛_STM32L071_4_按键控制

原理图&#xff1a; 当按键S1按下PC14接GND&#xff0c;为低电平 CubMX配置: Keil配置&#xff1a; main函数&#xff1a; while (1){/* USER CODE END WHILE */OLED_ShowString(32, 0, "hello", 16);if(Function_KEY_S1Check() 1){ OLED_ShowString(16, 2, &quo…

FANUC机器人到达某个点位时,为什么不显示@符号?

FANUC机器人到达某个点位时,为什么不显示@符号? 该功能由变量$MNDSP_POSCF = 0(不显示)/1(显示)/2(光标移动该行显示) 控制,该变量设置为不同的值,则启用对应的功能。 如下图所示,为该变量设置不同的值时的对比, 其他常用的系统变量可参考以下内容: 在R寄存器指定速度…

什么是AWS CodeWhisperer?

AWS CodeWhisperer https://aws.amazon.com/cn/codewhisperer/ CodeWhisperer 经过数十亿行代码的训练&#xff0c;可以根据您的评论和现有代码实时生成从代码片段到全函数的代码建议。 ✔ 为您量身定制的实时 AI 代码生成器 ✔ 支持热门编程语言和 IDE ✔ 针对 AWS 服务的优…

java设计模式学习之【工厂模式】

文章目录 引言工厂方法模式简介定义与用途&#xff1a;实现方式&#xff1a; 使用场景优势与劣势工厂模式在spring中的应用电费计算示例&#xff08;简单工厂模式&#xff09;改善为方法工厂模式代码地址 引言 在软件开发的世界中&#xff0c;对象的创建可能是一个复杂且重复的…

网安融合新进展:Check Point+七云网络联合研发,加固大型企业边缘、分支侧安全

AI 爆火、万物互联&#xff0c;底层需要更灵活的网络设施提供支撑。据国际分析机构 Gartner 预测&#xff0c;到 2024 年&#xff0c;SD-WAN&#xff08;软件定义的广域网&#xff09;使用率将达到 60%。不过边缘和终端兴起&#xff0c;未经过数据中心的流量也在成为新的安全风…

Spring Boot Actuator 2.2.5 基本使用

1. pom文件 &#xff0c;添加 Actuator 依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifactId> </dependency> 2.application.properties 文件中添加以下配置 …

LLMLingua:集成LlamaIndex,对提示进行压缩,提供大语言模型的高效推理

大型语言模型(llm)的出现刺激了多个领域的创新。但是在思维链(CoT)提示和情境学习(ICL)等策略的驱动下&#xff0c;提示的复杂性不断增加&#xff0c;这给计算带来了挑战。这些冗长的提示需要大量的资源来进行推理&#xff0c;因此需要高效的解决方案&#xff0c;本文将介绍LLM…

MATLAB实战 | MEX文件

应用接口是MATLAB与其他语言相互调用各自函数的方法&#xff0c;MEX文件使MATLAB程序中可以调用或链接其他语言编写的函数&#xff0c;而MATLAB引擎使其他语言程序中可以调用MATLAB函数。 01、MEX文件 MEX是MATLAB Executable的缩写&#xff0c;是MATLAB中用于调用其他语言编写…