Ruby на NixOS - Ошибка установки FFI Gem при сборке собственных расширений

Аргументом директивы LS_COLORS является строка, которая записывается в терминал как часть escape-последовательности. При отображении имени файла ls записывает \ e [, затем строку, связанную с типом файла, затем m , затем имя файла, затем ] \ e [0m (где \ e представляет собой escape-символ). Это escape-последовательность, которая сообщает xterm и совместимым терминалам (которых в настоящее время большинство из них) изменить цвета и другие текстовые атрибуты ( CSI Pm m в документации ]. ls не заботится о том, что означает последовательность символов или сколько точек с запятой она содержит.

Старые терминалы поддерживали только 8 цветов переднего плана, обозначенных числами от 30 до 37. Терминалы, поддерживающие больше цветов используйте escape-последовательность \ e [38; 5; Ps m , где Ps - номер цвета, или \ e [38; 2; Pr ; Pg ; Pb m , где Pr , Pg , Pb являются значениями RGB. Их можно комбинировать с другими атрибутами, например \ e38; 5; 61; 1m или \ e38; 2; 95; 95; 175; 1m для жирного синего цвета. текст.

1
28.04.2018, 15:26
1 ответ

La ​​primera opción es usar bundix . Utiliza un archivo de anulación global para inyectar dependencias del sistema:https://github.com/NixOS/nixpkgs/blob/master/pkgs/development/ruby-modules/gem-config/default.nix

Las gemas más importantes se deben encontrar allí, incluida la gema ffi , que está intentando instalar.

Si no quiere/no puede usar bundix, la alternativa es un shell nix -que le brinda el entorno de compilación correcto.

Para la gema ffi, también puede tomar prestado el código de la gema de nixpkgs -config:

with import <nixpkgs> {};
stdenv.mkDerivation {
  name = "env";
  buildInputs = [
    ffi pkgconfig
  ];
}

Luego simplemente ejecute nix-shellen el proyecto. Este paso también se puede automatizar utilizando el soporte nix de direnv. La instalación de ffia través de nix-envno funciona porque no configura las variables NIX_CFLAGS_COMPILEy NIX_LDFLAGSque son necesarias para que ffi gem encuentre el encabezado/bibliotecas correctas durante la compilación.

0
28.01.2020, 00:36

Теги

Похожие вопросы