Hello Phil,

Phil Beadling <p...@beadling.co.uk> writes:

> Hi,
>
> Given a package definition, eg icedtea-8's JDK, how can can I determine the
> location of the installed package in my /gnu/store?
>
> There doesn't seem to be anything on the package module itself, presumably
> because this is static data, and what I need is something to calculate the
> hash of the resulting install specific to my Guix?

>From the command line API, the way to retrieve a package's store file
name is by doing:

$ guix build package

> The aim is to use this to derivive the JDK include directories in a generic
> way for some scripts I'm writing, such that I don't need to update them
> each time the JDK hash changes after a guix pull.

If you prefer to use the Guix API from Guile, you could use something
like:

--8<---------------cut here---------------start------------->8---
(use-modules (guix derivations)
             (guix gexp)
             (guix store)
             (gnu packages base))

(let* ((hello-drv (with-store store
                    (run-with-store store (lower-object hello))))
       (hello-store-path (derivation->output-path hello-drv)))

  (format #t "~a~%" hello-store-path)
  hello-store-path)
--8<---------------cut here---------------end--------------->8---

HTH!

Maxim

Reply via email to