Next: Invoking guix import, Previous: Invoking guix download, Up: Utilities [Contents][Index]
guix hash
The guix hash
command computes the hash of a file.
It is primarily a convenience tool for anyone contributing to the
distribution: it computes the cryptographic hash of a file, which can be
used in the definition of a package (see Defining Packages).
The general syntax is:
guix hash option file
When file is -
(a hyphen), guix hash
computes the
hash of data read from standard input. guix hash
has the
following options:
--hash=algorithm
-H algorithm
Compute a hash using the specified algorithm, sha256
by
default.
algorithm must the name of a cryptographic hash algorithm
supported by Libgcrypt via Guile-Gcrypt—e.g., sha512
or
sha3-256
(see Hash Functions in Guile-Gcrypt
Reference Manual).
--format=fmt
-f fmt
Write the hash in the format specified by fmt.
Supported formats: base64
, nix-base32
, base32
, base16
(hex
and hexadecimal
can be used as well).
If the --format option is not specified, guix hash
will output the hash in nix-base32
. This representation is used
in the definitions of packages.
--recursive
-r
Compute the hash on file recursively.
In this case, the hash is computed on an archive containing file, including its children if it is a directory. Some of the metadata of file is part of the archive; for instance, when file is a regular file, the hash is different depending on whether file is executable or not. Metadata such as time stamps has no impact on the hash (see Invoking guix archive).
--exclude-vcs
-x
When combined with --recursive, exclude version control system directories (.bzr, .git, .hg, etc.).
As an example, here is how you would compute the hash of a Git checkout,
which is useful when using the git-fetch
method (see origin Reference):
$ git clone http://example.org/foo.git $ cd foo $ guix hash -rx .
Next: Invoking guix import, Previous: Invoking guix download, Up: Utilities [Contents][Index]