Подтвердить что ты не робот

Установите пакет udunits2 для R3.3

Я просто потратил весь день на то, чтобы выяснить, как установить пакет udunits2, чтобы иметь возможность устанавливать пакет единиц, чтобы иметь возможность устанавливать пакеты ggforce и ggraph.

Я пытаюсь установить его на Ubuntu 16.04 и R >= 3.3, так как ggforce был создан под R 3.3.

Я выполнил следующие инструкции здесь: https://github.com/edzer/units/issues/1

Хотя у меня есть libudunits-2.0 и udunits, установленные на моей машине (поскольку sudo apt-get install udunits2 не находит пакет udunits2), а PATH - в расположениях libudunits-2 и udunits на моем $PATH, в R когда я пытаюсь установить udunits2, units или ggforce, я получаю сообщение об ошибке,

--* installing *source* package ‘udunits2’ ...
** package ‘udunits2’ successfully unpacked and MD5 sums checked
checking for gcc... gcc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables... 
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ISO C89... none needed
checking for XML_ParserCreate in -lexpat... yes
checking how to run the C preprocessor... gcc -E
checking for grep that handles long lines and -e... /bin/grep
checking for egrep... /bin/grep -E
checking for ANSI C header files... yes
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking udunits2.h usability... no
checking udunits2.h presence... no
checking for udunits2.h... no
checking for ut_read_xml in -ludunits2... no
-----Error: libudunits2.a not found-----
     If the udunits2 library is installed in a non-standard location,
     use --configure-args='--with-udunits2-lib=/usr/local/lib' for   
     example,
     or --configure-args='--with-udunits2-include=/usr/include/udunits2'
     replacing paths with appropriate values for your installation.
     You can alternatively use the UDUNITS2_INCLUDE and UDUNITS2_LIB
     environment variables.
     If udunits2 is not installed, please install it.
     It is required for this package.
     ERROR: configuration failed for package ‘udunits2’
* removing ‘/home/fjay/R/x86_64-pc-linux-gnu-library/3.3/udunits2’
* restoring previous ‘/home/fjay/R/x86_64-pc-linux-gnu-library 
/3.3/udunits2’

The downloaded source packages are in
    ‘/tmp/Rtmp0syxnJ/downloaded_packages’
Warning message:
In install.packages("udunits2", lib = "/home/fjay/R/x86_64-pc-linux-
 gnu-library/3.3") :
 installation of package ‘udunits2’ had non-zero exit status
>

Итак, ммм, он ищет файлы udunits2.h и libudunits2.a.... Итак, я скачал udunits2 из CRAN, распаковал его и поместил в свою R-библиотеку. Затем, если я поместил библиотеку (udunits2, lib.loc = "my library dir" ), я получаю сообщение об ошибке, когда оно не установлено. Итак, когда я устанавливаю .package('udunits2', repo = NULL, libconfig.args = '--with-udunits2-lib =/home/fjay/R/x86_64-pc-linux-gnu-library/3.3') или install.packages('units',....) или install.packages('ggforce',...), он все еще ищет эти файлы... и после проверки пакета udunits2 эти файлы не находятся ни в одном из папок udunits2.

Если кто-нибудь знает, как установить этот пакет udunits2, пожалуйста, помогите мне!

4b9b3361

Ответ 1

У меня такая же проблема. После первого ответа отсюда вы должны установить -dev версию udunits:

sudo apt-get install libudunits2-dev

Тогда установка udunits2 и ggforce проходит без каких-либо ошибок.

РЕДАКТИРОВАТЬ:

Следуя комментариям ниже, для CentOS7 это должно быть:

sudo yum install udunits2-devel

И для MacOS:

brew install udunits

Ответ 2

Я установил пакет udunits2 в R на платформе Linux (redhat) без подключения к Интернету.

У меня также была эта проблема.

Во-первых, я установил udunits2 (а не пакет R udunits2) в примере Linux (/usr/include/udunits2).

Во-вторых, работа над этой командой работала: install.packages("udunits2_0.13.tar.gz",configure.args='--with-udunits2-include=/usr/include/udunits2')

Я надеюсь, что этот опыт поможет вам.

Ответ 3

Это не поможет парню, который задал вопрос, но у меня была такая же проблема в вычислительном кластере без корневого доступа, и сработало следующее:

homedir <- Sys.getenv("HOME")
udunits_dir <- file.path(Sys.getenv("HOME"), "udunits")
system(paste0("mkdir ", udunits_dir))
system(paste0("wget --directory-prefix=", udunits_dir, " ftp://ftp.unidata.ucar.edu/pub/udunits/udunits-2.2.25.tar.gz"))
owd <- getwd()
setwd(udunits_dir)
system("tar xzvf udunits-2.2.25.tar.gz")
setwd(file.path(udunits_dir, "udunits-2.2.25"))
system(paste0("./configure --prefix=", udunits_dir, "/local"))
system("make")
system("make install")
setwd(owd)
Sys.setenv(LD_LIBRARY_PATH=paste0(Sys.getenv("LD_LIBRARY_PATH"), ":", udunits_dir, "/local/lib"))
install.packages("udunits2", 
                 type = "source",
                 configure.args = c(paste0("--with-udunits2-include=", udunits_dir, "/local/include"), 
                                    paste0("--with-udunits2-lib=", udunits_dir, "/local/lib")),
                 repos = "http://cran.rstudio.com")
dyn.load(paste0(udunits_dir, "/local/lib/libudunits2.so.0"))
install.packages("units", repos = "http://cran.rstudio.com")