ISSUE: It looks like Rgui.exe never processes ~/.Renviron - only ./.Renviron. REPRODUCIBLE EXAMPLE: On Windows, create the following ~/.Renviron and ~/.Rprofile files: C:\Users\alice> Rscript -e "cat('FOO=123\n', file='~/.Renviron')" C:\Users\alice> Rscript -e "cat('print(Sys.getenv(\'FOO\'))', file='~/.Rprofile')" and launch Rgui (from a folder other that ~): C:\Users\alice> Rgui and you'll see that FOO is reported as "" (empty), whereas with R or Rscript, it is reported as "123". TROUBLESHOOTING:>From code inspection(<https://github.com/wch/r-source/blob/1658c8491e9cdc6d2fe61603ed23ae56232b6727/src/main/Renviron.c#L298-L301>): #ifdef Win32 { char buf[1024]; /* MAX_PATH is less than this */ /* R_USER is not necessarily set yet, so we have to work harder */ s = getenv("R_USER"); if(!s) s = getenv("HOME"); if(!s) return; snprintf(buf, 1024, "%s/.Renviron", s); s = buf; } #endif I think it happens because neither R_USER nor HOME is set when the Rgui startup process calls process_user_Renviron(). WORKAROUND: Setting R_USER or HOME prior to calling Rgui will cause Rgui to process ~/.Renviron, e.g. C:\User\alice> set R_USER=%UserProfile%\Documents C:\User\alice> Rgui The background for finding this is R-help thread '[R] tempdir() does not respect TMPDIR' on 2020-08-29 (https://stat.ethz.ch/pipermail/r-help/2020-August/468573.html). /Henrik
On 2 September 2020 at 23:38, Henrik Bengtsson wrote: | WORKAROUND: | Setting R_USER or HOME prior to calling Rgui will cause Rgui to | process ~/.Renviron, e.g. AFAICR one _always_ had to manually set $HOME on Windows as the convention of having it comes from the some other OSs and is not native. In short I don't think this is new. A quick Google search seems to confirm this with a SuperUser answer from 2013: https://superuser.com/questions/607105/is-the-home-environment-variable-normally-set-in-windows Dirk -- https://dirk.eddelbuettel.com | @eddelbuettel | edd at debian.org
I've "moved" this to https://bugs.r-project.org/bugzilla/show_bug.cgi?id=17919 to make sure it's tracked. /Henrik On Thu, Sep 3, 2020 at 7:25 AM Dirk Eddelbuettel <edd at debian.org> wrote:> > > On 2 September 2020 at 23:38, Henrik Bengtsson wrote: > | WORKAROUND: > | Setting R_USER or HOME prior to calling Rgui will cause Rgui to > | process ~/.Renviron, e.g. > > AFAICR one _always_ had to manually set $HOME on Windows as the convention of > having it comes from the some other OSs and is not native. > > In short I don't think this is new. A quick Google search seems to confirm > this with a SuperUser answer from 2013: > > https://superuser.com/questions/607105/is-the-home-environment-variable-normally-set-in-windows > > Dirk > > -- > https://dirk.eddelbuettel.com | @eddelbuettel | edd at debian.org