[R] Remove site path from .libPaths
Rainer M Krug
r.m.krug at gmail.com
Fri Feb 15 16:45:46 CET 2013
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
On 15/02/13 16:06, Duncan Murdoch wrote:
> On 13-02-15 9:54 AM, Rainer M Krug wrote: On 15/02/13 15:41, Duncan Murdoch wrote:
>>>> On 13-02-15 9:28 AM, Rainer M Krug wrote: Hi
>>>>
>>>> I am sure I am missing something really basic, but I can't figure it out.
>>>>
>>>> I want to start R so that I can specify the location for the Library tree. In principel
>>>> simple:
>>>>
>>>> As I only want it dependent on the directory I stat R in, I put a .Rprofile file in the
>>>> directory.
>>>>
>>>> My default path is:
>>>>
>>>>>>> .libPaths()
>>>> [1] "/home/rkrug/R/i686-pc-linux-gnu-library/2.15" [2] "/usr/lib/R/site-library" [3]
>>>> "/usr/lib/R/library"
>>>>>>>
>>>>
>>>> But I want to have it
>>>>
>>>>>>> .libPaths()
>>>> [1] "/home/rkrug/THE_DIRECTORY/library" [2] "/usr/lib/R/library"
>>>>>>>
>>>>
>>>> The first part is easy:
>>>>
>>>> .libPaths("/home/rkrug/THE_DIRECTORY/library")
>>>>
>>>> but how can I remove the site library?
>>>>
>>>> If I set
>>>>
>>>> In R 15.2 under Ubuntu, started with
>>>>
>>>> R --vanilla
>>>>
>>>>>>> .libPaths()
>>>> [1] "/home/rkrug/R/i686-pc-linux-gnu-library/2.15" [2] "/usr/lib/R/site-library" [3]
>>>> "/usr/lib/R/library"
>>>>>>> .Library.site
>>>> [1] "/usr/lib/R/site-library" "/usr/lib/R/library"
>>>>>>> .Library
>>>> [1] "/usr/lib/R/library"
>>>>>>> .Library.site <- "" .Library.site
>>>> [1] ""
>>>>>>> .libPaths()
>>>> [1] "/home/rkrug/R/i686-pc-linux-gnu-library/2.15" [2] "/usr/lib/R/site-library" [3]
>>>> "/usr/lib/R/library"
>>>>>>> .libPaths("") .libPaths()
>>>> [1] "/usr/lib/R/site-library" "/usr/lib/R/library"
>>>>>>> .Library
>>>> [1] "/usr/lib/R/library"
>>>>>>> .Library.site
>>>> [1] ""
>>>>>>>
>>>>
>>>>
>>>>>>> .libPaths("") .libPaths()
>>>> [1] "/usr/lib/R/site-library" "/usr/lib/R/library"
>>>>>>>
>>>>
>>>> even executing
>>>>
>>>>>>> .libPaths(.libPaths())
>>>>
>>>> does not change anything.
>>>>
>>>> Am I missing something or is there a bug in .libPaths()?
>>>>
>>>>> I don't think there is a bug. As ?.libPaths says,
>>>>
>>>>> "Function .libPaths always uses the values of .Library and .Library.site in the base
>>>>> namespace. .Library.site can be set by the site in ‘Rprofile.site’, which should be
>>>>> followed by a call to .libPaths(.libPaths()) to make use of the updated value."
>>>>
>>>>> So you can't change the value of .Library.site after starting R. You'll need to use
>>>>> environment variables (as described on that page) to do it.
>
>
> Thanks for the clarification - the use of the word "site" in "set by the site in
> ‘Rprofile.site’ " was not clear to me. I thik it would be much clearer, if it states that the
> variables .Library and .Library.site can not be changed while R is running although it looks as
> if they can be changed (but then new ones in the top environment are created).
>
> Now just one more question: where can I see that
>
> .Library <- "/A/New/Existing/Directory"
>
> has no impact?
>
>> If you look at environment(.libPaths) you'll see that it is not .GlobalEnv, so the .lib.loc
>> assignment might not happen where you think. Indeed,
>
>> ls(environment(.libPaths), all=TRUE)
>
>> will show that it contains one object, .lib.loc. You can modify that variable, but it's
>> quite a risky (in the sense of being undocumented and unsupported) thing to do.
Ok, thanks for the clarification, and agreed that it is not advisable. I will then go a different
route and start R with given Environmental variables.
Thanks lot,
Rainer
>
>> Duncan Murdoch
>
>
> I expected to see this in the code of .libPaths, but I didn't:
>
>>>> .libPaths
> function (new) { if (!missing(new)) { new <- Sys.glob(path.expand(new)) paths <-
> unique(normalizePath(c(new, .Library.site, .Library), "/")) .lib.loc <<-
> paths[file.info(paths)$isdir %in% TRUE] } else .lib.loc } <bytecode: 0x88e7640> <environment:
> 0x88e685c>
>>>>
>
> Thanks,
>
> Rainer
>
>
>
>>>>
>>>>> Duncan Murdoch
>>>>
>>>>
>>>> Cheers,
>>>>
>>>> Rainer
>>>>
>>>>
>>>>
>>>>>
>>>>> ______________________________________________ R-help at r-project.org mailing list
>>>>> 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.
>>>>>
>>>>
>
>>
>
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.11 (GNU/Linux)
Comment: Using GnuPG with Thunderbird - http://www.enigmail.net/
iQEcBAEBAgAGBQJRHlgpAAoJENvXNx4PUvmCel0H/jJ0KYNfEryzjnSIt9U9xrk/
cEgnFLRAzoWuBaMvTuPVthiOHIjIPWyiauoZtn9Vju6HALBQAY9h7SWpwMyVIm6y
VwHsRZ3Szbn1kRPkIbHpZFlMHtfFg9I9KlSywBPHjD1FVEUI8TXJSz4padjbmSWc
VHRK88o2YHNAA6ss7AyGjpXuFxwIvCNjxTVitPdaMBqnmoJtO3jIOgcPAp18pLlK
uYv1pvcVKY6yizNwwneMhIO0dqmZMIjL/TT6Z8IT2K7EUOqEtWXQ2DhSFOFBtYGi
olae3hK9I8FI+wS5oD7i86PUNPB8KDya3KnGk1USEKF69nesRbWXU3fuC6BaI+A=
=t0Hg
-----END PGP SIGNATURE-----
More information about the R-help
mailing list