Как создать псевдоним пакета для pkg-config?

Я получаю такую ​​ошибку:

Configuring cpython-3.4.0...
Cabal-simple_mPHDZzAJ_1.24.2.0_ghc-8.0.2: The pkg-config package 'python-3.4'
is required but it could not be found.

когда я запускаю (эти специфичные для Haskell детали могут не иметь значения) stack build в ходе настройки среды Stack для тестирования модуля Haskell CPython.

Я установил Python 3.4 через Nix. Никс выбрал команду python3.4, поэтому я сделал псевдоним от python-3.4 до python3.4 (добавив строку alias python-3.4=python3.4 в мой .bashrc файл). Но pkg-config по-прежнему дает мне ту же ошибку.

Я использую KUbuntu (это Ubuntu с KDE) версии 16.04.

--

Согласно комментарию г-на Грейсона, переменная $ PKG_CONFIG_PATH кажется пустой:

jeff@jbb-lenovo:/nix$ echo $PKG_CONFIG_PATH

jeff@jbb-lenovo:/nix$ 

Вот путь и содержимое python-3.4.pc:

jeff@jbb-lenovo:/nix$ find . -name "python-3.4.pc"
./store/q5p46zmky5z6w54bh8gaqbgwkdbqk4qg-python3-3.4.7/lib/pkgconfig/python-3.4.pc
jeff@jbb-lenovo:/nix$ cat ./store/q5p46zmky5z6w54bh8gaqbgwkdbqk4qg-python3-3.4.7/lib/pkgconfig/python-3.4.pc
# See: man pkg-config
prefix=/nix/store/q5p46zmky5z6w54bh8gaqbgwkdbqk4qg-python3-3.4.7
exec_prefix=${prefix} libdir=${exec_prefix}/lib
includedir=${prefix}/include

Name: Python
Description: Python library
Requires: 
Version: 3.4
Libs.private: -lpthread -ldl -lcrypt -lncurses -lutil
Libs: -L${libdir} -lpython3.4m
Cflags: -I${includedir}/python3.4m

person Jeffrey Benjamin Brown    schedule 25.10.2017    source источник
comment
Как вы сделали псевдоним? Можете ли вы опубликовать содержимое и полный путь к вашему python-3.4.pc файлу, а также полное содержимое $PKG_CONFIG_PATH?   -  person David Grayson    schedule 25.10.2017
comment
Это опубликовано. Спасибо, мистер Грейсон!   -  person Jeffrey Benjamin Brown    schedule 25.10.2017
comment
Похоже, вы просто запускаете stack build в обычной оболочке Ubuntu, а не внутри nix-shell или в сборщике для производных, созданных с nix-build. Общий способ создания программного обеспечения с помощью Nix - это составить выражение для его производной и запустить nix-build для построения этой производной. Зависимости не устанавливаются (это проблема пользовательской среды), они добавляются в список buildInputs в аргументах к stdenv.mkDerivation.   -  person David Grayson    schedule 25.10.2017
comment
Установка чего-либо в вашей пользовательской среде действительно предназначена для готовых частей программного обеспечения, а не для библиотек, которые вы собираетесь использовать для создания другого программного обеспечения.   -  person David Grayson    schedule 25.10.2017
comment
Я не пытался использовать Nix ни для чего, кроме установки Python 3.4. Вы имеете в виду, что если я это сделаю, мне также придется использовать Nix для Stack?   -  person Jeffrey Benjamin Brown    schedule 26.10.2017
comment
Возможно, вам удастся заставить это странное устройство работать, если вы правильно установите PKG_CONFIG_PATH, но это просто похоже на проблему. Было бы более нормально установить Python с помощью apt-get, если ваша стековая утилита не принадлежит Nix.   -  person David Grayson    schedule 26.10.2017


Ответы (1)


Вам нужно переместить файл python-3.4.pc в один из каталогов, в котором pkg-config будет искать.

Чтобы увидеть поиск по всем каталогам:

$ pkg-config --variable pc_path pkg-config

Затем поместите файл в одну из перечисленных папок.

person phage    schedule 28.03.2018