CentOS安装R中看yum、rpm、repo到底有什么关系

软件包管理系统

首先yum、rpm、repo这三个词都是属于软件包管理系统下的。我今天遇到的重装R语言的问题就是血与泪的教训:不到万不得不以不要自己编译安装软件,否则时间久了管理起来会一团糟,大多数软件都能通过Linux的软件包管理系统进行统一安装与管理。Linux 发行版主要有两大包管理技术阵营: Debian 的.deb,和红帽的.rpm:

包管理系统 发行版 (部分列表)
Debian Style (.deb) Debian, Ubuntu, Xandros, Linspire
Red Hat Style (.rpm) Fedora, CentOS, Red Hat Enterprise Linux, OpenSUSE, Mandriva, PCLinuxOS

更直白一点说,就是Ubuntu的.deb 相当于 CentOS的.rpm 相当于 Windows的.exe 相当于 OSX的.dmg。

上层和底层软件包工具

软件包管理系统通常由两种工具类型组成:底层工具用来安装和删除软件包文件(rpm);上层工具完成元数据搜索和依赖解析(yum)。

我们用yum与rpm都可以安装软件:

yum install package_name
rpm -i package_file

 

 

但是yum会从一个资源库(repository)中下载软件包,并经过完全依赖解析来安装它,这也是为什么每次运行yum install的时候会看到安装一堆相关软件;而rpm则需要先下载好一个rpm文件然后进行安装,并且如果rpm程序发现缺少了一个依赖,就会报错并退出。

资源库(repository)

刚才我们提到yum会从一个资源库(repository)中下载并安装软件包,而标题中的repo指的就是资源库,它的路径在/etc/yum.repos.d/下,我们可以看看这个目录里有些什么:

[root@n1 logos]# ls /etc/yum.repos.d/
CentOS-Base.repo  CentOS-Debuginfo.repo  CentOS-fasttrack.repo  CentOS-Media.repo  CentOS-Vault.repo  devtools-2.repo

 

所以如果你发现:yum install R报错说找不到相应的包,那就是因为你的资源库不够强大,没有包含R这个软件。

在R语言官网介绍如何在Red Hat上安装R的文档中有这么一句话:“The Fedora RPMs for R have been ported to RHEL by the project Extra Packages for Enterprise Linux (EPEL).”

Google一下”EPEL”,可以在EPEL的中国官网上看到介绍:“企业版 Linux 附加软件包(以下简称 EPEL)是一个由特别兴趣小组创建、维护并管理的,针对 红帽企业版 Linux(RHEL)及其衍生发行版(比如 CentOS、Scientific Linux、Oracle Enterprise Linux)的一个高质量附加软件包项目。”

也就是说EPEL是一个汇集了各种附加软件包的项目,而R语言就包含在这个项目,我们可以通过如下命令安装并启用 EPEL 源:

yum install epel-release

 

此时我们会发现资源库的目录/etc/yum.repos.d/下多出了两个.repo文件epel.repo与epel-testing.repo,现在再来运行yum install R就可以顺利安装了!

本文参考了The Linux Command Line中文版,并结合了自己在实际项目中遇到的问题。当然,yum还有查找、更新、删除等操作,这个相信大家都会用man自己去了解,希望对大家有帮助。


转载于:https://www.cnblogs.com/hqmao/p/5293842.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值