Next: Kanály Guix, Previous: Miestny súbor, Up: Nastavenie [Contents][Index]
Upozornenie: Počínajúc Guix 0.16 sú Guix channels uprednostňovaným spôsobom práce a nahrádzajú použitie ‘GUIX_PACKAGE_PATH’. Viď nasledujúci oddiel.
Uvádzanie súboru so zadaním balíka v príkazovom riadku namiesto použitia
guix package --install my-hello
, ako v prípade oficiálnych balíkov,
môže byť zdĺhavé.
Guix umožňuje zjednodušiť túto úlohu pridaním toľkých „priečinkov zadaní balíkov“, koľkých chcete.
Vytvorte priečinok, povedzme ~/guix-packages a pridajte cestu k nemu do premennej prostredia ‘GUIX_PACKAGE_PATH’:
$ mkdir ~/guix-packages $ export GUIX_PACKAGE_PATH=~/guix-packages
Pri pridávaní viacerých priečinkov oddeľte jednotlivé cesty k nim dvojbodkou
(:
).
Avšak, náš predchádzajúci príklad ‘my-hello’ vyžaduje niekoľko úprav:
(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+)))
Všimnite si, že sme tentokrát zadanie balíka uložili do verejnej premennej
my-hello
pomocou define-public
, na ktorú je možné odkazovať,
medzi iným aj ako na závislosť v rámci zadania nejakého ďalšieho balíka.
Ak spustíte guix package --install-from-file=my-hello.scm
s použitím
vyššie uvedeného súboru, tak príkaz zlyhá, pretože posledný výraz,
define-public
, nevracia balík. Ak aj napriek tomu chcete v tomto
prípade použiť define-public
, uistite sa, že súbor končí vykonaním
my-hello
:
; ... (define-public my-hello ; ... ) my-hello
Tento posledný príklad nie je veľmi bežný.
Teraz by už mal byť ‘my-hello’ súčasťou zbierky balíkov ako všetky ostatné oficiálne balíky. Môžete si to overiť pomocou:
$ guix package --show=my-hello
Next: Kanály Guix, Previous: Miestny súbor, Up: Nastavenie [Contents][Index]