【问题标题】:How do you add a local R package using Nix package manager如何使用 Nix 包管理器添加本地 R 包
【发布时间】:2019-04-09 21:11:43
【问题描述】:

假设我有一个位于 /home/placey/messyverse.tar.gz 的本地 R 包

我想启动一个包含我的包和 ggplot 的 nix shell。我该怎么做?

【问题讨论】:

    标签: r nix


    【解决方案1】:

    首先,我们需要创建一个 nix 包,其中包含本地包的必要信息。

    就这样吧

    messverse.nix

    with import <nixpkgs> {};
    
    {
      messverse = rPackages.buildRPackage rec {
          name = "messverse";
          version = "0.1";
          src = /home/placey/messverse.tar.gz;
          buildInputs = with rPackages; [
            R
            stringr
          ];
      };
    }
    

    然后在同一个文件夹中,我们将创建 default.nix 来定义 nix shell 所需的内容。

    default.nix

    with import <nixpkgs> {};
    with import ./messyverse.nix;
    {
        myProject = stdenv.mkDerivation {
          name = "myProject";
          version = "1";
          src = if pkgs.lib.inNixShell then null else nix;
    
          buildInputs = with rPackages; with messyverse; [
            R
            ggplot2
            messyverse
          ];
        };
    }
    

    现在我们可以执行 nix-shell .

    我们有一个外壳,其中包含 R 和我们本地指定的 R 包!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-03-30
      • 2019-07-19
      • 1970-01-01
      • 2018-05-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多