r - 如何通过configuration.nix安装R和软件包以及如何从github添加软件包?

标签 r nixos

两个相关问题:
1. 如何在configuration.nix中安装R和选定的软件包?
2. 如何不仅从 CRAN 添加包,还从 Gitub 或至少本地存储添加包?

在 wiki 中,您将找到类似安装 R 软件包的说明。 https://github.com/NixOS/nixpkgs/blob/master/doc/languages-frameworks/r.section.md 。使用 nix-shell 时可以正常工作,但我在尝试从 configuration.nix 进行安装时遇到了困难。

关于构建 R 包,我发现了这个关于构建包的示例:

let
  pkgs = import <nixpkgs> {};
  buildRPackage = import <nixpkgs/pkgs/development/r-modules/generic-builder.nix> pkgs.R;
 in
 with pkgs.rPackages;
 {
   foobar = buildRPackage {
     name = "your-package-name-1.0";
     src = ./.;
     propagatedBuildInputs = [/* required dependencies go here */];
   };
 }

The command "nix-build . -A foobar" would then compile it.

但想从configuration.nix运行所有内容,以便将机器配置集中在一处。

最佳答案

好的,在上面的Bulats指针的帮助下,我设法找到了解决方案。在这里找到了完整的示例:https://github.com/NixOS/nixpkgs/issues/44290

为了将来引用,这里是在configuration.nix中内联添加来自CRAN和Github的r包的一种方法:

environment.systemPackages = with pkgs;
   [(pkgs.rWrapper.override {
     packages = with pkgs.rPackages; let
       llr = buildRPackage {
       name = "llr";
       src = pkgs.fetchFromGitHub {
        owner = "dirkschumacher";
        repo = "llr";
        rev = "0a654d469af231e9017e1100f00df47bae212b2c";
        sha256 = "0ks96m35z73nf2sb1cb8d7dv8hq8dcmxxhc61dnllrwxqq9m36lr";};
     propagatedBuildInputs = [ rlang  knitr];
     nativeBuildInputs = [ rlang knitr ];};
    in [knitr
        rlang
        llr
        tidyverse
        ## the rest of your R packages here
        devtools];})
    pkgs.postgresql
    pkgs.isync
    pkgs.msmtp
    pkgs.notmuch
    gnupg
    ## the rest of your Nixos packages (derivations) here
    ];

关于r - 如何通过configuration.nix安装R和软件包以及如何从github添加软件包?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55176609/

相关文章:

r - 如何在 direct.label 中更改字体大小?

r - R 包 googleVis 中 gvisTimeline 的自定义工具提示

r - 为元分析森林图添加标题

R 运行引号中的文本

nix - 如何在家庭管理器中使用覆盖从不稳定安装 jbake

nix - 编写本地 nix 包

R - ggplot2 - 如何在 POSIX 轴上使用限制?

nix - <nixpkgs> 字符串/值在 Nix 中是什么意思?

linux - 在 NixOS 上即时更改 X11 dpi

python - 如何使用 nix-shell 启用可选的构建依赖项?