来源:编程三分钟
ID:coding3min
作者:小熊爱编程
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安装上就好了。
后记
如果你想缓存下来全部的仓库,我只能说别开玩笑了,我们哪有那么大的硬盘,个人也没必要这么做。
但要完全是自己项目的包,可以自建一套源,开发测试部署的时候都自动打包到源里,随便到哪个离线环境把源带走,想在哪部署就能在哪部署,从这里我仿佛看到了持续集成的影子。
预知后事如何,且听下回分解。