本文原创首发于公众号:编程三分钟

yum 命令的使用

yum命令天天都在用,都快用烂了,但是很多人不知道为什么只要联网,yum命令就能像老奶奶手中的魔法棒一样,随心所欲的下载到想到的包。

比如你想装个c++环境,直接 yum install gcc-c++

强迫症都喜欢做完一件事以后再确认一下,可以用rpm -qa | grep 包名的方式来查看。

如果装的不是想要的版本,yum list *gcc-c++*搜一下,一堆可安装的包名就列出来,想装哪个版本装哪个版本。

当然了,能装就能卸,一个yum remove gcc-c++搞定

啥?你还想装个docker,想装个go,想装不同版本的python,咋就想的那么美呢?

没问题!即使你想装那么些个东西,yum都能办到,她就像一个包容的老母亲时时宠爱着调皮捣蛋的傻儿子,ok,只要妈有,妈没有的也想办法从别的地方找来。也就是只要源里有,源里没有的再多配一个源就可以了。

yum 源

哎?这里说到一个源的概念,源简单来说就是一个专门储存包的仓库,分门别类的放好,yum命令就是仓库管家,根据配置好的规则,去源堆里找到想要的包顺便找到此包对其他包的依赖关系,根据依赖关系自动安装所有的包。包的依赖关系和下图一样。

/etc/yum.repos.d/目录就是专门存储各种源的目录,源文件以.repo后缀结尾,习惯性的把同一个业务的源放到一个文件里,比如平台A、平台B可以分为两个文件,当然了你的地盘你做主,想怎么分都可以。下面这张图就是我服务器上配置的源。

每个repo文件中,可以配置多个仓库(源),每个仓库存了不同的包,像我们刚刚安装的gcc-c++os仓库里,仓库名是唯一的。

上图节选自腾讯云服务器CentOS-Base.repo,上图中的中括号是源的名字,便于yum取得并识别,下面是配置项,来简单下解释各个配置项的含义。

enabled=1 表示启用了这个源,0是未启用。

gpg(GNU Private Guard)是一种校验算法,用来确定rpm包的来源是有效和安全的,gpgkey就是gpg密钥所在位置。

baseurl就是源路径。

name仓库的名称,只是为了方便阅读,一般没什么用。

通过刚刚的安装和卸载,我们明显看到gcc-c++是在os库里,又因为库名是唯一的,所以肯定就是CentOS-Base.repo里的os库,我们现在把他设置为禁用看看还能不能装。

有的人说了“我有台Centos的机器根本就不能联网,有yum命令有啥用,还不是要一个一个去网上下?完全是要人工解决依赖问题啊。”

我只能说这位同学,你坐下!小熊曾经说过,只要思想不滑坡,方法总比困难多。只要找一台能相同os的服务器用下面的命令,就能把rpm包和他的依赖来全部下载到本地,再拷贝过去安装好了。

yum install --downloadonly --downloaddir=/tmp/pzqu gcc-c++

--downloaddir指定下载目录

如果--downloadonly用不了,可能是漏了插件yum install yum-plugin-downloadonly安装上就好了。

后记

如果你想缓存下来全部的仓库,我只能说别开玩笑了,我们哪有那么大的硬盘,个人也没必要这么做。

但要完全是自己项目的包,可以自建一套源,开发测试部署的时候都自动打包到源里,随便到哪个离线环境把源带走,想在哪部署就能在哪部署,从这里我仿佛看到了持续集成的影子。

预知后事如何,请听下回分解。

