установка пакетов windows only R в Ubuntu - PullRequest
1 голос
/ 16 января 2012

У меня есть пакет R, который мне нужно использовать. Рассматриваемая посылка: BQuant .

Пакет можно загрузить в виде zip-файла , который (я узнал позже) содержит двоичные файлы Windows. Сначала я попытался извлечь эти двоичные файлы и упаковать их в .tar.gz. И я установил пакет .tar.gz, используя install.packages ().

Это не дало никакой ошибки, но когда я попытался вызвать любую функцию из пакета R, я выдал ошибку: Error: could not find function <function_name>.

Итак, я нашел исходные файлы и попытался извлечь и перепаковать в .tar.gz. На этот раз во время установки была ошибка: **ERROR: Windows-only package**

Когда я проверил описание в исходных файлах , он сказал OS_type: windows. Я удалил эту строку и попробовал еще раз. На этот раз ошибка была:

gcc -std=gnu99 -shared -o BQuant.so dp.o -L/usr/lib/R/lib -lR
dp.o: file not recognized: File format not recognized
collect2: ld returned 1 exit status
make:  ***[BQuant.so] Error 1
ERROR: compilation failed for package ‘BQuant’

Итак, вкратце: Мне нужно знать, можно ли установить этот пакет Windows в Linux.

Ответы [ 2 ]

3 голосов
/ 16 января 2012

Я думаю, вам нужно немного изменить в файле 'BQuant \ R \ fcn_preproc.r'.

Этот файл загружает файл DLL, который является файлом только для Windows.

.First.lib <- function(lib, pkg) 
{
   library.dynam("BQuant.dll")
}

Вы можете попытаться добавить тест на основе платформы.

.First.lib <- function(lib, pkg) 
{
   if(.Platform$OS.type == 'windows'){
      library.dynam("BQuant.dll")
   }
   if(.Platform$OS.type == 'unix'){
      library.dynam("BQuant.so")
   }
}

Это может помочь. Также не забудьте изменить строку OS зависимого файла.

Чтобы попытаться скомпилировать файл .c, вы можете использовать эту команду из терминала.

R CMD SHLIB -o BQuant.so dc.c

Согласно: http://www.ats.ucla.edu/stat/r/library/interface.pdf и http://www.maths.lancs.ac.uk/~prangle/CinR/CinR.pdf

2 голосов
/ 16 января 2012

Насколько я вижу, для unix / linux нет объекта скомпилированного кода.Zip, на который вы ссылаетесь, на самом деле является просто двоичным файлом Windows, и в нем отсутствуют исходные коды, которые вам нужно будет скомпилировать в эквивалент BQuant.dll в Linux.Даже код R находится в «скомпилированной» форме, то есть не в виде обычного текста кода R.

Если у вас нет исходного кода, вы не сможете скомпилировать его для работы в Linux.Свяжитесь с сопровождающим, чтобы узнать, могут ли они предоставить правильный пакет с исходным кодом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...