[Bioc-devel] Using BiocInstaller with R 3.4.0 beta
Martin Morgan
martin.morgan at roswellpark.org
Tue Apr 11 11:20:16 CEST 2017
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,License,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...{{dropped:2}}
More information about the Bioc-devel
mailing list