[R] user library help functionality (packages.html)

Jarrett Barber jbarber8 at uwyo.edu
Thu Jan 15 21:39:27 CET 2009


Whoops!  Yes, my last "help.search()" should have been  
"help.start()".  Thanks again.  -- Jarrett

On Jan 15, 2009, at 1:27 PM, Duncan Murdoch wrote:

> On 1/15/2009 3:17 PM, Jarrett Barber wrote:
>> This helps a lot.  I have options(htmlhelp=TRUE) and   
>> options(chmhelp=FALSE) (else problems).  Now, ?, help(), and   
>> help.search() seem to work well.  But, help.start() appears  
>> restricted  to packages in the site library.  I see, in the Help/ 
>> FAQ on R for  Windows/ Sections 4.3 and 4.4, that I cannot expect  
>> more from  help.start() unless I have write permission to $RHOME/ 
>> library, which I  do not (package does have a CONTENTS file  
>> however).  I assume that, if  I want my students to have this  
>> functionality, they, too, would need  write access to $RHOME/ 
>> library, correct?  But, this does not seem a  wise thing to give.   
>> Am I missing something here, barring permission  changes, that  
>> would allow help.search() to see user libraries?
>
> You mean help.start() here, don't you?  help.search() does see  
> everything in the libraries listed in .libPaths().
>
>
> This
>> would be ideal, but your suggestions seems to give us nice help   
>> functionality, and I think we can implement an R installation  
>> campus- wide without the full functionality of help.seach().   
>> Thanks very much.
>
> As far as I know on Windows there's currently no way to get  
> help.start() to go to a personalized page.  The stuff that it refers  
> to all lives in RHOME/doc/html, and many of the links in the files  
> it works with assume that they are installed in the same hierarchy.
>
> I'm not sure if things are different on Unix, where we use soft  
> links to make all the package directories appear to be under one  
> parent.
>
> Duncan Murdoch
>
>> Jarrett
>> R Session:
>> R version 2.7.0 (2008-04-22)
>> ...snip...
>> > personalLib<- .libPaths()[1]; personalLib
>> [1] "H:\\Desktop\\RFiles\\Library"
>> > getOption("htmlhelp")
>> [1] TRUE
>> > getOption("chmhelp")
>> [1] FALSE
>> > install.packages("UsingR",
>> + lib=personalLib,
>> + depend=TRUE)
>> trying URL 'http://streaming.stat.iastate.edu/CRAN/bin/windows/contrib/2.7/UsingR_0.1-10.zip'
>> Content type 'application/zip' length 1433201 bytes (1.4 Mb)
>> opened URL
>> downloaded 1.4 Mb
>> package 'UsingR' successfully unpacked and MD5 sums checked
>> The downloaded packages are in
>>         C:\Temp\RtmpQr4t3E\downloaded_packages
>> updating HTML package descriptions
>> Warning message:
>> In file.create(f.tg) :
>>   cannot create file 'C:\PROGRA~1\R\R-27~1.0/doc/html/ 
>> packages.html',  reason 'Permission denied'  ## PERMISSION PROBLEM
>> > library("UsingR")
>> Warning message:
>> package 'UsingR' was built under R version 2.7.2
>> > help("UsingR") ## works!
>> Help for ëUsingRí is shown in the browser
>> > help.start() ## restricted to site library
>> updating HTML package listing
>> updating HTML search index
>> fixing URLs in non-standard libraries
>> If nothing happens, you should open 'C:\PROGRA~1\R\R-27~1.0\doc 
>> \html \index.html' yourself
>> Warning message:
>> In file.create(f.tg) :
>>   cannot create file 'C:\PROGRA~1\R\R-27~1.0/doc/html/ 
>> packages.html',  reason 'Permission denied' ## SAME PERMISSION  
>> PROBLEM
>> > help.search("UsingR") ## works!
>> > ?UsingR ## works!
>> Help for ëUsingRí is shown in the browser
>> > q()
>> On Jan 15, 2009, at 11:42 AM, Duncan Murdoch wrote:
>>> On 1/15/2009 12:50 PM, Jarrett Barber wrote:
>>>> Here's another help file question.
>>>> Some context: University setting wherein R is installed for    
>>>> availability to students and course instructors across campus  
>>>> in   various PC labs.  Windows Vista environment.
>>>> Goal: To maximize flexibility and functionality of installing  
>>>> add- on  packages and associated help files among different  
>>>> users,  while  avoiding conflicts across different user  
>>>> libraries.  (I  could have my  difficult-to-access sysadmin  
>>>> install _all_  libraries, but this seems  wasteful, and would  
>>>> seem to present  problems when my colleague or I  want to update  
>>>> a package or  install a newly available package but do  not have  
>>>> time to wait a  week or two for our sysadmin.)
>>>> Problem (?): As a course instructor, I want flexibility to  
>>>> install  add- on libraries to a user (not site) library, and I  
>>>> don't want to  step on  my colleagues' toes (or vice-versa) when  
>>>> it comes to add- on packages  and associated help files for use  
>>>> in classes.  I have  no problem  installing add-on packages to a  
>>>> user library, with one  exception: I do  not have permission to  
>>>> update the file $RHOME/doc/ html/packages.html,  as evidenced by  
>>>> a permission error upon  installing a package to a user  library  
>>>> using update.packages (not  to the default site library, which   
>>>> is also restricted).  The  installed add-on packages work fine,  
>>>> with  the exception of some of  the help functionality.  I find  
>>>> myself having  to use browseURL()  to point to the html files in  
>>>> the package's file  structure.  I  cannot expect the average  
>>>> student (or senior colleague)  to  tolerate this situation.
>>>
>>> A simpler way to get to the HTML man pages is to run
>>>
>>> options(htmlhelp=TRUE)
>>>
>>> and then the regular ?topic or help("topic") will find the HTML  
>>> help  pages in your local library.
>>>
>>>> I'm thinking that I simply need to have my sysadmin give me and  
>>>> my   colleagues (all users who want to install add-ons  
>>>> packages?)   permission to read/write packages.html, and the  
>>>> problem will go  away.   But, before I ask my sysadmin to give  
>>>> permission, I want to  know, does  this create another problem?   
>>>> For example, my colleague  creates a  library for STAT3000BC,  
>>>> which, I assume, will modify  packages.html  (assuming my  
>>>> sysadmin gives permission), then I  create a library for   
>>>> STAT2010, which also modifies packages.html.   See my concern?   
>>>> Does R  somehow allow harmonious help  functionality in such  
>>>> cases (by, for  example, maintaining separate  copies of  
>>>> packages.html for different  users)?
>>>
>>> You will likely have strange problems if you do that.  The doc/ 
>>> html/ packages.html file is intended to talk about what is  
>>> available to  everyone; I suspect in your scenario, it would be  
>>> updated to show  your packages (but not your colleague's) whenever  
>>> you added one, and  then updated to show your colleague's packages  
>>> (but not yours) when  he added one, and would almost never be  
>>> right for both of you.
>>>
>>> The good news is that it looks as though sometime this year we  
>>> will  make quite substantial changes to the way the help system is  
>>> stored,  so a lot of things like packages.html could be generated  
>>> on the fly.
>>>
>>> Duncan Murdoch
>




More information about the R-help mailing list