[Rd] utils::install.packages with quiet=TRUE fails for source packages on Windows

Andreas Kersting r-devel at akersting.de
Fri Jan 26 09:17:26 CET 2018


Just noticed that this problem only occurs from within RStudio 
(v1.1.414). Any ideas why?

Am 26.01.2018 um 08:56 schrieb Andreas Kersting:
> Hi,
> 
> Installing a source package on Windows using utils::install.packages() 
> with quiet=TRUE fails, while it works with the default quiet = FALSE. 
> The problem seems to be caused by the fact that when quiet = TRUE, 
> stdout and stderr are set to FALSE when calling "R CMD INSTALL" with 
> base::system2() here: 
> https://github.com/wch/r-source/blob/tags/R-3-4-3/src/library/utils/R/packages2.R#L660-L661. 
> 
> 
>> trace(base::system2, quote(print(ls.str())))
> Tracing function "system2" in package "base"
> [1] "system2"
> 
> 
>> utils::install.packages("partDF_1.0.0.9001.tar.gz", repos = NULL, lib 
> = tempdir(), quiet = TRUE)
> Tracing system2(cmd0, args, env = env, stdout = output, stderr = output) 
> on entry
> args :  chr [1:5] "CMD" "INSTALL" "-l" 
> "\"C:\\Users\\askers\\AppData\\Local\\Temp\\RtmpoRb97l\"" ...
> command :  chr "C:/PROGRA~1/R/R-34~1.3/bin/x64/R"
> env :  chr(0)
> input :  NULL
> invisible :  logi TRUE
> minimized :  logi FALSE
> stderr :  logi FALSE
> stdin :  chr ""
> stdout :  logi FALSE
> wait :  logi TRUE
> Warning messages:
> 1: running command '"C:/PROGRA~1/R/R-34~1.3/bin/x64/R" CMD INSTALL -l 
> "C:\Users\askers\AppData\Local\Temp\RtmpoRb97l" 
> "partDF_1.0.0.9001.tar.gz"' had status 1
> 2: In utils::install.packages("partDF_1.0.0.9001.tar.gz", repos = NULL,  :
>    installation of package 'partDF_1.0.0.9001.tar.gz' had non-zero exit 
> status
> 
> 
>> utils::install.packages("partDF_1.0.0.9001.tar.gz", repos = NULL, lib 
> = tempdir(), quiet = FALSE)
> Tracing system2(cmd0, args, env = env, stdout = output, stderr = output) 
> on entry
> args :  chr [1:5] "CMD" "INSTALL" "-l" 
> "\"C:\\Users\\askers\\AppData\\Local\\Temp\\RtmpoRb97l\"" ...
> command :  chr "C:/PROGRA~1/R/R-34~1.3/bin/x64/R"
> env :  chr(0)
> input :  NULL
> invisible :  logi TRUE
> minimized :  logi FALSE
> stderr :  chr ""
> stdin :  chr ""
> stdout :  chr ""
> wait :  logi TRUE
> * installing *source* package 'partDF' ...
> ** libs
> c:/Rtools/mingw_64/bin/gcc  -I"C:/PROGRA~1/R/R-34~1.3/include" -DNDEBUG 
>         -O2 -Wall  -std=gnu99 -mtune=generic -c partDF.c -o partDF.o
> c:/Rtools/mingw_64/bin/gcc -shared -s -static-libgcc -o partDF.dll 
> tmp.def partDF.o -LC:/PROGRA~1/R/R-34~1.3/bin/x64 -lR
> installing to C:/Users/askers/AppData/Local/Temp/RtmpoRb97l/partDF/libs/x64
> ** R
> ** inst
> ** byte-compile and prepare package for lazy loading
> ** help
> *** installing help indices
>    converting help for package 'partDF'
>      finding HTML links ... done
>      anti_glob                               html
>      partDF                                  html
>      read_partDF                             html
>      write_partDF                            html
> ** building package indices
> ** testing if installed package can be loaded
> * DONE (partDF)
> In R CMD INSTALL
> 
> 
>> sessionInfo()
> R version 3.4.3 (2017-11-30)
> Platform: x86_64-w64-mingw32/x64 (64-bit)
> Running under: Windows >= 8 x64 (build 9200)
> 
> Matrix products: default
> 
> locale:
> [1] LC_COLLATE=German_Germany.1252  LC_CTYPE=German_Germany.1252 
> LC_MONETARY=German_Germany.1252
> [4] LC_NUMERIC=C                    LC_TIME=German_Germany.1252
> 
> attached base packages:
> [1] stats     graphics  grDevices utils     datasets  methods   base
> 
> loaded via a namespace (and not attached):
> [1] compiler_3.4.3 tools_3.4.3    yaml_2.1.16
> 
> 
> This problem is also there when installing source packages from CRAN:
> 
>> utils::install.packages("mvtnorm", lib = tempdir(), quiet = TRUE)
> 
>    There is a binary version available but the source version is later:
>          binary source needs_compilation
> mvtnorm  1.0-6  1.0-7              TRUE
> 
> Do you want to install from sources the package which needs compilation?
> y/n: y
> installing the source package 'mvtnorm'
> 
> Tracing system2(cmd0, args, env = env, stdout = outfile, stderr = 
> outfile) on entry
> args :  Named chr [1:5] "CMD" "INSTALL" "-l" 
> "\"C:\\Users\\askers\\AppData\\Local\\Temp\\RtmpoRb97l\"" ...
> command :  chr "C:/PROGRA~1/R/R-34~1.3/bin/x64/R"
> env :  chr(0)
> input :  NULL
> invisible :  logi TRUE
> minimized :  logi FALSE
> stderr :  logi FALSE
> stdin :  chr ""
> stdout :  logi FALSE
> wait :  logi TRUE
> Warning messages:
> 1: running command '"C:/PROGRA~1/R/R-34~1.3/bin/x64/R" CMD INSTALL -l 
> "C:\Users\askers\AppData\Local\Temp\RtmpoRb97l" 
> C:\Users\askers\AppData\Local\Temp\RtmpoRb97l/downloaded_packages/mvtnorm_1.0-7.tar.gz' 
> had status 1
> 2: In utils::install.packages("mvtnorm", lib = tempdir(), quiet = TRUE) :
>    installation of package 'mvtnorm' had non-zero exit status
> 
> 
> 
> I do not encounter this problem on my Linux machine.
> 
> Andreas
> 
> ______________________________________________
> R-devel at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-devel
>



More information about the R-devel mailing list