Невозможно скомпилировать xps после установки ROOT, отсутствуют библиотеки

Я пытаюсь установить XPS в R, и установил ROOT из ЦЕРН.

во время компиляции я получаю:

TMLMath.cxx: 51: 19: фатальная ошибка: TMath.h: такого файла или каталога нет

#include "TMath.h" ^
компиляция прекращена.
make: *** [TMLMath.o] Ошибка 1
ОШИБКА: ошибка компиляции для пакета "xps"

Я попытался добавить этот файл вручную, затем потребовался другой файл, затем еще один, … пока в ошибке не были просто пропущены файлы, но все было переопределено (см. заметки здесь) и снова скомпилировать не удалось.

Мои детали ROOT:

Версия 5.34 / 14 16 декабря 2013 г.
ROOT 5.34 / 14 (head / v5-34-00-patches @ v5-34-13-131-gd110ad3, 07 января 2014 г., 00:12:00 на linuxx8664gcc)

CINT / ROOT C / C ++ Версия переводчика 5.18.00, 2 июля 2010 г.
где корень
root: / usr / bin / root /usr/bin/root.exe / etc / root / usr / bin / X11 / root /usr/bin/X11/root.exe / usr / include / root / usr / share / root /usr/share/man/man1/root.1.gz

Я пытался make uninstall на только что загруженной версии root и, возможно, неприятно, что он ничего не сделал (я удалил папку, которую я изначально makeг)

Я предполагаю, что, возможно, версия ROOT, которую я имею, пропускает некоторые из них, потому что xps опирается на более старую версию ROOT? Однако в руководстве приведена очень недавняя дата, так что это не так, как пренебрегаемое программное обеспечение (если я правильно понимаю) …

ROOT установлен нормально, и все предпосылки я смог найти были установлены:

sudo apt-get установить build-essential dpkg-dev make g ++ gcc binutils libx11-dev libxpm-dev libxft-dev libxext-dev gfortran libssl-dev libpcre3-dev libglu1-mesa-dev libglew-dev libftgl-dev libmysqlclient-dev libfftw3 dev libcfitsio3-dev graphviz-dev libavahi-compat-libdnssd-dev libldap2-dev python-dev libxml2-dev libkrb5-dev libgsl0-dev libqt4-dev xfs xfstt t1-xfree86-несвободный ttf-xfree86-несвободный free-tf86 syriac xfonts-75dpi xfonts-100dpi

Буду признателен за любую помощь, пожалуйста, дайте мне знать, если я должен предоставить более подробную информацию о моей системе.

Полный выход из установки Bioconductor:

> biocLite ('xps')
BioC_mirror: http://bioconductor.org
Использование Bioconductor версии 3.0 (BiocInstaller 1.16.1), версия R 3.1.2.
Установка пакета (ов) 'xps'
пробуя URL 'http://bioconductor.org/packages/3.0/bioc/src/contrib/xps_1.26.0.tar.gz'
Тип контента 'application / x-gzip' длина 6669399 байт (6,4 Мб)
открытый URL
==================================================
скачал 6,4 Мб

* установка * исходного * пакета "xps" ...
проверка на gcc ... gcc -std = gnu99
проверка имени выходного файла компилятора C по умолчанию ... a.out
проверка работоспособности компилятора C ... да
проверяем, кросс-компилируем ли мы ... нет
проверка суффикса исполняемых файлов ...
проверка суффикса объектных файлов ... o
проверяем, используем ли мы компилятор GNU C ... да
проверка, принимает ли gcc -std = gnu99 -g ... да
проверка опции gcc -std = gnu99 для принятия ANSI C ... ничего не нужно
проверка того, как запустить препроцессор C ... gcc -std = gnu99 -E
проверка на gcc ... (кэшируется) gcc -std = gnu99
проверяем, используем ли мы компилятор GNU C ... (кэшировано) да
проверка, принимает ли gcc -std = gnu99 -g ... (кэшировано) да
проверка на наличие опции gcc -std = gnu99 для принятия ANSI C ... (кэшировано), не требуется
нашел ROOT версии 5.34 / 14 в каталоге / usr
** libs
** арка -
g ++ -I / usr // include -O2 -Wall -fPIC -pthread -m64 -I / usr / include / root -c TMLMath.cxx
TMLMath.cxx: 51: 19: фатальная ошибка: TMath.h: такого файла или каталога нет
#include "TMath.h" ^
компиляция прекращена.
make: *** [TMLMath.o] Ошибка 1
ОШИБКА: ошибка компиляции для пакета "xps"
* удаление ho /home/louis/R/x86_64-pc-linux-gnu-library/3.1/xps ’

