Packages don't update, but no error or warning is thrown
2
0
Entering edit mode
gernophil • 0
@8acce5d5
Last seen 9 months ago
Germany

Hey everyone,

I am having some issues updating some packages. I am using Bioconductor 3.18 and sometimes, when I want to update my packages using BiocManager::install() (or, if I install a specific package), I am asked, if I want to update some packages. So far so normal and I mostly select all then. Most of the packages are updated, but some simply aren't. I don't get a warning or error for them, but if I rerun BiocManager::install(), they still show up as old packages. Right now it's Biostrings and edgeR. For month the package DBI showed up as old, until I simply installed it from source. I could do the same for Biostringsand edgeR, I guess, but I wonder why this happens and why I don't get any error/warning message. I guess this is because some updates are released and are not yet available precompiled for my arch (arm64; Apple Silicon).

The same also happens for some CRAN packages that simply don't update for some time, till some weeks later they can be updated.

Any explanation?

Here's my complete output:

> BiocManager::install()
'getOption("repos")' replaces Bioconductor standard repositories, see 'help("repositories", package =
"BiocManager")' for details.
Replacement repositories:
    CRAN: https://cran.rstudio.com/
Bioconductor version 3.18 (BiocManager 1.30.22), R 4.3.2 (2023-10-31)
Old packages: 'Biostrings', 'edgeR'
Update all/some/none? [a/s/n]: 
a
trying URL 'https://bioconductor.org/packages/3.18/bioc/bin/macosx/big-sur-arm64/contrib/4.3/Biostrings_2.70.1.tgz'
Content type 'application/x-gzip' length 14458224 bytes (13.8 MB)
==================================================
downloaded 13.8 MB

trying URL 'https://bioconductor.org/packages/3.18/bioc/bin/macosx/big-sur-arm64/contrib/4.3/edgeR_4.0.12.tgz'
Content type 'application/x-gzip' length 2916094 bytes (2.8 MB)
==================================================
downloaded 2.8 MB


The downloaded binary packages are in
    /var/folders/ws/vdb_nvyj35g9ck_srpvqpccm0000gn/T//Rtmpe0k3Id/downloaded_packages

And then, if I do it again:

> BiocManager::install()
'getOption("repos")' replaces Bioconductor standard repositories, see 'help("repositories", package =
"BiocManager")' for details.
Replacement repositories:
    CRAN: https://cran.rstudio.com/
Bioconductor version 3.18 (BiocManager 1.30.22), R 4.3.2 (2023-10-31)
Old packages: 'Biostrings', 'edgeR'
Update all/some/none? [a/s/n]: 
a
trying URL 'https://bioconductor.org/packages/3.18/bioc/bin/macosx/big-sur-arm64/contrib/4.3/Biostrings_2.70.1.tgz'
Content type 'application/x-gzip' length 14458224 bytes (13.8 MB)
==================================================
downloaded 13.8 MB

trying URL 'https://bioconductor.org/packages/3.18/bioc/bin/macosx/big-sur-arm64/contrib/4.3/edgeR_4.0.12.tgz'
Content type 'application/x-gzip' length 2916094 bytes (2.8 MB)
==================================================
downloaded 2.8 MB


The downloaded binary packages are in
    /var/folders/ws/vdb_nvyj35g9ck_srpvqpccm0000gn/T//Rtmpe0k3Id/downloaded_packages
Bioconductor • 2.8k views
ADD COMMENT
2
Entering edit mode

Thanks for pointing this out. The title suggests there is an error state thrown but I think you are referring to an apparent error in BiocManager operations. Let's get some details; I am wedded to the devel branch at the moment but I think I can see what you are talking about:

> BiocManager::valid()

* sessionInfo()

R Under development (unstable) (2024-01-09 r85796)
Platform: aarch64-apple-darwin20
Running under: macOS Sonoma 14.2.1

Matrix products: default
BLAS:   /Library/Frameworks/R.framework/Versions/4.4-arm64/Resources/lib/libRblas.0.dylib 
LAPACK: /Library/Frameworks/R.framework/Versions/4.4-arm64/Resources/lib/libRlapack.dylib;  LAPACK version 3.12.0

locale:
[1] en_US.UTF-8/en_US.UTF-8/en_US.UTF-8/C/en_US.UTF-8/en_US.UTF-8

time zone: America/New_York
tzcode source: internal

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base     

