rocker-org / rocker

R configurations for Docker
https://rocker-project.org
GNU General Public License v2.0
1.46k stars 271 forks source link

latest r-base breaks install of `curl` package #546

Closed mikeblas closed 8 months ago

mikeblas commented 8 months ago

Looks like the new r-base has broken a lot of packages. If I have this dockerfile, I can't build it:

    FROM r-base

    # from https://hub.docker.com/_/r-base/

    # update packages first, this must be separate (I think?)
    RUN apt-get update

    # build and install ODBC driver
    RUN apt-get install --yes --no-install-recommends \
            apt-transport-https \
            curl

because some packages have unmet dependencies:

    0.957 Reading package lists...
    5.078 Building dependency tree...
    6.119 Reading state information...
    6.695 Some packages could not be installed. This may mean that you have
    6.695 requested an impossible situation or if you are using the unstable
    6.695 distribution that some required packages have not yet been created
    6.695 or been moved out of Incoming.
    6.698 The following information may help to resolve the situation:
    6.698
    6.698 The following packages have unmet dependencies:
    7.525  libcurl4t64 : Breaks: libcurl4 (< 8.6.0-3.2)
    7.558 E: Error, pkgProblemResolver::Resolve generated breaks, this may be caused by held packages.

If I use FROM r-base:4.3.0, this dockerifle builds just fine.

Some code in the dockerfile for r-base was left un-commented; it seems to be adding a Debian experimental repository, plus eddelbuettel's PPA to the repository. I haven't seen that stanza un-commented before. I don't understand why it exists, but it seems to be the cause of the break.

What's going on here?

eddelbuettel commented 8 months ago

What's going on here?

