[Bioc-devel] Using BiocInstaller with R 3.4.0 beta

Gordon K Smyth smyth at wehi.edu.au
Wed Apr 12 01:21:39 CEST 2017


I restarted my PC this morning and the problem disappeared.

I probably should have tried that last night, but it was late ...

Thanks
Gordon

> -----Original Message-----
> From: Martin Morgan [mailto:martin.morgan at roswellpark.org]
> Sent: Tuesday, 11 April 2017 7:20 PM
> To: Gordon K Smyth <smyth at wehi.edu.au>; bioc-devel at r-project.org
> Subject: Re: [Bioc-devel] Using BiocInstaller with R 3.4.0 beta
> 
> On 04/11/2017 05:01 AM, Gordon K Smyth wrote:
> > The problem appears to be with installed.packages(). If I start a fresh R
> 3.4.0beta session, then I can run installed.packages() once with correct results,
> but running it a second time gives the error message:
> >
> >> installed.packages()
> > Error in if (file.exists(dest) && file.mtime(dest) > file.mtime(lib) &&  :
> >   missing value where TRUE/FALSE needed
> 
> The test is in this code chunk, from utils/R/packages.R
> 
>      for(lib in lib.loc) {
>          if(noCache) {
>              ret0 <- .readPkgDesc(lib, fields)
>              if(length(ret0)) retval <- rbind(retval, ret0)
>          } else {
>              ## Previously used URLencode for e.g. Windows paths with drives
>              ## This version works for very long file names.
>              base <- paste(c(lib, fields), collapse = ",")
>              ## add length and 64-bit CRC in hex (in theory, seems
>              ## it is actually 32-bit on some systems)
>              enc <- sprintf("%d_%s", nchar(base), .Call(C_crc64, base))
>              dest <- file.path(tempdir(), paste0("libloc_", enc, ".rds"))
>              if(file.exists(dest) &&
>                 file.mtime(dest) > file.mtime(lib) &&
>                 (val <- readRDS(dest))$base == base)
>                  ## use the cache file
>                  retval <- rbind(retval, val$value)
>              else {
>                  ret0 <- .readPkgDesc(lib, fields)
>                  if(length(ret0)) {
>                      retval <- rbind(retval, ret0)
>                      ## save the cache file
>                      saveRDS(list(base = base, value = ret0), dest)
>                  }
>              }
>          }
> 
> 
> where 'lib' is one of .libPaths(), 'dest' is one of
> 
>    dir(tempdir(), pattern="libloc_", full=TRUE)
> 
> and 'base' should be a character(1)
> 
> I think the code chunk has tried to cache the packages installed in each
> directory of .libPaths() (the saveRDS() line), and these are somehow
> corrupted on the second time through (I guess evaluating the readRDS()??).
> 
> For instance I have two paths in .libPaths() and after the first
> install.packages() I have
> 
>  > str(readRDS(dir(tempdir(), full=TRUE)[1]))
> List of 2
>   $ base : chr
> "/home/mtmorgan/bin/R-3-4-
> branch/library,Version,Priority,Depends,Imports,LinkingTo,Suggests,Enhances,Li
> cense,Li"|
> __truncated__
>   $ value: chr [1:29, 1:17] "base" "boot" "class" "cluster" ...
>  > str(readRDS(dir(tempdir(), full=TRUE)[2]))
> List of 2
>   $ base : chr
> "/home/mtmorgan/R/x86_64-pc-linux-gnu-library/3.4-Bioc-
> 3.5,Version,Priority,Depends,Imports,LinkingTo,Suggests,E"|
> __truncated__
>   $ value: chr [1:513, 1:17] "abind" "acepack" "aCGH" "ADaCGH2" ...
> 
> I'm guessing that one of these files is corrupted somehow, but it's not
> obvious how. Can you use options(error=recover) and find the values that
> cause the conditional to fail?
> 
> Martin
> 
> >
> >
> >> -----Original Message-----
> >> From: Gordon K Smyth
> >> Sent: Tuesday, 11 April 2017 6:26 PM
> >> To: bioc-devel at r-project.org
> >> Subject: Using BiocInstaller with R 3.4.0 beta
> >>
> >> I thought I would test out R 3.4.0 beta (for Windows) but now I can't use the
> >> BiocInstaller package. Attempts to use biocLite() or biocValid() lead to an
> error
> >> message as shown below.
> >>
> >> What have I overlooked?
> >>
> >> Thanks
> >> Gordon
> >>
> >>> sessionInfo()
> >> R version 3.4.0 beta (2017-04-08 r72499)
> >> Platform: x86_64-w64-mingw32/x64 (64-bit)
> >> Running under: Windows 7 x64 (build 7601) Service Pack 1
> >>
> >> Matrix products: default
> >>
> >> locale:
> >> [1] LC_COLLATE=English_Australia.1252  LC_CTYPE=English_Australia.1252
> >> LC_MONETARY=English_Australia.1252
> >> [4] LC_NUMERIC=C                       LC_TIME=English_Australia.1252
> >>
> >> attached base packages:
> >> [1] stats     graphics  grDevices utils     datasets  methods   base
> >>
> >> loaded via a namespace (and not attached):
> >> [1] compiler_3.4.0
> >>> remove.packages("BiocInstaller")
> >> Removing package from 'C:/lib/R/R-3.4.0beta/library'
> >> (as 'lib' is unspecified)
> >> Error in find.package(pkgs, lib) :
> >>   there is no package called 'BiocInstaller'
> >>> source("https://bioconductor.org/biocLite.R")
> >> trying URL
> >>
> 'https://bioconductor.org/packages/3.5/bioc/bin/windows/contrib/3.4/BiocInst
> >> aller_1.25.3.zip'
> >> Content type 'application/zip' length 127489 bytes (124 KB)
> >> downloaded 124 KB
> >>
> >> package 'BiocInstaller' successfully unpacked and MD5 sums checked
> >>
> >> The downloaded binary packages are in
> >>
> >> C:\Users\smyth\AppData\Local\Temp\RtmpOUhCbB\downloaded_packages
> >> Bioconductor version 3.5 (BiocInstaller 1.25.3), ?biocLite for help
> >>> BiocInstaller::biocValid()
> >> Error in if (file.exists(dest) && file.mtime(dest) > file.mtime(lib) &&  :
> >>   missing value where TRUE/FALSE needed
> >>
> >>
> >> ---------------------------------------------
> >> Professor Gordon K Smyth,
> >> Head, Bioinformatics Division,
> >> Walter and Eliza Hall Institute of Medical Research,
> >> http://www.statsci.org/smyth
> >
> > _______________________________________________
> > Bioc-devel at r-project.org mailing list
> > https://stat.ethz.ch/mailman/listinfo/bioc-devel
> >
> 
> 
> This email message may contain legally privileged and/or confidential
> information.  If you are not the intended recipient(s), or the employee or agent
> responsible for the delivery of this message to the intended recipient(s), you are
> hereby notified that any disclosure, copying, distribution, or use of this email
> message is prohibited.  If you have received this message in error, please notify
> the sender immediately by e-mail and delete this email message from your
> computer. Thank you.



More information about the Bioc-devel mailing list