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

Я просто потратил впустую целый день, пытаясь выяснить, как установить udunits2 пакет, чтобы смочь установить пакет единиц, чтобы смочь установить пакеты графика и ggforce.

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

Я следовал этим инструкциям здесь: https://github.com/edzer/units/issues/1

Хотя у меня есть libudunits-2.0 и udunits, установленный на моей машине (поскольку sudo склонный - добираются, установка udunits2 не находит udunits2 пакет), и ПУТЬ к libudunits-2 и udunits местоположения на моем $PATH, в R, когда я пытаюсь установить udunits2, единицы или 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
>

Так, umm, это ищет udunits2.h и libudunits2.a файлы.... Так, я загрузил udunits2 с CRAN, распаковал его и поместил его в мою библиотеку R. Затем если я поместил библиотеку (udunits2, lib.loc = "мой dir библиотеки") я получаю ошибку при высказывании, что это не установлено. Так, когда я install.package ('udunits2', repo = ПУСТОЙ УКАЗАТЕЛЬ, libconfig.args = '-with-udunits2-lib =/home/fjay/R/x86_64-pc-linux-gnu-library/3.3') или install.packages ('единицы'....) или install.packages ('ggforce'...) это все еще ищет эти файлы... и после контроля udunits2 пакета, эти файлы не находятся ни в одной из udunits2 папок.

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

59
задан 17 February 2017 в 03:14

1 ответ

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

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")
3
ответ дан 1 November 2019 в 12:06

Другие вопросы по тегам:

Похожие вопросы: