[R] Rprofile.site and automatic installation of missing packages
PIKAL Petr
petr@p|k@| @end|ng |rom prechez@@cz
Wed Mar 22 11:46:03 CET 2023
Hallo Duncan
Thanks for your hints, yes, the code in Rprofile.site is not executed. I am not sure, if I understood the startup mechanism correctly and I am a bit puzzled.
Fresh installation (root C:Program files, write protected) has files Rprofile.site and .Rconsole installed in its etc directory.
After starting R I can see that home directory is
> Sys.getenv("R_USER")
[1] "\\\\srvudst01.precheza.cz\\userdata\\PikalP\\Dokumenty"
.Rconsole or .Rprofile in this directory are executed but Rprofile.site located in this directory is not.
After fresh R installation to set all users to have the same startup I have two options:
Change Rprofile.site in ...R\etc directory
Put the same .Rprofile file into R_Home directory for each user
Am I right or are there any other options how to set R on startup for all users differently from factory fresh setting?
Sorry for my questions, it is something I never done before but I now need to resolve it in a way which fits to our IT environment.
Best regards.
Petr
-----Original Message-----
From: Duncan Murdoch <murdoch.duncan using gmail.com>
Sent: Tuesday, March 21, 2023 5:43 PM
To: PIKAL Petr <petr.pikal using precheza.cz>; r-help <r-help using r-project.org>
Subject: Re: [R] Rprofile.site and automatic installation of missing packages
On 21/03/2023 9:58 a.m., PIKAL Petr wrote:
> Hallo Duncan
>
> Tested but does not work so something other must be wrong.
>
> R version 4.2.2.
>> installed.packages()[,"Package"]
> base boot class cluster codetools compiler datasets foreign graphics grDevices grid KernSmooth
> "base" "boot" "class" "cluster" "codetools" "compiler" "datasets" "foreign" "graphics" "grDevices" "grid" "KernSmooth"
> lattice MASS Matrix methods mgcv nlme nnet parallel rpart spatial splines stats
> "lattice" "MASS" "Matrix" "methods" "mgcv" "nlme" "nnet" "parallel" "rpart" "spatial" "splines" "stats"
> stats4 survival tcltk tools translations utils
> "stats4" "survival" "tcltk" "tools" "translations" "utils"
>
> My Rprofile.site
> # Things you might want to change
> options(papersize="a4")
> options(help_type="html")
>
> library(utils)
> library(MASS)
>
> #**********
> test <-(scan("pack.txt", character(), quote = ""))
> x<- utils::installed.packages()
> utils::install.packages(test[!test %in% x],
> repos="https://cloud.r-project.org")
>
> ##**********
>
> Options are set and working.
> MASS should be loaded but is not
>
>> search()
> [1] ".GlobalEnv" "package:stats" "package:graphics" "package:grDevices" "package:utils" "package:datasets" "package:methods" "Autoloads" "package:base"
>>
>
> Any suggestion where to look?
I'd add code to print the values of x and test to confirm that things are proceeding as you expect. I don't know if print() or cat() will work there; you might need to use message().
For attaching packages, you should see ?Startup again: this is done via
options() or an environment variable, not library() calls in the profile file.
Duncan Murdoch
>
> Best regards
> Petr
>
> -----Original Message-----
> From: Duncan Murdoch <murdoch.duncan using gmail.com>
> Sent: Tuesday, March 21, 2023 1:55 PM
> To: PIKAL Petr <petr.pikal using precheza.cz>; r-help <r-help using r-project.org>
> Subject: Re: [R] Rprofile.site and automatic installation of missing
> packages
>
> ?Startup says: "Note that when the site and user profile files are sourced only the base package is loaded, so objects in other packages need to be referred to by e.g. utils::dump.frames or after explicitly loading the package concerned."
>
> So you need utils::installed.packages and utils::install.packages .
>
> Duncan Murdoch
>
> On 21/03/2023 8:04 a.m., PIKAL Petr wrote:
>> Dear all.
>>
>>
>>
>> I am trying to install missing (not installed) packages during
>> startup of R through code in Rprofile.site but I miserably failed and
>> I am not sure what I am doing wrong.
>>
>>
>>
>> R is installed to C:Program files but it is not writable for the
>> users, therefore I cannot change Rprofile.site located in root etc
>> directory. I however can put Rprofile.site in users home directory
>> (Documents) and use it for R startup setting (partly).
>>
>> However I want for less experienced users to put a code here to check
>> installed packages, check if some specified set of packages is
>> installed and install them, but it is not working.
>>
>>
>>
>> The code in Rprofile.site is:
>>
>>
>>
>> #**********
>>
>> test <- scan("pack.txt", character(), quote = "")
>>
>> inst <- installed.packages()
>>
>> install.packages(test[!test %in% inst],
>> repos="https://cloud.r-project.org")
>>
>> #**********
>>
>>
>>
>> An example of pack.txt is e.g.
>>
>> ggplot2
>>
>> zoo
>>
>>
>>
>> but the code is not executed and packages are not installed. If I use
>> this code after R starts, everything is OK and packages are installed
>> to
>>
>>
>>
>>> Sys.getenv("R_LIBS_USER")
>>
>> [1] "C:\\Users\\PikalP\\AppData\\Local/R/win-library/4.2"
>>
>>>
>>
>> The same applies if I put e.g. library(MASS) in the Rprofile.site,
>> the package is not loaded but after R is live, library(MASS) loads a package.
>>
>>
>>
>> So my question is What is the best way to check after fresh R
>> installation if some predefined set of packages is installed and if
>> not, perform an installation without user intervention in Windows environment?
>>
>>
>>
>> S pozdravem | Best Regards
>>
>> Petr
>>
>>
>> ______________________________________________
>> R-help using r-project.org mailing list -- To UNSUBSCRIBE and more, see
>> https://stat.ethz.ch/mailman/listinfo/r-help
>> PLEASE do read the posting guide
>> http://www.R-project.org/posting-guide.html
>> and provide commented, minimal, self-contained, reproducible code.
>
> Osobní údaje: Informace o zpracování a ochraně osobních údajů
> obchodních partnerů PRECHEZA a.s. jsou zveřejněny na:
> https://www.precheza.cz/zasady-ochrany-osobnich-udaju/ | Information
> about processing and protection of business partner’s personal data
> are available on website:
> https://www.precheza.cz/en/personal-data-protection-principles/
> Důvěrnost: Tento e-mail a jakékoliv k němu připojené dokumenty jsou
> důvěrné a podléhají tomuto právně závaznému prohláąení o vyloučení
> odpovědnosti: https://www.precheza.cz/01-dovetek/ | This email and any
> documents attached to it may be confidential and are subject to the
> legally binding disclaimer: https://www.precheza.cz/en/01-disclaimer/
>
Osobní údaje: Informace o zpracování a ochraně osobních údajů obchodních partnerů PRECHEZA a.s. jsou zveřejněny na: https://www.precheza.cz/zasady-ochrany-osobnich-udaju/ | Information about processing and protection of business partner’s personal data are available on website: https://www.precheza.cz/en/personal-data-protection-principles/
Důvěrnost: Tento e-mail a jakékoliv k němu připojené dokumenty jsou důvěrné a podléhají tomuto právně závaznému prohláąení o vyloučení odpovědnosti: https://www.precheza.cz/01-dovetek/ | This email and any documents attached to it may be confidential and are subject to the legally binding disclaimer: https://www.precheza.cz/en/01-disclaimer/
More information about the R-help
mailing list