大神都在用的yum源的更多相关文章

  1. 大神都在看的RxSwift 的完全入坑手册

    大神都在看的RxSwift 的完全入坑手册 2015-09-24 18:25 CallMeWhy callmewhy 字号:T | T 我主要是通过项目里的 Rx.playground 进行学习和了解 ...

  2. SEO大神都是些什么人

    http://www.wocaoseo.com/thread-97-1-1.html 貌似好久没有更新seo培训联盟的文章了,最近一直在专心学习其他的东西,前一段写了几篇关于用户需求和体验的文章,但是 ...

  3. python自带的IDLE编译器,听说大神都用这个(附python下载安装教程)

    python这两年这么火,学的人越来越多,小伙伴们都用什么编译器了? 今天教大家安装python并熟悉python自带的编译器IDLE. 第一步,进入python官网https://www.pytho ...

  4. 在VMware中为Redhat HAT配置本地yum源

    在VMware中为Redhat HAT配置本地yum源 今天准备使用CM安装大数据环境,到需要几台机器都使用同一套yum源才可以,所以想到将Redhat镜像文件拷贝到虚拟机中,在挂起使用,最后通过ht ...

  5. CentOS 7搭建本地yum源和局域网yum源

    这两天在部署公司的测试环境,在安装各种中间件的时候,发现各种依赖都没有:后来一检查,发现安装的操作系统是CentOS Mini版,好吧,我认了:为了完成测试环境的搭建,我就搭建了一个局域网的yum源. ...

  6. 【linux配置】在VMware中为Redhat HAT配置本地yum源

    在VMware中为Redhat HAT配置本地yum源 今天准备使用CM安装大数据环境,到需要几台机器都使用同一套yum源才可以,所以想到将Redhat镜像文件拷贝到虚拟机中,在挂起使用,最后通过ht ...

  7. centos7安装部署本地局域网yum源

    应用场景: 当Linux系统都是最小化安装的系统,又无法做到每台都能访问外网的情况下,安装常用工具或者依赖包的最好办法可能就是建立本地yum源了. 安装环境: 一台 centos 7.4 minima ...

  8. 使用tomcat搭建centos的yum源

    最近在折腾大数据,需要搭建一个yum源.一般的做法是在CentOS中安装httpd,然后将rpm包放入/var/www/html下面,再执行[createrepo .]即可. 不过虚拟机对传文件终归是 ...

  9. 克隆虚拟机及配置yum源的步骤及讲解(Hadoop基础)

    1.克隆虚拟机 找一台需要克隆的虚拟机但虚拟机必须在关机下进行,(建议将前期Linux环境 配置完成) 在VMware中右键虚拟机找到克隆的选项.   点击克隆 可以克隆他的快照(提前做快照)或者是克 ...

随机推荐

  1. hdu 1078 FatMouse and Cheese(简单记忆化搜索)

    题目链接 http://acm.hdu.edu.cn/showproblem.php?pid=1078 题意:给出n*n的格子,每个各自里面有些食物,问一只老鼠每次走最多k步所能吃到的最多的食物 一道 ...

  2. MPA JS CSS预处理方案

    1.WebPack 添加配置文件webpack.config.js,直接在当前目录运行 webpack. var basepath = '/root/webapps/happ'; var glob = ...

  3. [DP]换钱的方法数

    题目三 给定数组arr, arr中所有的值都为整数且不重复.每个值代表一种面值的货币,每种面值的货币可以使用任意张,在给定一个整数aim代表要找的钱数,求换钱有多少种方法. 解法一 --暴力递归 用0 ...

  4. mybatis转义

    SELECT * FROM test WHERE 1 = 1 AND start_date <= CURRENT_DATE AND end_date >= CURRENT_DATE 在执行 ...

  5. 2019CSP初赛基础知识整理

    一.硬件 计算机发展:   年代 元件 第一代 1946~1958 电子管 第二代 1959~1964 晶体管 第三代 1965~1970 集成电路 第四代 1971~? 大规模集成电路 世界上第一台 ...

  6. “独立”OpenVINO R2019_2 版本中的“super_resolution_demo”例子的,解决由于 R2019_1到R2019_2 升级造成的问题

    OpenVINO提供了丰富的例子,为了方便研究和使用,我们需要将这些例子由原始的demo目录中分离出来,也就是“独立”运行,这里我们选择了较为简单的super_resolution_demo来说明问题 ...

  7. [币严BIZZAN区块链]数字货币交易所钱包对接之比特币(BTC)

    在币严BIZZAN开发数字货币交易所的过程中,一共有两大难点,一个是高速撮合交易引擎,另一个是钱包对接,这两者是我们团队以前没有接触过的.这个系列的文章主要介绍数字货币交易所钱包对接实现技术.第一个要 ...

  8. FreeSql (二十一)查询返回数据

    FreeSql 采用 ExpressionTree 优化读取速读,如果懂技术的你一定知道 .NETCore 技术下除了原生代码,最快就是 Emit 和 ExpressionTree. 项目在初期使用的 ...

  9. 《clean code》讲述代码中的道,而不是术

    Clean code 看<clean code>一书,学习高手写出的代码,简单高效的代 1.目标 Bjarne Stroustrup:优雅且高效:直截了当:减少依赖:只做好一件事 Grad ...

  10. 【第二十二篇】从客户端中检测到有潜在危险的 Request.Form 值

    提交数据的时候  用js的方法   escape(富文本框的值)    例:escape(UM.getEditor('Content').getContent()); 取值的时候   unescape ...