我有一个旧版本(3.0.2)的R,我试图更新到最新(3.1.1)的EC2实例。 这在默认的yum repo中不可用,但在EPEL下可用。
安装的版本是3.0.2:
[hadoop@ip-172-31-19-15 ~]$ yum list R-core Loaded plugins: priorities, update-motd, upgrade-helper 970 packages excluded due to repository priority protections Installed Packages R-core.x86_64 3.0.2-1.17.amzn1 @amzn-main Available Packages R-core.i686 3.0.2-1.17.amzn1 amzn-main
这是回购
[hadoop@ip-172-31-19-15 ~]$ yum repolist Loaded plugins: priorities, update-motd, upgrade-helper 970 packages excluded due to repository priority protections repo id repo name status !amzn-main/latest amzn-main-Base 4,801 !amzn-updates/latest amzn-updates-Base 1,497 epel/x86_64 Extra Packages for Enterprise Linux 6 - x86_64 10,139+970 repolist: 16,437
指定epel回购,我可以看到版本3.1.1, 这里也列出
sudo yum --disablerepo="*" --enablerepo="epel" list R-core Loaded plugins: priorities, update-motd, upgrade-helper Installed Packages R-core.x86_64 3.0.2-1.17.amzn1 @amzn-main Available Packages R-core.i686 3.1.1-3.el6 epel R-core.x86_64 3.1.1-3.el6
但是,当我尝试安装使用sudo yum --disablerepo="*" --enablerepo="epel" install R-core我得到以下错误:
--> Finished Dependency Resolution Error: Package: R-java-3.1.1-3.el6.x86_64 (epel) Requires: java-1.5.0-gcj Error: Package: R-core-devel-3.1.1-3.el6.x86_64 (epel) Requires: libicu-devel Error: Package: R-core-devel-3.1.1-3.el6.x86_64 (epel) Requires: tcl-devel Error: Package: R-core-devel-3.1.1-3.el6.x86_64 (epel) Requires: tk-devel Error: Package: R-core-3.1.1-3.el6.x86_64 (epel) Requires: libicuuc.so.42()(64bit) Error: Package: R-core-3.1.1-3.el6.x86_64 (epel) Requires: xdg-utils Error: Package: R-core-3.1.1-3.el6.x86_64 (epel) Requires: libicui18n.so.42()(64bit) Error: Package: R-core-3.1.1-3.el6.x86_64 (epel) Requires: libtcl8.5.so()(64bit) Error: Package: R-core-3.1.1-3.el6.x86_64 (epel) Requires: libtk8.5.so()(64bit) You could try using --skip-broken to work around the problem You could try running: rpm -Va --nofiles --nodigest
大概这是由禁用*回购和只启用epel,可以防止一些依赖被发现引起的,否则我只能从amzn_mainfind3.0.2。
我应该用epel repo安装3.1.1的正确命令是什么?
# yum install yum-priorities
需要为所有回购设置添加优先级。 转至/etc/yum.repos.d并编辑所有文件并添加优先级
数字越低越重要 – 所以EPEL的是最低的。
例:
[epel] name=Extra Packages for Enterprise Linux 6 - $basearch #baseurl=http://download.fedoraproject.org/pub/epel/6/$basearch mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-6&arch=$basearch failovermethod=priority enabled=1 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6 priority=10
EPEL与Amazon Linux不兼容。 过去,亚马逊Linux看起来更像CentOS,但是现在已经不同了。