如何使用Nix包管理器添加本地R包

问题描述 投票:2回答:1

假设我有一个生活在/home/placey/messyverse.tar.gz的本地R套餐

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

r nix
1个回答
2
投票

首先,我们需要创建一个包含本地包的必要信息的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包的shell!

© www.soinside.com 2019 - 2024. All rights reserved.