[Bioc-devel] Keeping all BioC and CRAN installed packages up to date the easy way

James MacDonald jmacdon at med.umich.edu
Fri Sep 21 15:16:48 CEST 2007

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:


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



>  >
> 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
UMCCC cDNA and Affymetrix Core
University of Michigan
1500 E Medical Center Drive
7410 CCGC
Ann Arbor MI 48109

More information about the Bioc-devel mailing list