[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Install older version of a package with the "@version" specifier

From: zimoun
Subject: Re: Install older version of a package with the "@version" specifier
Date: Fri, 26 Jun 2020 20:04:37 +0200


On Fri, 26 Jun 2020 at 19:15, Julien Lepiller <> wrote:

> - use r from an old revision of guix that had the version you're looking for. 
> This can be done using an "inferior". The package will more likely build (and 
> even have substitutes), but it uses the old version of all its dependencies, 
> which are not necessarily patched for vulnerabilities and may require more 
> space to be stored, as they are not shared with other packages.

It is not easy to find the old revision (commit) which owns the
version you are looking for.  In such cases, the Guix Data Service
could help.  For example, this URL lists all the R versions in Guix
over the time:

As you can see, it is rare that 2 versions of R exist at the same time
in Guix.  I let you click and you will find that the last commit
containing the R version 3.6.3 is the commit 899093.

Then the way for creating an inferior is "guix time-machine".  It goes
back but without polluting your current setup; you can have different
versions from different time/commit.  The following command creates
temporarily an old Guix version and use it for spawning an environment
containing R.

--8<---------------cut here---------------start------------->8---
$ guix time-machine --commit=899093      \
     -- environment --ad-hoc r-minimal \
     -- R
R version 3.6.3 (2020-02-29) -- "Holding the Windsock"
> sessionInfo()
R version 3.6.3 (2020-02-29)
Platform: x86_64-unknown-linux-gnu (64-bit)
Running under: Debian GNU/Linux 10 (buster)

Matrix products: default

[1] C

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

loaded via a namespace (and not attached):
[1] compiler_3.6.3
--8<---------------cut here---------------end--------------->8---

Instead of 'environment', you can use 'install -p
/path/to/profile/with/old/R'.  However, it is important to be clear
with which version of R you are using and which version is used to
"compile" the R packages you will install, and use a manifest.scm file
is really a good practise when traveling in time. :-)

Hope that helps,

reply via email to

[Prev in Thread] Current Thread [Next in Thread]