Dear Dirk,
Am Samstag, den 26.11.2011, 16:34 -0600 schrieb Dirk Eddelbuettel: > On 26 November 2011 at 23:16, Paul Menzel wrote: > | Am Samstag, den 26.11.2011, 15:35 -0600 schrieb Dirk Eddelbuettel: > | > | > On 26 November 2011 at 22:10, Paul Menzel wrote: > | > | > | Am Samstag, den 26.11.2011, 12:42 -0600 schrieb Dirk Eddelbuettel: > | > | > On 26 November 2011 at 18:57, Paul Menzel wrote: > | > | > | Package: littler > | > | > | Version: 0.1.5-1 > | > | > | Severity: normal > | > | > | > | > | > | Dear Debian folks, > | > | > > | > | > There is a single maintainer for the littler package, and his name is > Dirk. > | > | > | > | I am sorry. I used that term because all Debian developers and users > | > | should try to fix bugs. And sometimes the maintainers are not as devoted > | > | as you are. > | > > | > What makes you think all developers would read a bug report against one > | > particular package? > | > | not all. But for example for GNOME packages a lot of times Debian > | developers deal with bug reports although they are not the maintainer. > > littler != Gnome alright. I will address you directly in the future when opening reports against R packages. > | > | > | since the package rbenchmark is not packaged in Debian I installed > it using `install.packages()`. Then it was installed in my home directory I > believe. > | > | > > | > | > Your problem. Always check what .libPaths() says: > | > | > > | > | > edd@max:~$ r -e 'print(.libPaths())' > | > | > [1] "/usr/local/lib/R/site-library" "/usr/lib/R/site-library" > | > | > [3] "/usr/lib/R/library" > | > | > edd@max:~$ > | > | > | > | It says the same on my system. > | > | > | > | > So on my system an installation __done with littler__ goes to > /usr/local/lib/R/site-library > | > | > | > | Well, since I have not changed anything by default using > | > | `install.packages()` it goes into `~/R/i486-pc-linux-gnu-library/2.14/`. > | > > | > You shouldn't have to change anything. Apart maybe from making sure you > (and > | > not jyst root) can write into /usr/local/lib/R/site-library/ > | > > | > This is set from /etc/R/Renviron > | > | Looking at `/etc/R/Renviron` I see the following line. > | > | R_LIBS_USER=${R_LIBS_USER-'~/R/i486-pc-linux-gnu-library/2.14'} > > Would you mind reading the remaining five or so lines of that file too? I did before. And I do not understand the comments at all. R_LIBS_USER=${R_LIBS_USER-'~/R/i486-pc-linux-gnu-library/2.14'} #R_LIBS_USER=${R_LIBS_USER-'~/Library/R/2.14/library'} # edd Apr 2003 Allow local install in /usr/local, also add a directory for # Debian packaged CRAN packages, and finally the default dir # edd Jul 2007 Now use R_LIBS_SITE, not R_LIBS R_LIBS_SITE=${R_LIBS_SITE-'/usr/local/lib/R/site-library:/usr/lib/R/site-library:/usr/lib/R/library'} What should »Now use R_LIBS_SITE, not R_LIBS« for an unknowledgeable user mean? Do you mean `R_LIBS*`? Why is `R_LIBS_USER` still defined above? Also looking at the other files I only found this item in `changelog.Debian.gz`. * debian/Renviron-R_LIBS.patch: With R 2.5.*, modify R_LIBS_SITE not R_LIBS -- Dirk Eddelbuettel <e...@debian.org> Wed, 18 Jul 2007 14:26:06 -0500 > | Could that be added to littler’s default path when looking for packages? > > Up to you to do locally as I told you twice. See help(Startup). I am getting > bored of repeating myself. > > Littler knows that env var too: > > edd@max:~$ r -e 'print(Sys.getenv("R_LIBS_USER"))' > [1] "~/R/x86_64-pc-linux-gnu-library/2.14" > edd@max:~$ > > I just don't like it. Linux is multi-user, and I see no reason not to use > /usr/local/lib/R/site-library. 1. I would not mind if it is recommended to me when using `install.packages()`. 2. The biggest problem is only root/staff can write there by default. 3. Until this discussion I did not even know about this preference since it is nowhere documented. > If your scripts fail to read from a particular library directory, read > help(library) and/or help(Startup). I know that I can pass a path to look for libraries. But the user experience to edit for example your examples from Rcpp is not flawless because I need to edit these scripts. And it is confusing because starting `R` and using `source(…)` works. > There is no maliciousness at my end. I do not tell littler to ignore certain > directories just because I feel like it. I still do not understand why `R` uses this environment variable and `littler` does not. Sorry. > So can we stop this now, please? I just tell you my experiences with littler and that I have trouble using it. That this is your decision to make if changes can be made is totally clear and that is why I have not reopened that report either. > | > | > In fact littler comes with two short example scripts 'install.r' and > | > | > 'update.r' I use all the time. Eg (for a not-required > re-installation:) > | > | > > | > | > edd@max:~$ ~/bin/install.r rbenchmark > | > | > trying URL > 'http://cran.r-project.org/src/contrib/rbenchmark_0.3.tar.gz' > | > | > Content type 'application/x-gzip' length 3504 bytes > | > | > opened URL > | > | > ================================================== > | > | > downloaded 3504 bytes > | > | > > | > | > * installing *source* package ‘rbenchmark’ ... > | > | > ** R > | > | > ** preparing package for lazy loading > | > | > ** help > | > | > *** installing help indices > | > | > ** building package indices ... > | > | > ** testing if installed package can be loaded > | > | > > | > | > * DONE (rbenchmark) > | > | > > | > | > The downloaded packages are in > | > | > ‘/tmp/downloaded_packages’ > | > | > edd@max:~$ r -lrbenchmark -e 'res <- benchmark(function() {}); > print(res)' > | > | > test replications elapsed relative user.self sys.self > user.child > | > | > 1 function() { 100 0.001 1 0 0 > 0 > | > | > sys.child > | > | > 1 0 > | > | > edd@max:~$ > | > | > | > | I did not know about these scripts and that they should be used for > | > | installing packages. See #648981 [3]. > | > > | > "Should be used" is too strong. I wrote them for my use as I find them > convenient. > | > | I see. But not having a references to them in for example the README I > | will find them too late because I am not checking out everything before > | starting to use a program. > > You can always demand your money back. Please, I did not attack you in any way. I just report my experience. I am thankful for your work and I try to contribute back by sharing my experience as a unknowledgeable user. > | > | > | Executing `R` and then `library(rbenchmark)` works. > | > | > | > | > | > | Now I wanted to try `fibonacci.r` from the examples of the Rcpp > package (`r-cran-rcpp` [2]). > | > | > | > | > | > | $ cp /usr/lib/R/site-library/Rcpp/examples/Misc/fibonacci.r > /tmp/ > | > | > | $ r fibonacci.r # includes `library(rbenchmark)` > | > | > | > | > | > | This aborts with an error that the package `rbenchmark` cannot be > found. > | > | > | > | > | > | $ LANG=C r fibonacci.r > | > | > | Loading required package: inline > | > | > | Loading required package: methods > | > | > | Loading required package: compiler > | > | > | Error in library(rbenchmark) : there is no package called > 'rbenchmark' > | > | > | Execution halted > | > | > | > | > | > | Is littler supposed to work in such a setup? > | > | > > | > | > Well, yes. I use littler for all the blog posts you refer to. > | > | > > | > | > Read help(Startup) and figure out your paths. > | > | > > | > | > Not a bug. Next time, just ask on r-sig-debian, please. > | > | > | > | Is there a way to get that working by default? Should the path `~/R/` > | > | which gets used by default for installing packages be added somewhere? > | > | Or a new item to the FAQ in `README.gz`? > | > > | > Please do read 'help(Startup)' and how you can influence .ldPaths() -- > and if > | > you prefer to install in ~/R you have to figure out how to make sure > littler > | > looks there too. > | > | As written above, that path seems to be taken from `/etc/R/Renviron`. > > Not going to explain it another time. No need. I read your answer carefully and try to understand everything you write and your point of view. Saludos and thanks again, Paul
signature.asc
Description: This is a digitally signed message part