私は長い間Rubyマニアでした。 FFIのインストールを防ぐために何が欠けているのかわかりません。
以下はファイルのエラーですmake.out
(名前が好きです):
make[3]: *** [Makefile:1048: libffi_convenience.la] Error 1
make[3]: Leaving directory '/home/dw/.gem/ruby/2.4.0/gems/ffi-1.9.23/ext/ffi_c/libffi-x86_64-linux'
make[2]: *** [Makefile:1309: all-recursive] Error 1
make[2]: Leaving directory '/home/dw/.gem/ruby/2.4.0/gems/ffi-1.9.23/ext/ffi_c/libffi-x86_64-linux'
make[1]: *** [Makefile:617: all] Error 2
make[1]: Leaving directory '/home/dw/.gem/ruby/2.4.0/gems/ffi-1.9.23/ext/ffi_c/libffi-x86_64-linux'
make: *** [libffi.mk:9: "/home/dw/.gem/ruby/2.4.0/gems/ffi-1.9.23/ext/ffi_c/libffi-x86_64-linux"/.libs/libffi_convenience.a] Error 2
make failed, exit code 2
nixpkgsを確認して動作することを確認libffi-3.2.1
しましたpure-ffi-0.14
。どちらもインストールしました。それでもエラーが発生します。
答え1
最初のオプションは、次を使用することです。ブンディックス。グローバルオーバーライドファイルを使用してシステムの依存関係を注入します。https://github.com/NixOS/nixpkgs/blob/master/pkgs/development/ruby-modules/gem-config/default.nix
以下を含む最も重要な宝石がそこにあります。フェイペイインストールしたいgemです。
bundixが望ましくないか使用できない場合、代替は正しいビルド環境を提供するnix-shellです。
ffi gem の場合、 nixpkgs の gem-config からコードを借りることもできます。
with import <nixpkgs> {};
stdenv.mkDerivation {
name = "env";
buildInputs = [
ffi pkgconfig
];
}
nix-shell
その後、プロジェクトで実行します。この手順はdirenvのnixサポートを使用して自動化することもできます。コンパイル中に正しいヘッダー/ライブラリを見つけるために必要なffi gemと変数を設定しなかったため、ffi
viaインストールは機能しません。nix-env
NIX_CFLAGS_COMPILE
NIX_LDFLAGS