Я пытаюсь создать внутренний проект Haskell на NixOS с помощью cabal2nix. Он является оболочкой (и, следовательно, зависит от) сторонней библиотеки, которую в Ubuntu можно построить, wget
установив исходный код, а затем запустив make && make install && ldconfig
. Таким образом, когда Cabal приступает к созданию программы, он, по-видимому, может найти соответствующие файлы заголовков (которые находятся в /usr/local/include/ta-lib
или /usr/include/ta-lib
).
На Nix процесс, как я понимаю, состоит в том, чтобы настроить файл .nix, чтобы указать, как получить и собрать исходный код, а затем Nix настраивает изолированные среды сборки. Когда я это делаю, сторонняя библиотека извлекается и собирается соответствующим образом.
Когда Nix запускает этап настройки, все выглядит нормально:
configureFlags: --verbose --prefix=/nix/store/fwpw03bd0c2m5yb7v2wc7g6f0qj912ra-talib-0.1.0.0 --libdir=$prefix/lib/$compiler --libsubdir=$pkgid --with-gcc=gcc --package-db=/tmp/nix-build-talib-0.1.0.0.drv-0/package.conf.d --ghc-option=-optl=-Wl,-rpath=/nix/store/fwpw03bd0c2m5yb7v2wc7g6f0qj912ra-talib-0.1.0.0/lib/ghc-7.10.2/talib-0.1.0.0 --enable-split-objs --disable-library-profiling --disable-executable-profiling --enable-shared --enable-library-vanilla --enable-executable-dynamic --enable-tests --extra-include-dirs=/nix/store/gvglncjgd5yif9bc03qalmp2mrjp524n-ta-lib-0.4.0/include --extra-lib-dirs=/nix/store/gvglncjgd5yif9bc03qalmp2mrjp524n-ta-lib-0.4.0/lib
При установке --extra-include-dirs
и --extra-lib-dirs
на правильные пути в магазине Nix. Однако, когда он идет на сборку, он жалуется,
Setup: Missing dependency on a foreign library:
* Missing C library: ta_lib
К сожалению, я не понимаю, как клика определяет, присутствует ли иностранная библиотека. Я читал здесь (Haskell, как разрешить ошибку клики : Отсутствуют зависимости от сторонних библиотек?) эта группа попытается создать и связать программу C, состоящую из каждого найденного заголовка. Итак, почему-то он не находит правильную библиотеку.
Что случилось? Связано ли это с запуском ldconfig в Ubuntu?
ta-lib
? Не могу найти в Nixpkgs. - person Peter Simons   schedule 05.01.2016