Next: Invoking guix import
, Previous: Invoking guix download
, Up: 工具 [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 one or more files, which can be used in
the definition of a package (see 定义软件包).
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 be 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
The --recursive option is deprecated in favor of --serializer=nar (see below); -r remains accepted as a convenient shorthand.
--serializer=type
-S type
Compute the hash on file using type serialization.
type may be one of the following:
none
This is the default: it computes the hash of a file’s contents.
nar
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
(see Invoking guix archive
, for more info on the nar format).
git
Compute the hash of the file or directory as a Git “tree”, following the same method as the Git version control system.
--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 -x --serializer=nar .
Next: Invoking guix import
, Previous: Invoking guix download
, Up: 工具 [Contents][Index]