[Bioc-devel] Keeping all BioC and CRAN installed packages up to date the easy way
Hi Mark,
Mark W Kimpel wrote:
Well, I guess I didn't understand this as well as I thought. I get a
warnings and odd behavior when I use biocLite and it is almost certainly
because I am being fancy and using a separate library for my non-base
packages so they don't always need to be reinstalled when I update R.
here is what is in my .Rprofile (everything else has been commented out
for now):
.libPaths(new= "~/R_HOME/site-library") #tell R where site-library is
I thought I was following the instructions in the R manual to do this,
and I wasn't getting error with my previous code, but now I am.
This is the behavior I am observing:
1. source("http://www.bioconductor.org/biocLite.R")
biocLite("Biobase")
leads to Biobase repeatedly updating whether it needs to or not
What do you mean by 'repeatedly'? If you mean Biobase is installed whether or not it is out of date, then that is the correct behavior. The function biocLite() is a wrapper to install.packages(), not update.packages(), so this is as it should be.
update.packages(repos="http://www.bioconductor.org/packages/2.1/bioc", ask = FALSE) does not do this. 2. also, with source("http://www.bioconductor.org/biocLite.R") Warning messages: 1: In safeSource() : Redefining ?biocinstall? 2: In safeSource() : Redefining ?biocinstallPkgGroups? 3: In safeSource() : Redefining ?biocinstallRepos? and with repos <- biocReposList() Error: could not find function "biocReposList"
Oh yeah, I forgot. There is one more step that I neglected to mention: library(Biobase) So here is the background; Biobase contains a list of repository URLs that are correct for whatever version of Biobase will be installed by biocLite(). So what we are doing here is ensuring that the current version of Biobase is the most up-to-date, loading the package and extracting the list of repositories. We have to do this step because update.packages() won't update any package that is already loaded, and we need to load Biobase to get the repos list. So once we have resolved this chicken-egg problem, we can run update.packages() and update all the other packages. Long story short, you are not being stupid. However, any time you see that error, about 75% of the time it is because you haven't loaded the package that contains the function. The other 25% happens when you have loaded the package, but it has a namespace and the function isn't exported. I am wearing a t-shirt today that reads 'I make stuff up' (required attire for all statisticians in my wife's view), so you can rest assured that those percentages are quite accurate ;-D Best, Jim
>
So, I am puzzled. I am redirecting this to Bioc-Devel as I suspect this is a development issue and/or I am just doing something stupid. Mark W. Kimpel MD ** Neuroinformatics ** Dept. of Psychiatry Indiana University School of Medicine 15032 Hunter Court, Westfield, IN 46074 (317) 490-5129 Work, & Mobile & VoiceMail (317) 663-0513 Home (no voice mail please) ****************************************************************** Mark W Kimpel wrote:
Jim, Thanks for your advice. Your little code snippet might me a good inclusion in the "how to install bioconductor" page of the website under "how to update your packages". It is perhaps obvious to an experienced user, but may be very helpful to many, as it was to me. I'm posting this as a new thread on the main list just so your response is seen by others who may find it useful. Mark --- Mark W. Kimpel MD ** Neuroinformatics ** Dept. of Psychiatry Indiana University School of Medicine 15032 Hunter Court, Westfield, IN 46074 (317) 490-5129 Work, & Mobile & VoiceMail (317) 663-0513 Home (no voice mail please) ****************************************************************** James MacDonald wrote:
> Hi Mark,
>
> I think a much easier and safer way to update is as follows:
>
> source("http://www.bioconductor.org/biocLite.R")
>
> ## I just have the above in my .Rprofile file, so biocLite() is always
> there for me.
>
> biocLite("Biobase")
> repos <- biocReposList()
> update.packages(repos=repos, ask=FALSE)
>
> this will get all CRAN and BioC packages, and got me correctly updated
> this morning.
>
> Probably the problem with your script is you are hitting the IL
mirror,
> and it might be out of synch with fhcrc. Try the above and see if
it helps.
> > Best, > > Jim >
James W. MacDonald, MS Biostatistician UMCCC cDNA and Affymetrix Core University of Michigan 1500 E Medical Center Drive 7410 CCGC Ann Arbor MI 48109 734-647-5623