В настоящее время по умолчанию и последним Ruby in Nix является 2.2.2-p0. Когда я запускаю nix-env -qaP ruby
, он возвращает список, в котором говорится, что эта рубиновая версия доступна через nixpkgs.ruby
. Я ожидаю, что эта рубиновая ссылка изменится, чтобы оставаться в курсе последних версий Ruby. Нет никакой опции nixpkgs.ruby_2_2_2, чтобы использовать ее для обеспечения моей рубиновой версии.Обеспечьте версию Ruby в среде Nix Dev при использовании последней версии
Однако, глядя на файл определения .nix в https://github.com/NixOS/nixpkgs/blob/master/pkgs/development/interpreters/ruby/ruby-2.2.2.nix, я вижу, что они указывают ревизию в этом скрипте.
Так что мне интересно, есть ли какой-то способ для меня указать ревизию пакета Nix, который я хочу, когда я перечислю его в buildInputs
моего выражения Nix для создания среды разработки (к которой будут доступны через nix-shell .
)? Или есть что-то еще, что я мог бы сделать, что позволило бы мне убедиться, что Ruby 2.2.2-p0 используется для установки, а не только последний Ruby, который может измениться?
Текущий сценарий:
let
pkgs = import <nixpkgs> {};
in with pkgs; {
rubyEnv = stdenv.mkDerivation rec {
name = "ruby-env";
version = "0.1";
src = ./.;
buildInputs = [
stdenv
ruby
bundler_HEAD
];
};
}
я не видел это описано в документации к на http://nixos.org/nix/manual/#chap-writing-nix-expressions
Ах, хорошо, что имеет смысл, если предположить, вы имели в виду ruby_2_2 является совмещенным 2.2.2 вместо 2.2.0. – josiah
Спасибо за указание, я исправил опечатку. – Eric