假设我有一个本地R包,它位于JOINing
我想启动一个nix外壳,其中包含我的软件包以及ggplot。我该怎么办?
答案 0 :(得分:2)
首先,我们需要创建一个nix软件包,其中包含本地软件包的必要信息。
让我们称呼它
/home/placey/messyverse.tar.gz
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
];
};
}
来定义nix shell所需的内容。
default.nix
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
];
};
}
我们有一个包含R和我们本地指定的R包的外壳!