other attached packages:
[1] rmarkdown_2.25

loaded via a namespace (and not attached):
 [1] BiocManager_1.30.22 compiler_4.4.0      startup_0.21.0     
 [4] fastmap_1.1.1       cli_3.6.2           tools_4.4.0        
 [7] htmltools_0.5.7     knitr_1.45          xfun_0.41          
[10] digest_0.6.34       rlang_1.1.3         evaluate_0.23      

Bioconductor version '3.19'

  * 15 packages out-of-date
  * 2 packages too new

create a valid installation with

  BiocManager::install(c(
    "annotate", "basilisk", "BiocSklearn", "Biostrings", "commonmark",
    "data.table", "edgeR", "GenomicFeatures", "igraph", "listenv", "scater",
    "scviR", "sp", "VariantAnnotation", "velociraptor", "viridis", "yulab.utils"
  ), update = TRUE, ask = FALSE, force = TRUE)

more details: BiocManager::valid()$too_new, BiocManager::valid()$out_of_date

Warning message:
15 packages out-of-date; 2 packages too new 
> BiocManager::install("edgeR")
Bioconductor version 3.19 (BiocManager 1.30.22), R Under development (unstable)
  (2024-01-09 r85796)
Installing package(s) 'edgeR'
trying URL 'https://bioconductor.org/packages/3.19/bioc/bin/macosx/big-sur-arm64/contrib/4.4/edgeR_4.1.13.tgz'
Content type 'application/x-gzip' length 2927756 bytes (2.8 MB)
==================================================
downloaded 2.8 MB


The downloaded binary packages are in
    /var/folders/n4/p9th81md60s8nv12yv40sv8m0000gp/T//RtmpPjo2Ak/downloaded_packages
Old packages: 'annotate', 'basilisk', 'BiocSklearn', 'Biostrings',
  'commonmark', 'data.table', 'edgeR', 'GenomicFeatures', 'igraph', 'listenv',
  'scater', 'sp', 'VariantAnnotation', 'viridis', 'yulab.utils'
Update all/some/none? [a/s/n]:

So if I read this correctly, I updated edgeR and then am told it is old and a candidate for updating. Indeed the issue is that a simple use of BiocManager::install will seek a binary version of the package. If I add type="source" to my installation request, which on macos requires availability of xcode for compilation support, then this loopy behavior of checking for available updates goes away.

ADD REPLY
0
Entering edit mode

Thanks for the reply. I also posted this at biostars and I updated the title and entered my whole output. I hope it's less confusing now.

So, if I got you correctly, there's not much I can do (besides compiling from source). I just have to wait for a compiled version. Is there anything like type = no_source?

ADD REPLY
1
Entering edit mode
@gordon-smyth
Last seen 6 hours ago
WEHI, Melbourne, Australia

The release version of edgeR has been updated twice in the past two days (documentation improvements and a bug fix). At the time that I write this, the edgeR landing page shows that the Windows binaries and Mac-Intel binaries are up-to-date but the Arm64 binary hasn't caught up yet:

It's not an error, you're still getting a recent version of edgeR (from 20 January 2024), but you'll have to wait a few more days for the very latest to percolate through.

ADD COMMENT
0
Entering edit mode

Thanks. Still would be nice to get a warning or something :).

ADD REPLY
0
Entering edit mode

I believe the default for MacOS is to install binaries, unlike Linux and Windows, which default to source and 'both', respectively. On my Windows box I get this:

> install()
'getOption("repos")' replaces Bioconductor standard repositories, see 'help("repositories", package =
"BiocManager")' for details.
Replacement repositories:
    CRAN: https://cran.rstudio.org
Bioconductor version 3.18 (BiocManager 1.30.22), R 4.3.1 (2023-06-16 ucrt)
Installation paths not writeable, unable to update packages
  path: C:/Program Files/R/R-4.3.1/library
  packages:
    cluster, foreign, KernSmooth, lattice, MASS, nlme, rpart, spatial, survival
