#r #nix
#r #nix
Вопрос:
Допустим, у меня есть локальный R-пакет, который находится в /home/placey/messyverse.tar.gz
Я хотел бы запустить оболочку nix, которая содержит мой пакет, а также ggplot. Как мне это сделать?
Ответ №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.
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 amp; наш локально указанный R-пакет!