Загруженные исходные пакеты находятся в
«/ TMP / RtmpZVOlbW / downloaded_packages»
Предупреждающее сообщение:
В install.packages (pkgs = pkgs, lib = lib, repos = repos, ...):
установка пакета "xps" имела ненулевой статус выхода

Редактировать: Я следил за изменениями ROOTSYS перед запуском R:

export ROOTSYS = / usr /
экспорт "PATH = $ ROOTSYS / bin: $ PATH"

Я изначально использовал ROOTSYS=/usr/include/root, где я нахожу программу с whereis root, Это дает другую ошибку, однако — /usr/bin/root/include not a directory, Следовательно, используя ROOTSYS=/usr

> источник ("http://bioconductor.org/biocLite.R")
Биокондуктор версии 3.0 (BiocInstaller 1.16.1),? BiocLite за помощь
> biocLite ('xps')
BioC_mirror: http://bioconductor.org
Использование Bioconductor версии 3.0 (BiocInstaller 1.16.1), версия R 3.1.2.
Установка пакета (ов) 'xps'
пробуя URL 'http://bioconductor.org/packages/3.0/bioc/src/contrib/xps_1.26.0.tar.gz'
Тип контента 'application / x-gzip' длина 6669399 байт (6,4 Мб)
открытый URL
==================================================
скачал 6,4 Мб

* установка * исходного * пакета "xps" ...
проверка на gcc ... gcc -std = gnu99
проверка имени выходного файла компилятора C по умолчанию ... a.out
проверка работоспособности компилятора C ... да
проверяем, кросс-компилируем ли мы ... нет
проверка суффикса исполняемых файлов ...
проверка суффикса объектных файлов ... o
проверяем, используем ли мы компилятор GNU C ... да
проверка, принимает ли gcc -std = gnu99 -g ... да
проверка опции gcc -std = gnu99 для принятия ANSI C ... ничего не нужно
проверка того, как запустить препроцессор C ... gcc -std = gnu99 -E
проверка на gcc ... (кэшируется) gcc -std = gnu99
проверяем, используем ли мы компилятор GNU C ... (кэшировано) да
проверка, принимает ли gcc -std = gnu99 -g ... (кэшировано) да
проверка на наличие опции gcc -std = gnu99 для принятия ANSI C ... (кэшировано), не требуется
нашел ROOT версии 5.34 / 14 в каталоге / usr
** libs
** арка -
g ++ -I / usr / bin / root / include -O2 -Wall -fPIC -pthread -m64 -I / usr / include / root -c TMLMath.cxx
cc1plus: ошибка: / usr / bin / root / include: не каталог
make: *** [TMLMath.o] Ошибка 1
ОШИБКА: ошибка компиляции для пакета "xps"
* удаление ho /home/louis/R/x86_64-pc-linux-gnu-library/3.1/xps ’

Загруженные исходные пакеты находятся в
«/ TMP / Rtmpc9EO9W / downloaded_packages»
Предупреждающие сообщения:
1: В пакетах install.packages (pkgs = pkgs, lib = lib, repos = repos, ...):
установка пакета "xps" имела ненулевой статус выхода
2: установленный каталог недоступен для записи, не может обновить пакеты 'maptools'

0

Решение

Как указано в комментариях выше, ROOT был установлен неправильно — мне просто связался кто-то с той же проблемой, думая, что она не решена (я оставил примечания по решению Вот а не по этому вопросу). Я знаю С.О. Политика заключается в том, чтобы включать исправление, а не ссылку, поэтому я вставляю его ниже разделителя следующего раздела. В предположении я бы сказал, что совет, данный для использования v5.34.24, а не для производства, все еще должен применяться (возможно, он будет где-то указан, или кто-то может снова связаться с сопровождающим). [Я вынул раздел о ручном исправлении, которое не работало]


