Пакет Conda build R завершается неудачно при проблеме компилятора C в MacOS Mojave
Я пытаюсь установить пакет R под названием TreatSens с Conda, чтобы использовать его в ноутбуке Jupyter. Команды, которые я выполнил:
conda install conda-build
conda skeleton cran treatSens
conda build r-treatsens
conda install -c local r-treatsens
И я получил ошибку о компиляторе C
* installing *source* package ‘dbarts’ ...
** package ‘dbarts’ successfully unpacked and MD5 sums checked
checking for gcc... x86_64-apple-darwin13.4.0-clang
checking whether the C compiler works... no
configure: error: in `/Users/myusername/anaconda3/conda-bld/r-dbarts_1543961434509/myenvname':
configure: error: C compiler cannot create executables
See `config.log' for more details
ERROR: configuration failed for package ‘dbarts’
Моя версия лязга:
clang version 4.0.1 (tags/RELEASE_401/final)
Target: x86_64-apple-darwin18.2.0
Thread model: posix
InstalledDir: /Users/myusername/anaconda3/envs/myenvname/bin
Смотря в файл config.log я вижу
configure:3570: x86_64-apple-darwin13.4.0-clang -V >&5
clang-4.0: error: argument to '-V' is missing (expected 1 value)
clang-4.0: error: no input files
configure:3581: $? = 1
configure:3570: x86_64-apple-darwin13.4.0-clang -qversion >&5
clang-4.0: error: unknown argument: '-qversion'
clang-4.0: error: no input files
configure:3581: $? = 1
configure:3601: checking whether the C compiler works
configure:3623: x86_64-apple-darwin13.4.0-clang -march=core2 -mtune=haswell -mssse3 -ftree-vectorize -fPIC -fPIE -fstack-protector-strong -O2 -pipe -I/Users/myusername/anaconda3/envs/work/conda-bld/r-dbarts_1543961045662/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehol/include -fdebug-prefix-map=/Users/myusername/anaconda3/envs/work/conda-bld/r-dbarts_1543961045662/work=/usr/local/src/conda/r-dbarts-0.9_5 -fdebug-prefix-map=/Users/myusername/anaconda3/envs/work/conda-bld/r-dbarts_1543961045662/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehol=/usr/local/src/conda-prefix -D_FORTIFY_SOURCE=2 -mmacosx-version-min=10.9 -I/Users/myusername/anaconda3/envs/work/conda-bld/r-dbarts_1543961045662/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehol/include -Wl,-pie -Wl,-headerpad_max_install_names -Wl,-dead_strip_dylibs -Wl,-rpath,/Users/myusername/anaconda3/envs/work/conda-bld/r-dbarts_1543961045662/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehol/lib -L/Users/myusername/anaconda3/envs/work/conda-bld/r-dbarts_1543961045662/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehol/lib conftest.c >&5
ld: warning: ignoring file /Library/Developer/CommandLineTools/SDKs/MacOSX10.14.sdk/usr/lib/libSystem.tbd, file was built for unsupported file format ( 0x2D 0x2D 0x2D 0x20 0x21 0x74 0x61 0x70 0x69 0x2D 0x74 0x62 0x64 0x2D 0x76 0x33 ) which is not the architecture being linked (x86_64): /Library/Developer/CommandLineTools/SDKs/MacOSX10.14.sdk/usr/lib/libSystem.tbd
ld: dynamic main executables must link with libSystem.dylib for architecture x86_64
clang-4.0: error: linker command failed with exit code 1 (use -v to see invocation)
Кажется, это проблема сборки Conda с использованием определенной версии компилятора Apple C. Я предполагаю, что мне нужно настроить компилятор C для сборки conda. Так что мой вопрос становится
- Какая правильная версия GCC мне нужна.
- Как установить его для сборки conda.
0 ответов
В качестве быстрого и грязного обходного пути (из этого комментария) я смог установить пакеты в R, используя приведенный ниже код в RStudio (открытый в conda env)
Sys.setenv(CONDA_BUILD_SYSROOT="/")
Теперь вы можете установить любой пакет R через консоль RStudio, например
install.packages("tidyverse")
Надеюсь это поможет.
Есть несколько вещей, которые вы должны сделать, чтобы правильно построить вещи в MacOS Mojave. По таинственным для меня причинам, люди Anaconda не стремятся сделать это гладко, что особенно невыносимо для тех из нас, кто использует эзотерические R-пакеты. Я напишу то, что кажется текущим по состоянию на 2019-04-20:
1. Установите Xcode (v10.2.1)
2. Установите заголовки в месте, где открытый исходный код склонен ожидать их нахождения. Из командной строки:
open /Library/Developer/CommandLineTools/Packages/macOS_SDK_headers_for_macOS_10.14.pkg
3. Установите инструменты командной строки
- По мере приближения пояса и брекетов я скачал и установил DMG
Command_Line_Tools_macOS_10.14_for_Xcode_10.2.1
с https://developer.apple.com/download/more/ - Я считаю, что это также то, что делается
xcode-select --install
, Если вы выполните эту команду, вы должны увидеть сообщение
xcode-select: error: command line tools are already installed, use "Software Update" to install updates
4. Загрузите копию старых файлов MacOS SDK. Например, отсюда
5. Создайте каталог /opt
sudo mkdir /opt
6. Скопируйте туда файлы SDK
sudo cp -r ~/Downloads/MacOSX10.9.sdk /opt/
sudo chmod -R a+rX /opt
7. Создайте conda_build_config.yaml
файл, на который ссылается Conda-build и соответствующее программное обеспечение. Он должен содержать следующее
macos_min_version: - 10.9 macos_machine: - x86_64-apple-darwin13.4.0 MACOSX_DEPLOYMENT_TARGET: - 10.9 CONDA_BUILD_SYSROOT: # [osx] - /opt/MacOSX10.9.sdk # [osx]
В терминале вы можете сделать это с:
mkdir ~/.conda || echo 'Dir already present'
cat "macos_min_version:" >> ~/.conda/conda_build_config.yaml
cat " - 10.9" >> ~/.conda/conda_build_config.yaml
cat "macos_machine:" >> ~/.conda/conda_build_config.yaml
cat " - x86_64-apple-darwin13.4.0" >> ~/.conda/conda_build_config.yaml
cat "MACOSX_DEPLOYMENT_TARGET:" >> ~/.conda/conda_build_config.yaml
cat " - 10.9" >> ~/.conda/conda_build_config.yaml
cat "CONDA_BUILD_SYSROOT:" >> ~/.conda/conda_build_config.yaml
cat " - /opt/MacOSX10.9.sdk" >> ~/.conda/conda_build_config.yaml
8. Сообщите Конде о своем файле YAML через .condarc
, Он должен содержать строки:
conda_build: config_file: ~/.conda/conda_build_config.yaml
что может быть достигнуто с помощью
cat "conda_build:" >> ~/.condarc
cat " config_file: ~/.conda/conda_build_config.yaml" >> ~/.condarc