Suivant: , Précédent: , Monter: Configuration   [Table des matières][Index]


2.1.2.2 ‘GUIX_PACKAGE_PATH

Remarque : à partir de Guix 0.16, les canaux plus flexibles sont préférables et remplacent ‘GUIX_PACKAGE_PATH’. Voir la section suivante.

Il peut être fastidieux de spécifier le fichier depuis la ligne de commande par rapport à un appel à guix package --install my-hello comme on le ferait pour les paquets officiels.

Guix permet d’uniformiser le processus en ajoutant autant de « répertoires de déclaration de paquets » que vous le souhaitez.

Créez un répertoire, disons ~/guix-packages et ajoutez-le à la variable d’environnement ‘GUIX_PACKAGE_PATH’ :

$ mkdir ~/guix-packages
$ export GUIX_PACKAGE_PATH=~/guix-packages

Pour ajouter plusieurs répertoires, séparez-les avec un deux-points (:).

Notre ‘my-hello’ précédent doit être légèrement ajusté :

(define-module (my-hello)
  #:use-module (guix licenses)
  #:use-module (guix packages)
  #:use-module (guix build-system gnu)
  #:use-module (guix download))

(define-public my-hello
  (package
    (name "my-hello")
    (version "2.10")
    (source (origin
              (method url-fetch)
              (uri (string-append "mirror://gnu/hello/hello-" version
                                  ".tar.gz"))
              (sha256
               (base32
                "0ssi1wpaf7plaswqqjwigppsg5fyh99vdlb9kzl7c9lng89ndq1i"))))
    (build-system gnu-build-system)
    (synopsis "Hello, Guix world: An example custom Guix package")
    (description
     "GNU Hello prints the message \"Hello, world!\" and then exits.  It
serves as an example of standard GNU coding practices.  As such, it supports
command-line arguments, multiple languages, and so on.")
    (home-page "https://www.gnu.org/software/hello/")
    (license gpl3+)))

Remarquez que nous avons assigné la valeur du paquet à un nom de variable exportée avec define-public. Cela assigne en fait le paquet à la variable my-hello pour qu’elle puisse être utilisée, par exemple en dépendance d’un autre paquet.

Si vous utilisez guix package --install-from-file=my-hello.scm avec le fichier précédent, la commande échouera car la dernière expression, define-public, ne renvoie pas un paquet. Si vous voulez utiliser define-public dans ce cas tout de même, assurez-vous que le fichier termine par une évaluation de my-hello :

; ...
(define-public my-hello
  ; ...
  )

my-hello

Ce dernier exemple n’est pas très typique.

Maintenant ‘my-hello’ devrait faire partie de la collection de paquets comme tous les paquets officiels. Vous pouvez le vérifier avec :

$ guix package --show=my-hello

Suivant: , Précédent: , Monter: Configuration   [Table des matières][Index]