Аргументом директивы 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
для жирного синего цвета. текст.
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-shell
en el proyecto. Este paso también se puede automatizar utilizando el soporte nix de direnv. La instalación de ffi
a través de nix-env
no funciona porque no configura las variables NIX_CFLAGS_COMPILE
y NIX_LDFLAGS
que son necesarias para que ffi gem encuentre el encabezado/bibliotecas correctas durante la compilación.