Предпосылки

(С помощью Блог Елены Граверини)

Предпосылки:

sudo apt-get install build-essential git subversion dpkg-dev make g++ gcc binutils libx11-dev libxpm-dev libxft-dev libxext-dev

Необязательные (рекомендуемые) предпосылки:

sudo apt-get install gfortran libssl-dev libpcre3-dev libglu1-mesa-dev libglew-dev libftgl-dev libmysqlclient-dev libfftw3-dev libcfitsio3-dev graphviz-dev libavahi-compat-libdnssd-dev libldap2-dev python-dev libxml2-dev libkrb5-dev libgsl0-dev libqt4-dev

Установите сервер шрифтов и шрифты для ROOT:

sudo apt-get установить xfs xfstt
sudo apt-get установить t1-xfree86-несвободный ttf-xfree86-несвободный ttf-xfree86-несвободный-сирийский xfonts-75dpi xfonts-100dpi

Монтаж

  • Найти профессиональный (производственный) номер версии на root.cern.ch
    • Разработчик xps рекомендует 5.34.24 по состоянию на 4 февраля 2015 г.
  • Получить source.tar.gz файл в ftp://root.cern.ch/root/root_v5.34.24.source.tar.gz
  • Не устанавливать в /usr/ каталог (xps совет разработчика по электронной почте), как предлагают многие доступные руководства
gzip -dc root_v5.34.24.source.tar.gz | tar -xf -
Mv root ~
cd ~ / root
./configure --all
сделать -j N

где N — количество ядер процессора на вашей машине (cat /proc/cpuinfo | grep 'cpu cores')

  • Для Ubuntu 14.04 запустите:
    sudo mkdir /usr/include/freetype && sudo cp /usr/include/freetype2/freetype.h /usr/include/freetype/freetype.h

    • Если вы деинсталлируете, не забудьте вынуть это тоже

Удаление версии ROOT для Ubuntu разрешает ld ошибки в make

sudo apt-get purge root-system root-system-bin root-system-common
export ROOTSYS=/home/louis/root

Перезапуск make с конфигом как ./configure --prefix=/home/louis/ работает

  • Я думаю, что флаг префикса эквивалентен установке ROOTSYS переменная перед make (Я использовал несколько направляющих и забыл установить его, но он работал независимо)
  • Установка CERN ROOT со страницы источника отмечает, что make install это «NOOP«… но он не установлен, если вы не запустите это после makeтак или иначе сделай это

Последний шаг — добавить $ ROOTSYS / bin в PATH — добавить source ~/bin/thisroot.sh на ваш ~/.bashrc (при условии, что ваш .bashrc уже получен в новых терминалах)

  • Для меня, ROOTSYS сейчас установлен в снарядах. Xps README предлагает вам установить его, но PATH нет, поэтому я добавил следующее в мой .bashrc:
экспорт PATH = $ ROOTSYS / bin: $ PATH
экспорт LD_LIBRARY_PATH = $ ROOTSYS / lib: $ LD_LIBRARY_PATH

ROOT должен быть в рабочем состоянии и способен компилировать xps

  • По какой-то причине LD_LIBRARY_PATH не устанавливается, а PATH …? .bashrc в остальном все работает как положено
cd $ ROOTSYS / tutorials`
корень
root [0] .x demos.C

Если ошибки не появляются, ROOT работает.

Установка xps

Я ожидаю, что biocLite (‘xps’) потерпит неудачу, так как двоичный файл был создан с ROOT v.5.34.05 … но сопровождающий рекомендовал v5.34.24, так что попробуйте все равно:

источник ( "http://bioconductor.org/biocLite.R")
biocLite ( "РФЭС")

и это работает 🙂

  • Также возможно скачать с источника и обойти Bioconductor, запустив R CMD INSTALL xps_1.26.0.tar.gz
  • RootTalk Дискуссионные форумы (включая ROOT Поддержка Форум): https://root.cern.ch/phpBB3/
0

Другие решения