Message-ID: <5240E4E5.7030905@gmail.com>
Date: 2013-09-24T01:03:33Z
From: Paul Gilbert
Subject: Capture output of install.packages (pipe system2)
In-Reply-To: <CABdHhvFmgvADrBJui5=+MjgOOGrjERcipxpiNd2tNP+P_vicDQ@mail.gmail.com>
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
>