[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