системные зависимости пакета R без рут-доступа - PullRequest
2 голосов
/ 24 мая 2011

Я разрабатываю пакет R, который имеет системные зависимости (большая часть пакета находится на C ++), и изучаю лучшие практики для распространения.Я считаю, что нет никакого способа распространять системные пакеты с пакетом R.Кажется, в последнее время этой проблеме уделяется внимание в этой теме .

Предположим, что пользователь не имеет root-доступа и использует локальную установку R. Каков наилучший способ получить эти пакеты локально?Это так же просто, как загрузить общие библиотеки и добавить их в $ R_HOME / Libraries?Или им лучше загрузить зависимости в локальную папку и установить LD_LIBRARY_PATH?

Я довольно плохо знаком с R, поэтому мне интересно, есть ли «предпочтительное» решение для наилучшего взаимодействия с конечным пользователем.

Ответы [ 3 ]

1 голос
/ 24 мая 2011

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

Изобретать способ развертывания разделяемых библиотек лучше всего оставить операционной системе, дистрибутиву Linux, системному администратору и т. Д., А не приложению пользовательского пространства.

0 голосов
/ 25 мая 2011

Возможно, вы захотите взглянуть на пакет bigmemory для одного подхода - он включает в себя нетривиальное подмножество (стоимостью 16 мегабайт) повышения.

0 голосов
/ 25 мая 2011

Вы можете включить в каталог inst/ все, что захотите, включая подкаталог lib.Если все, что вам нужно, - это иметь доступ к этим библиотекам во время выполнения, вы, вероятно, можете использовать что-то вроде Sys.setenv(LD_LIBRARY_PATH=system.file("lib",package="mypkg")) для установки соответствующих путей к библиотекам.

Если вам нужны библиотеки для компоновки во время установки / сборки,может быть немного больше неприятностей.Я могу себе представить, что вы можете настроить ваши скрипты конфигурирования и Makefiles (стр. 13-15 руководства по расширениям R) так, чтобы они выглядели в нужном месте ... но я не знаю, как это сделать, и это, вероятно, потребует некоторыхчтобы это сделать (задокументируйте, если вы это сделаете!)

Обратите внимание, что пакеты, содержащие двоичные файлы, не разрешены в CRAN (по очевидным причинам безопасности), хотя R-Forge разрешает их ...

(Ни один из этих советов не проверялся - я распространил двоичные исполняемые файлы внутри пакетов, но не библиотеки - поэтому я надеюсь, что это полезно, или, по крайней мере, не вводит в заблуждение.)

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