Puppet 不使用新的 deb 源来安装最新版本的 R
Puppet doesn't use new deb source to install latest version of R
我正在尝试使用 Puppet/Vagrant 为虚拟机配置:
- R v3.2.0(最新版)
- 一些R包(具体forecast, dplyr, RMySQL)
Vagrantfile
包含使用Puppet配置框:
Vagrant.configure(2) do |config|
config.vm.box = "ubuntu/trusty64"
config.vm.provision "puppet" do |puppet|
puppet.module_path = "modules"
end
config.vm.provider "virtualbox" do |vb|
vb.gui = true
vb.memory = "1024"
end
end
我的 default.pp
目前是这样的:
include apt
apt::key { 'cran':
id => 'E084DAB9',
server => 'keyserver.ubuntu.com',
}
apt::source { 'R':
comment => 'This is the apt repository for R - the language for statistical computing',
location => 'http://cran.rstudio.com/bin/linux/ubuntu/',
release => 'trusty/',
repos => '',
}
exec { "apt-update":
command => "/usr/bin/apt-get update"
}
Exec["apt-update"] -> Package <| |>
package { "r-base":
ensure => latest,
}
这成功地将 apt 密钥和文件 /etc/apt/sources.list.d/R.list
添加到包含以下内容的 VM:
# This file is managed by Puppet. DO NOT EDIT.
# This is the apt repository for R - the language for statistical computing
deb http://cran.rstudio.com/bin/linux/ubuntu/ trusty/
不幸的是,它安装的R版本是旧的(v3.0.2)。这是当您 sudo apt-get install r-base
不添加存储库时从 Ubuntu 存储库安装的版本。
如果我 ssh
进入框并手动 运行 sudo apt-get install r-base
它 会 安装最新版本的 R,尽管它没有解决了我的问题(即从 cran.rstudio.com 全自动安装 R v3.2.0),它确实证明了存储库的工作。
你能看出我做错了什么吗?为了创建一个可重现的示例,我将项目的当前状态放在 github: https://github.com/alexwoolford/vagrantR .
您似乎需要在应用程序包之前设置源。我没有对 ubuntu 做太多事情,但是从模块源代码来看,它似乎并没有自动要求源代码。
Puppet 不会按照清单中指定的顺序应用资源,而是可以按任何顺序应用它们。例外情况是当您指定两个资源之间的关系以对它们进行排序时。
例如,一种方法:
exec { "apt-update":
command => "/usr/bin/apt-get update",
require => Apt::Source['R']
}
我正在尝试使用 Puppet/Vagrant 为虚拟机配置:
- R v3.2.0(最新版)
- 一些R包(具体forecast, dplyr, RMySQL)
Vagrantfile
包含使用Puppet配置框:
Vagrant.configure(2) do |config|
config.vm.box = "ubuntu/trusty64"
config.vm.provision "puppet" do |puppet|
puppet.module_path = "modules"
end
config.vm.provider "virtualbox" do |vb|
vb.gui = true
vb.memory = "1024"
end
end
我的 default.pp
目前是这样的:
include apt
apt::key { 'cran':
id => 'E084DAB9',
server => 'keyserver.ubuntu.com',
}
apt::source { 'R':
comment => 'This is the apt repository for R - the language for statistical computing',
location => 'http://cran.rstudio.com/bin/linux/ubuntu/',
release => 'trusty/',
repos => '',
}
exec { "apt-update":
command => "/usr/bin/apt-get update"
}
Exec["apt-update"] -> Package <| |>
package { "r-base":
ensure => latest,
}
这成功地将 apt 密钥和文件 /etc/apt/sources.list.d/R.list
添加到包含以下内容的 VM:
# This file is managed by Puppet. DO NOT EDIT.
# This is the apt repository for R - the language for statistical computing
deb http://cran.rstudio.com/bin/linux/ubuntu/ trusty/
不幸的是,它安装的R版本是旧的(v3.0.2)。这是当您 sudo apt-get install r-base
不添加存储库时从 Ubuntu 存储库安装的版本。
如果我 ssh
进入框并手动 运行 sudo apt-get install r-base
它 会 安装最新版本的 R,尽管它没有解决了我的问题(即从 cran.rstudio.com 全自动安装 R v3.2.0),它确实证明了存储库的工作。
你能看出我做错了什么吗?为了创建一个可重现的示例,我将项目的当前状态放在 github: https://github.com/alexwoolford/vagrantR .
您似乎需要在应用程序包之前设置源。我没有对 ubuntu 做太多事情,但是从模块源代码来看,它似乎并没有自动要求源代码。
Puppet 不会按照清单中指定的顺序应用资源,而是可以按任何顺序应用它们。例外情况是当您指定两个资源之间的关系以对它们进行排序时。
例如,一种方法:
exec { "apt-update":
command => "/usr/bin/apt-get update",
require => Apt::Source['R']
}