Old packages: 'basilisk', 'BH', 'BiocCheck', 'biomaRt', 'Biostrings', 'BSgenomeForge', 'cBioPortalData', 'coda',
  'commonmark', 'cowplot', 'cytolib', 'data.table', 'DBI', 'digest', 'DSS', 'edgeR', 'emmeans', 'expm',
  'fastcluster', 'ff', 'flowCore', 'flowWorkspace', 'FNN', 'future', 'future.apply', 'GenomeInfoDb',
  'GenomicAlignments', 'GenomicScores', 'ggfun', 'ggkegg', 'ggrepel', 'ggVennDiagram', 'glue', 'GOSemSim',
  'graphlayouts', 'gt', 'httpuv', 'igraph', 'interp', 'listenv', 'Matrix', 'mgcv', 'mixsqp', 'MOFA2', 'patchwork',
  'pkgload', 'plotly', 'poweRlaw', 'ps', 'psych', 'R.oo', 'Rcpp', 'RcppAnnoy', 'RCurl', 'readr', 'reprex',
  'Rhtslib', 'rjsoncons', 'rlang', 'RSQLite', 'Rsubread', 's2', 'segmented', 'sf', 'shadowtext', 'shinyWidgets',
  'sp', 'SparseArray', 'tidygraph', 'tidyr', 'timechange', 'uuid', 'viridis', 'withr', 'XML', 'yulab.utils', 'zip'
Update all/some/none? [a/s/n]: a
also installing the dependencies 'admisc', 'venn'


  There are binary versions available but the source versions are later:
            binary   source needs_compilation
coda        0.19-4 0.19-4.1             FALSE
commonmark   1.9.0    1.9.1              TRUE
data.table 1.14.10   1.15.0              TRUE
DBI          1.2.0    1.2.1             FALSE
igraph       2.0.1  2.0.1.1              TRUE
sp           2.1-2    2.1-3              TRUE
tidygraph    1.3.0    1.3.1              TRUE

Do you want to install from sources the packages which need compilation? (Yes/no/cancel)

This has nothing to do with BiocManager::install however, as the defaults are set in your options, and if you don't specify the pkgType you want, then you get the default option.

> getOption("pkgType")
[1] "both"

If you want a warning, you can simply set your .Rprofile file to specify options(pkgType = "both"), and then you will get the warning. Or remember to specify that each time you use install, but nobody wants to do that.

ADD REPLY
0
Entering edit mode

Well, my pkgType is already set to "both". I still don't get any warning.

> getOption("pkgType")
[1] "both"
ADD REPLY
0
Entering edit mode

Do you have XCode installed?

ADD REPLY
0
Entering edit mode

Yes, I also have GNU Fortran (and the openmp library) from mac.r-project.org. If I specify type = source, I am also able to install from source. What is interesting is, even if I install a package from source, this will still be updated from binaries later. And even though my pkgType is "both", my .Platform$pkgType is "mac.binary.big-sur-arm64".

ADD REPLY
2
Entering edit mode

Yeah, no idea. The biostars people point to a Posit help page where they think it's an update to install.packages because 'it used to work'. I don't use MacOS, so I wouldn't know, but I did peruse Winston Chang's GitHub of the R sources and I don't see any recent changes that might be relevant.

But anyway, it's almost certainly an install.packages issue rather than BiocManager::install, so you might check over at r-help@r-project.org.

ADD REPLY
1
Entering edit mode

For troubleshooting, you could try utils::install.packges("edgeR", repos = BiocManager::repositories()) (perhaps also with type = "source", as you explore...; actually I am not sure what your troublesome package is, I'm assuming it is edgeR). utils::install.packages() makes sure you avoid any RStudio customization.

You might look at .libPaths(), and look for the same package installed in more than one directory -- R might be updating in one location, but loading from another.

Also, is "edgeR" already loaded (appearing anywhere in sessionInfo()? If so restart your R session.

ADD REPLY
0
Entering edit mode
gernophil • 0
@8acce5d5
Last seen 9 months ago
Germany

As suggested I check over at r-help@r-project.org: https://stat.ethz.ch/pipermail/r-help/2024-February/478888.html

There is not really an answer, but more confusion. RStudio might mask the utils::install.packages() with it's own install.packages(). However, I could not verify this. Besides that updating packages should not be done with install.packages(), but with update.packages(). However, this command also doesn't do anything :D. Maybe the easiest is just to ignore packages that are not updated and just wait till at some point they are updated.

ADD COMMENT
0
Entering edit mode

@sandtrix This is useful information.

ADD REPLY

Login before adding your answer.

Traffic: 514 users visited in the last hour
Help About
FAQ
Access RSS
API
Stats

Use of this site constitutes acceptance of our User Agreement and Privacy Policy.

Powered by the version 2.3.6