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 one or more files, which can be used in
the definition of a package (veja Definindo pacotes).
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
Compute a hash using the specified algorithm,
algorithm must be the name of a cryptographic hash algorithm supported
by Libgcrypt via Guile-Gcrypt—e.g.,
(veja Hash Functions em Guile-Gcrypt Reference Manual).
Write the hash in the format specified by fmt.
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.
The --recursive option is deprecated in favor of --serializer=nar (see below); -r remains accepted as a convenient shorthand.
Compute the hash on file using type serialization.
type may be one of the following:
This is the default: it computes the hash of a file’s contents.
Compute the hash of a “normalized archive” (or “nar”) 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 have no impact on the hash
guix archive, for more info on the nar format).
Compute the hash of the file or directory as a Git “tree”, following the same method as the Git version control system.
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 (veja
$ git clone http://example.org/foo.git $ cd foo $ guix hash -x --serializer=nar .