Nix: компилируйте Vim с помощью Ruby

Я использую диспетчер пакетов Nix в OS X. Допустим, для аргументации у меня есть config.nix файл, который использует подобный шаблон, что позволяет мне без проблем установить vimEnv.

# ~/.nixpkgs/config.nix

{ pkgs }: {

  # Looking around I have seen overrides something along these lines...

  # nixpkgs.config.packageOverrides = pkgs: rec {
  #   vim = pkgs.vim_configurable.override {
  #     ruby = true;
  #    };
  #  };

  packageOverrides = super: let pkgs = super.pkgs; in with pkgs; rec {

    myEnv = pkgs.buildEnv {
      name = "myEnv";
      paths = [
        # ...snip
        vim
        # ...snip
      ];
    };

  };
}

Я знаю, что существуют сложные варианты поддержки подключаемых модулей .vimrc и vim с использованием Nix, переопределения параметров vim_configurable и т. Д. (например), и было бы неплохо найти время для этого в какой-то момент. Однако все, что я хочу сейчас сделать, это установить через Nix версию Vim, которая скомпилирована с поддержкой Ruby.

Каким будет самый простой или краткий способ добиться этого в моем config.nix?


person jhrr    schedule 31.03.2016    source источник


Ответы (2)


И после некоторого взлома вот простейшее решение, которое я нашел:

# ~/.nixpkgs/config.nix

{ pkgs }: {

  packageOverrides = super: let pkgs = super.pkgs; in with pkgs; rec {

    myVim = pkgs.vim_configurable.override {
      config.vim = {
        ruby = true;
      };
      ruby = ruby;
    };

    myEnv = pkgs.buildEnv {
      name = "myEnv";
      paths = [
        myVim
      ];
    };

  };
}

И установите его с помощью nix-env -i myEnv.

person jhrr    schedule 05.04.2016

Вы можете попробовать скомпилировать vim самостоятельно. Чтобы получить поддержку Ruby таким образом, все, что вам нужно сделать, это добавить флаг --rubyinterp при запуске ./configure

person benbot    schedule 31.03.2016
comment
Да, это правда, но на самом деле мне просто нужен способ сделать это с помощью Nix, так что он декларативен, и мне никогда не придется делать это вручную! - person jhrr; 31.03.2016