[Rd] Capture output of install.packages (pipe system2)

Paul Gilbert pgilbert902 at gmail.com
Tue Sep 24 03:03:33 CEST 2013


On 13-09-23 08:20 PM, Hadley Wickham wrote:
>> Brian Ripley's reply describes how it is done in the tools package.  For
>> example, as I sent privately to Jeroen,
>>
>> x <- system2("Rscript", "-e \"install.packages('MASS',
>> repos='http://probability.ca/cran')\"", stdout=TRUE, stderr=TRUE)
>>
>> captures all of the output from installing MASS.  As Jeroen pointed out,
>> that isn't identical to running install.packages() in the current session; a
>> real version of it should fill in more of the arguments, not leave them at
>> their defaults.
>
> It does seems a little crazy that you're in a R process, then open
> another one, which then opens a 3rd session! (often indirectly by
> calling R CMD install which then calls an internal function in tools)

It does seem very much more straight forward to do this in the process 
above R:

   R --vanilla --slave -e "install.packages('whatever',
    repo='http://cran.r-project.org')" >R.out  2>&1

(Omit mailer wrap.) Your mileage may vary depending on your OS.

Paul

>
> Hadley
>



More information about the R-devel mailing list