In a nutshell, the 64-bit time_t transition. You could switch containers to an Ubuntu LTS base (rocker/r2u is great and gives you 22k CRAN binaries, see https://eddelbuettel.github.io/r2u).

Or just change apt install .... to apt install -t unstable. It happens every once in a while and it is a Debian issue.

Now rocker/r-base (and r-base) being based on Debian testing do get the skirmish from unstable in times like these.

eddelbuettel commented 8 months ago

Proof:

edd@rob:~$ dkrrr r-base bash                   # dkrrr is a local alias to 'docker run as root'
root@e58a6b35e10d:/# apt update -qqq;
root@e58a6b35e10d:/# apt install -t unstable curl
Recommended packages:
  publicsuffix
The following packages will be REMOVED:
  libcurl4 libpsl5 libssh2-1 libssl3
The following NEW packages will be installed:
  curl libcurl4t64 libpsl5t64 libssh2-1t64 libssl3t64
The following packages will be upgraded:
  openssl
1 upgraded, 5 newly installed, 4 to remove and 111 not upgraded.
Need to get 4,342 kB of archives.
After this operation, 543 kB of additional disk space will be used.
Get:2 http://deb.debian.org/debian sid/main amd64 libcurl4t64 amd64 8.6.0-3.2 [430 kB]
Get:3 http://deb.debian.org/debian sid/main amd64 openssl amd64 3.1.5-1.1 [1,241 kB]
Get:4 http://deb.debian.org/debian sid/main amd64 libssl3t64 amd64 3.1.5-1.1 [2,058 kB]
Get:5 http://deb.debian.org/debian sid/main amd64 libssh2-1t64 amd64 1.11.0-4.1+b1 [215 kB]
Get:6 http://deb.debian.org/debian sid/main amd64 curl amd64 8.6.0-3.2 [341 kB]    
Fetched 4,342 kB in 0s (11.1 MB/s)
debconf: delaying package configuration, since apt-utils is not installed
dpkg: libpsl5:amd64: dependency problems, but removing anyway as you requested:
 wget depends on libpsl5 (>= 0.16.0).
 libcurl4:amd64 depends on libpsl5 (>= 0.16.0).

(Reading database ... 18943 files and directories currently installed.)
Removing libpsl5:amd64 (0.21.2-1+b1) ...
Selecting previously unselected package libpsl5t64:amd64.
(Reading database ... 18936 files and directories currently installed.)
Preparing to unpack .../libpsl5t64_0.21.2-1.1_amd64.deb ...
Unpacking libpsl5t64:amd64 (0.21.2-1.1) ...
dpkg: libcurl4:amd64: dependency problems, but removing anyway as you requested:
 r-base-core depends on libcurl4 (>= 7.28.0).

(Reading database ... 18943 files and directories currently installed.)
Removing libcurl4:amd64 (8.6.0-3) ...
Selecting previously unselected package libcurl4t64:amd64.
(Reading database ... 18937 files and directories currently installed.)
Preparing to unpack .../libcurl4t64_8.6.0-3.2_amd64.deb ...
Unpacking libcurl4t64:amd64 (8.6.0-3.2) ...
(Reading database ... 18944 files and directories currently installed.)
Removing libssh2-1:amd64 (1.11.0-4) ...
(Reading database ... 18936 files and directories currently installed.)
Preparing to unpack .../openssl_3.1.5-1.1_amd64.deb ...
Unpacking openssl (3.1.5-1.1) over (3.1.5-1) ...
dpkg: libssl3:amd64: dependency problems, but removing anyway as you requested:
 libsasl2-2:amd64 depends on libssl3 (>= 3.0.0).
 libkrb5-3:amd64 depends on libssl3 (>= 3.0.0).
 coreutils depends on libssl3 (>= 3.0.0).

(Reading database ... 18936 files and directories currently installed.)
Removing libssl3:amd64 (3.1.5-1) ...
Selecting previously unselected package libssl3t64:amd64.
(Reading database ... 18923 files and directories currently installed.)
Preparing to unpack .../libssl3t64_3.1.5-1.1_amd64.deb ...
Unpacking libssl3t64:amd64 (3.1.5-1.1) ...
Setting up libssl3t64:amd64 (3.1.5-1.1) ...
Selecting previously unselected package libssh2-1t64:amd64.
(Reading database ... 18938 files and directories currently installed.)
Preparing to unpack .../libssh2-1t64_1.11.0-4.1+b1_amd64.deb ...
Unpacking libssh2-1t64:amd64 (1.11.0-4.1+b1) ...
Selecting previously unselected package curl.
Preparing to unpack .../curl_8.6.0-3.2_amd64.deb ...
Unpacking curl (8.6.0-3.2) ...
Setting up libpsl5t64:amd64 (0.21.2-1.1) ...
Setting up libssh2-1t64:amd64 (1.11.0-4.1+b1) ...
Setting up openssl (3.1.5-1.1) ...
Setting up libcurl4t64:amd64 (8.6.0-3.2) ...
Setting up curl (8.6.0-3.2) ...
Processing triggers for libc-bin (2.37-15) ...
root@e58a6b35e10d:/# 
eddelbuettel commented 8 months ago

Also, as I mentioned:

edd@rob:~$ dkrrr rocker/r2u bash                                                                                                                                                                                   
root@9e5f54ba4dd5:/# Rscript -e 'install.packages("odbc")'                                                                                                                                                         
Get:1 https://cloud.r-project.org/bin/linux/ubuntu jammy-cran40/ InRelease [3626 B]                                                                                                                                
Get:2 http://security.ubuntu.com/ubuntu jammy-security InRelease [110 kB]                                                                                                                                          
Get:3 https://cloud.r-project.org/bin/linux/ubuntu jammy-cran40/ Packages [50.4 kB]                                                                                                                                
Ign https://r2u.stat.illinois.edu/ubuntu jammy InRelease                                                                                                                                                           
Get:4 https://r2u.stat.illinois.edu/ubuntu jammy Release [5713 B]                                                                                                                                                  
Get:5 https://r2u.stat.illinois.edu/ubuntu jammy Release.gpg [793 B]                                                                                                                                               
Get:6 https://r2u.stat.illinois.edu/ubuntu jammy/main amd64 Packages [2480 kB]                                                                                                                                     
Get:7 http://archive.ubuntu.com/ubuntu jammy InRelease [270 kB]                                                                                                                                                    
Get:8 https://r2u.stat.illinois.edu/ubuntu jammy/main all Packages [7895 kB]                                                                                                                                       
Get:9 http://security.ubuntu.com/ubuntu jammy-security/multiverse amd64 Packages [44.6 kB]                                                                                                                         
Get:10 http://security.ubuntu.com/ubuntu jammy-security/main amd64 Packages [1569 kB]                                                                                                                              
Get:11 http://security.ubuntu.com/ubuntu jammy-security/universe amd64 Packages [1079 kB]                                                                                                                          
Get:12 http://security.ubuntu.com/ubuntu jammy-security/restricted amd64 Packages [1960 kB]   
Get:13 http://archive.ubuntu.com/ubuntu jammy-updates InRelease [119 kB]                                                                                                                                           
Get:14 http://archive.ubuntu.com/ubuntu jammy-backports InRelease [109 kB]                                                                                                                                         
Get:15 http://archive.ubuntu.com/ubuntu jammy/universe amd64 Packages [17.5 MB]                                                                                                                                    
Get:16 http://archive.ubuntu.com/ubuntu jammy/main amd64 Packages [1792 kB]                                                                                                                                        
Get:17 http://archive.ubuntu.com/ubuntu jammy/restricted amd64 Packages [164 kB]                                                                                                                                   
Get:18 http://archive.ubuntu.com/ubuntu jammy/multiverse amd64 Packages [266 kB]                                                                                                                                   
Get:19 http://archive.ubuntu.com/ubuntu jammy-updates/main amd64 Packages [1848 kB]                                                                                                                                
Get:20 http://archive.ubuntu.com/ubuntu jammy-updates/multiverse amd64 Packages [50.4 kB]                                                                                                                          
Get:21 http://archive.ubuntu.com/ubuntu jammy-updates/restricted amd64 Packages [1997 kB]                                                                                                                          
Get:22 http://archive.ubuntu.com/ubuntu jammy-updates/universe amd64 Packages [1352 kB]                                                                                                                            
Get:23 http://archive.ubuntu.com/ubuntu jammy-backports/universe amd64 Packages [33.3 kB]                                                                                                                          
Get:24 http://archive.ubuntu.com/ubuntu jammy-backports/main amd64 Packages [80.9 kB]                                                                                                                              
Fetched 40.8 MB in 0s (0 B/s)                                                                                                                                                                                      
Install system packages as root...
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
Reading package lists... Done    
Building dependency tree... Done 
Reading state information... Done
Get:1 https://r2u.stat.illinois.edu/ubuntu jammy/main amd64 r-cran-bit amd64 4.0.5-1.ca2204.1 [1061 kB]                                                                                                            
Get:2 http://archive.ubuntu.com/ubuntu jammy/main amd64 libltdl7 amd64 2.4.6-15build2 [39.6 kB]                                                                                                                    
Get:3 https://r2u.stat.illinois.edu/ubuntu jammy/main amd64 r-cran-bit64 amd64 4.0.5-1.ca2204.1 [466 kB]                                                                                                           
Get:4 https://r2u.stat.illinois.edu/ubuntu jammy/main amd64 r-cran-rlang amd64 1.1.3-1.ca2204.1 [1500 kB]                                                                                                          
Get:5 https://r2u.stat.illinois.edu/ubuntu jammy/main amd64 r-cran-cli amd64 3.6.2-1.ca2204.1 [1239 kB]                                                                                                            
Get:6 https://r2u.stat.illinois.edu/ubuntu jammy/main amd64 r-cran-glue amd64 1.7.0-1.ca2204.1 [147 kB]                                                                                                            
Get:7 https://r2u.stat.illinois.edu/ubuntu jammy/main all r-cran-lifecycle all 1.0.4-1.ca2204.1 [113 kB]                                                                                                           
Get:8 https://r2u.stat.illinois.edu/ubuntu jammy/main amd64 r-cran-vctrs amd64 0.6.5-1.ca2204.1 [1214 kB]                                                                                                          
Get:9 https://r2u.stat.illinois.edu/ubuntu jammy/main all r-cran-blob all 1.2.4-1.ca2204.1 [46.9 kB]                                                                                                               
Get:10 https://r2u.stat.illinois.edu/ubuntu jammy/main all r-cran-dbi all 1.2.2-1.ca2204.1 [835 kB]                                                                                                                
Get:11 https://r2u.stat.illinois.edu/ubuntu jammy/main all r-cran-pkgconfig all 2.0.3-1.ca2204.1 [18.9 kB]                                                                                                        
Get:12 https://r2u.stat.illinois.edu/ubuntu jammy/main all r-cran-hms all 1.1.3-1.ca2204.1 [96.9 kB]                                                                                                               
Get:13 https://r2u.stat.illinois.edu/ubuntu jammy/main amd64 r-cran-rcpp amd64 1.0.12-1.ca2204.1 [1972 kB]                                                                                                        
Get:14 https://r2u.stat.illinois.edu/ubuntu jammy/main amd64 r-cran-odbc amd64 1.4.2-1.ca2204.1 [633 kB]                                                                                                           
Get:15 http://archive.ubuntu.com/ubuntu jammy/main amd64 libodbc2 amd64 2.3.9-5 [159 kB]                                                                                                                           
Fetched 9543 kB in 0s (0 B/s)                                                                                   
Selecting previously unselected package libltdl7:amd64.
(Reading database ... 18321 files and directories currently installed.)
Preparing to unpack .../00-libltdl7_2.4.6-15build2_amd64.deb ...
Unpacking libltdl7:amd64 (2.4.6-15build2) ...
Selecting previously unselected package libodbc2:amd64.
Preparing to unpack .../01-libodbc2_2.3.9-5_amd64.deb ...
Unpacking libodbc2:amd64 (2.3.9-5) ...
Selecting previously unselected package r-cran-bit.
Preparing to unpack .../02-r-cran-bit_4.0.5-1.ca2204.1_amd64.deb ...
Unpacking r-cran-bit (4.0.5-1.ca2204.1) ...
Selecting previously unselected package r-cran-bit64.
Preparing to unpack .../03-r-cran-bit64_4.0.5-1.ca2204.1_amd64.deb ...
Unpacking r-cran-bit64 (4.0.5-1.ca2204.1) ...
Selecting previously unselected package r-cran-rlang.
Preparing to unpack .../04-r-cran-rlang_1.1.3-1.ca2204.1_amd64.deb ...
Unpacking r-cran-rlang (1.1.3-1.ca2204.1) ...
Selecting previously unselected package r-cran-cli.
Preparing to unpack .../05-r-cran-cli_3.6.2-1.ca2204.1_amd64.deb ...
Unpacking r-cran-cli (3.6.2-1.ca2204.1) ...
Selecting previously unselected package r-cran-glue. 
Preparing to unpack .../06-r-cran-glue_1.7.0-1.ca2204.1_amd64.deb ...
Unpacking r-cran-glue (1.7.0-1.ca2204.1) ...
Selecting previously unselected package r-cran-lifecycle.
Preparing to unpack .../07-r-cran-lifecycle_1.0.4-1.ca2204.1_all.deb ...
Unpacking r-cran-lifecycle (1.0.4-1.ca2204.1) ...
Selecting previously unselected package r-cran-vctrs.
Preparing to unpack .../08-r-cran-vctrs_0.6.5-1.ca2204.1_amd64.deb ...
Unpacking r-cran-vctrs (0.6.5-1.ca2204.1) ...
Selecting previously unselected package r-cran-blob. 
Preparing to unpack .../09-r-cran-blob_1.2.4-1.ca2204.1_all.deb ...
Unpacking r-cran-blob (1.2.4-1.ca2204.1) ...
Selecting previously unselected package r-cran-dbi.
Preparing to unpack .../10-r-cran-dbi_1.2.2-1.ca2204.1_all.deb ...
Unpacking r-cran-dbi (1.2.2-1.ca2204.1) ...
Selecting previously unselected package r-cran-pkgconfig.
Preparing to unpack .../11-r-cran-pkgconfig_2.0.3-1.ca2204.1_all.deb ...
Unpacking r-cran-pkgconfig (2.0.3-1.ca2204.1) ...
Selecting previously unselected package r-cran-hms.
Preparing to unpack .../12-r-cran-hms_1.1.3-1.ca2204.1_all.deb ...
Unpacking r-cran-hms (1.1.3-1.ca2204.1) ...
Selecting previously unselected package r-cran-rcpp. 
Preparing to unpack .../13-r-cran-rcpp_1.0.12-1.ca2204.1_amd64.deb ...
Unpacking r-cran-rcpp (1.0.12-1.ca2204.1) ...
Selecting previously unselected package r-cran-odbc. 
Preparing to unpack .../14-r-cran-odbc_1.4.2-1.ca2204.1_amd64.deb ...
Unpacking r-cran-odbc (1.4.2-1.ca2204.1) ...
Setting up r-cran-rcpp (1.0.12-1.ca2204.1) ...
Setting up r-cran-rlang (1.1.3-1.ca2204.1) ...
Setting up r-cran-dbi (1.2.2-1.ca2204.1) ...
Setting up r-cran-glue (1.7.0-1.ca2204.1) ...
Setting up r-cran-bit (4.0.5-1.ca2204.1) ...
Setting up r-cran-cli (3.6.2-1.ca2204.1) ...
Setting up r-cran-lifecycle (1.0.4-1.ca2204.1) ...
Setting up r-cran-bit64 (4.0.5-1.ca2204.1) ...
Setting up r-cran-pkgconfig (2.0.3-1.ca2204.1) ...
Setting up libltdl7:amd64 (2.4.6-15build2) ...
Setting up libodbc2:amd64 (2.3.9-5) ...
Setting up r-cran-vctrs (0.6.5-1.ca2204.1) ...
Setting up r-cran-hms (1.1.3-1.ca2204.1) ...
Setting up r-cran-blob (1.2.4-1.ca2204.1) ...
Setting up r-cran-odbc (1.4.2-1.ca2204.1) ...
Processing triggers for libc-bin (2.35-0ubuntu3.1) ...
root@9e5f54ba4dd5:/# 

I use this a lot myself, for CI, for development, for testing, for easier setup. No compilation needed. As I tend to say

r2u. Fast. Easy. Reliable. Pick all three.

mikeblas commented 8 months ago

Great, thanks! I hadn't heard for r2u before, but it looks very useful.

eddelbuettel commented 8 months ago

It's the best thing since slided bread. I worked on such approaches for 20 years, and this one gets it done. Lovely.

Some history and context here: https://arxiv.org/abs/2103.08069

So see you over at the r2u repo / rocker containers and make sure you give the repo a star.

Someone894 commented 8 months ago

@eddelbuettel as we discussed some years ago, I am using r-base on ppc64le and i ran into the same problem as discussed here, for me the apt-get -y install -t unstable is the way to go since there is no ppc64le version of the r2u image, but id love to use r2u in the fututre. Could you be a dear and have r2u also build for ppc64le?

eddelbuettel commented 8 months ago

@Someone894 I wrote about that on mastodon the other day. May take a million USD or EUR and two engineers.

Until then it will remain what I wrote and run under my time budget to solve my (and others) need on x86_64. Sorry but your expectation is not realistic. Maybe if you pool with other ppc64le users you can bootstrap something.

Someone894 commented 8 months ago

Sorry, I had in mind that its only flipping a switch for you and it works, I dident knew it was much work, then forget about it.