Re: How to install an old package version?
Hi cdelia, > How does guix resolves de dependency tree in those cases? Say I need a > previous package X version, that depends on an earlier package Y > version that the one that is defined on the "main" guix. No “resolving” happens. Guix is a collection of Scheme variables whose values are package objects. These package objects refer to the values of other Scheme variables in Guix. So a package that depends on “python” actually references the value of the “python” variable. This means that replacing a package in the dependency graph requires more effort. Adding the package definition itself won’t be enough. You would need to use the input rewriting API to rewrite the full dependency graph of the packages that you are interested in, replacing every instance of “python” with “my/python” recursively. Obviously, this would result in packages for which we cannot provide binaries. >> Alternatively, you can use a guix git checkout on a specific commit >> that >> still has python-2.7.10, but it's probably not what you want. > > So, to avoid recursive definition of packages: Could I checkout an > earlier guix revision, install the package and then checkout the > latest guix version? > Would that work or it will bring other kind of dragons? You can do this in a manifest and using an “inferior” Guix. See my other message and/or the manual. I suggest using manifests for this instead of doing this manually. -- Ricardo
Re: How to install an old package version?
Hi! real newbie to guix here! You have to make your own package for this version, that would look like this: (define-public python-2.7.10 (package (inherit python) (version "2.7.10") (source (origin (inherit (package-source python-2.7)) (uri (string-append "https://www.python.org/ftp/python/;; version "/Python-" version ".tar.xz")) (sha256 (base32 "some-letters-and-numbers")) and to put it to a file from GUIX_PACKAGE_PATH. See (info "(guix) Package Modules") for details. This brings me some doubts. How does guix resolves de dependency tree in those cases? Say I need a previous package X version, that depends on an earlier package Y version that the one that is defined on the "main" guix. Do I have to do the sema that Alex suggests so guix can resolve it? I guess that'll be the answer. But in that case I'll maybe find myself in a time consuming recursive package definition. Alternatively, you can use a guix git checkout on a specific commit that still has python-2.7.10, but it's probably not what you want. So, to avoid recursive definition of packages: Could I checkout an earlier guix revision, install the package and then checkout the latest guix version? Would that work or it will bring other kind of dragons? If that's the case, it could be done automatically. Does anybody try to do it, so we can simple specify the version of the package to install in "guix package" cmd?
Re: How to install an old package version?
Hartmut Goebel (2016-08-11 22:16 +0300) wrote: > Hi, > > I'm curious about how to install an old package version with guix. > > Example for what I mean: > > In e.g Debian, the list of available packages is separate from > apt-get (et al.). So I can query all available versions of a package > and install the version I need: > > $ apt-cache madison nginx > nginx | 1.9.10-1~bpo8+3 | http://debian.mirror.lrz.de/debian/ > jessie-backports/ma > nginx | 1.6.2-5+deb8u2 | http://security.debian.org/ jessie/ > updates/main amd64 Pa > > > Now in guix, the list of available packages is build into guix, there > is no external cache. So how can I e.g. install python-2.7.10 after I > installed guix 0.11.0, which only defines python-2.7.11? You have to make your own package for this version, that would look like this: (define-public python-2.7.10 (package (inherit python) (version "2.7.10") (source (origin (inherit (package-source python-2.7)) (uri (string-append "https://www.python.org/ftp/python/; version "/Python-" version ".tar.xz")) (sha256 (base32 "some-letters-and-numbers")) and to put it to a file from GUIX_PACKAGE_PATH. See (info "(guix) Package Modules") for details. Alternatively, you can use a guix git checkout on a specific commit that still has python-2.7.10, but it's probably not what you want. -- Alex
How to install an old package version?
Hi, I'm curious about how to install an old package version with guix. Example for what I mean: In e.g Debian, the list of available packages is separate from apt-get (et al.). So I can query all available versions of a package and install the version I need: $ apt-cache madison nginx nginx | 1.9.10-1~bpo8+3 | http://debian.mirror.lrz.de/debian/ jessie-backports/ma nginx | 1.6.2-5+deb8u2 | http://security.debian.org/ jessie/updates/main amd64 Pa Now in guix, the list of available packages is build into guix, there is no external cache. So how can I e.g. install python-2.7.10 after I installed guix 0.11.0, which only defines python-2.7.11? -- Schönen Gruß Hartmut Goebel Dipl.-Informatiker (univ), CISSP, CSSLP, ISO 27001 Lead Implementer Information Security Management, Security Governance, Secure Software Development Goebel Consult, Landshut http://www.goebel-consult.de Blog: http://www.goebel-consult.de/blog/bewertung-pgp-verschlusselung-bei-web.de-und-gmx Kolumne: http://www.cissp-gefluester.de/2012-04-compliance-bringt-keine-sicherheit