2007-02-05 13:10:10 +01:00
|
|
|
|
<refentry xmlns="http://docbook.org/ns/docbook"
|
2014-08-27 18:41:09 +02:00
|
|
|
|
xmlns:xlink="http://www.w3.org/1999/xlink"
|
|
|
|
|
xmlns:xi="http://www.w3.org/2001/XInclude"
|
|
|
|
|
version="5.0"
|
|
|
|
|
xml:id="sec-nix-prefetch-url">
|
2015-10-01 16:53:07 +02:00
|
|
|
|
|
2007-09-19 16:01:41 +02:00
|
|
|
|
<refmeta>
|
|
|
|
|
<refentrytitle>nix-prefetch-url</refentrytitle>
|
|
|
|
|
<manvolnum>1</manvolnum>
|
|
|
|
|
<refmiscinfo class="source">Nix</refmiscinfo>
|
2014-09-16 14:57:45 +02:00
|
|
|
|
<refmiscinfo class="version"><xi:include href="../version.txt" parse="text"/></refmiscinfo>
|
2007-09-19 16:01:41 +02:00
|
|
|
|
</refmeta>
|
|
|
|
|
|
2005-04-07 17:51:27 +02:00
|
|
|
|
<refnamediv>
|
|
|
|
|
<refname>nix-prefetch-url</refname>
|
2011-12-30 14:43:29 +01:00
|
|
|
|
<refpurpose>copy a file from a URL into the store and print its hash</refpurpose>
|
2005-04-07 17:51:27 +02:00
|
|
|
|
</refnamediv>
|
|
|
|
|
|
|
|
|
|
<refsynopsisdiv>
|
|
|
|
|
<cmdsynopsis>
|
|
|
|
|
<command>nix-prefetch-url</command>
|
2017-07-07 21:52:31 +02:00
|
|
|
|
<arg><option>--version</option></arg>
|
2012-10-23 18:04:00 +02:00
|
|
|
|
<arg><option>--type</option> <replaceable>hashAlgo</replaceable></arg>
|
2015-10-01 18:07:56 +02:00
|
|
|
|
<arg><option>--print-path</option></arg>
|
2017-07-07 21:52:31 +02:00
|
|
|
|
<arg><option>--unpack</option></arg>
|
|
|
|
|
<arg><option>--name</option> <replaceable>name</replaceable></arg>
|
2005-04-07 17:51:27 +02:00
|
|
|
|
<arg choice='plain'><replaceable>url</replaceable></arg>
|
|
|
|
|
<arg><replaceable>hash</replaceable></arg>
|
|
|
|
|
</cmdsynopsis>
|
|
|
|
|
</refsynopsisdiv>
|
|
|
|
|
|
|
|
|
|
<refsection><title>Description</title>
|
|
|
|
|
|
|
|
|
|
<para>The command <command>nix-prefetch-url</command> downloads the
|
|
|
|
|
file referenced by the URL <replaceable>url</replaceable>, prints its
|
|
|
|
|
cryptographic hash, and copies it into the Nix store. The file name
|
|
|
|
|
in the store is
|
|
|
|
|
<filename><replaceable>hash</replaceable>-<replaceable>baseName</replaceable></filename>,
|
|
|
|
|
where <replaceable>baseName</replaceable> is everything following the
|
|
|
|
|
final slash in <replaceable>url</replaceable>.</para>
|
|
|
|
|
|
|
|
|
|
<para>This command is just a convenience for Nix expression writers.
|
|
|
|
|
Often a Nix expression fetches some source distribution from the
|
|
|
|
|
network using the <literal>fetchurl</literal> expression contained in
|
|
|
|
|
Nixpkgs. However, <literal>fetchurl</literal> requires a
|
|
|
|
|
cryptographic hash. If you don't know the hash, you would have to
|
|
|
|
|
download the file first, and then <literal>fetchurl</literal> would
|
|
|
|
|
download it again when you build your Nix expression. Since
|
|
|
|
|
<literal>fetchurl</literal> uses the same name for the downloaded file
|
|
|
|
|
as <command>nix-prefetch-url</command>, the redundant download can be
|
|
|
|
|
avoided.</para>
|
|
|
|
|
|
|
|
|
|
<para>If <replaceable>hash</replaceable> is specified, then a download
|
|
|
|
|
is not performed if the Nix store already contains a file with the
|
|
|
|
|
same hash and base name. Otherwise, the file is downloaded, and an
|
|
|
|
|
error if signaled if the actual hash of the file does not match the
|
|
|
|
|
specified hash.</para>
|
|
|
|
|
|
|
|
|
|
<para>This command prints the hash on standard output. Additionally,
|
2015-10-01 16:53:07 +02:00
|
|
|
|
if the option <option>--print-path</option> is used, the path of the
|
|
|
|
|
downloaded file in the Nix store is also printed.</para>
|
2005-04-07 17:51:27 +02:00
|
|
|
|
|
|
|
|
|
</refsection>
|
|
|
|
|
|
|
|
|
|
|
2012-10-23 18:04:00 +02:00
|
|
|
|
<refsection><title>Options</title>
|
|
|
|
|
|
|
|
|
|
<variablelist>
|
2015-10-01 16:53:07 +02:00
|
|
|
|
|
2012-10-23 18:04:00 +02:00
|
|
|
|
<varlistentry><term><option>--type</option> <replaceable>hashAlgo</replaceable></term>
|
|
|
|
|
|
|
|
|
|
<listitem><para>Use the specified cryptographic hash algorithm,
|
|
|
|
|
which can be one of <literal>md5</literal>,
|
|
|
|
|
<literal>sha1</literal>, and
|
|
|
|
|
<literal>sha256</literal>.</para></listitem>
|
|
|
|
|
|
|
|
|
|
</varlistentry>
|
|
|
|
|
|
2015-10-01 16:53:07 +02:00
|
|
|
|
<varlistentry><term><option>--print-path</option></term>
|
|
|
|
|
|
|
|
|
|
<listitem><para>Print the store path of the downloaded file on
|
|
|
|
|
standard output.</para></listitem>
|
|
|
|
|
|
|
|
|
|
</varlistentry>
|
|
|
|
|
|
2015-10-07 14:40:10 +02:00
|
|
|
|
<varlistentry><term><option>--unpack</option></term>
|
|
|
|
|
|
|
|
|
|
<listitem><para>Unpack the archive (which must be a tarball or zip
|
|
|
|
|
file) and add the result to the Nix store. The resulting hash can
|
|
|
|
|
be used with functions such as Nixpkgs’s
|
|
|
|
|
<varname>fetchzip</varname> or
|
|
|
|
|
<varname>fetchFromGitHub</varname>.</para></listitem>
|
|
|
|
|
|
|
|
|
|
</varlistentry>
|
|
|
|
|
|
2017-07-07 21:52:31 +02:00
|
|
|
|
<varlistentry><term><option>--name</option> <replaceable>name</replaceable></term>
|
2015-10-07 14:55:33 +02:00
|
|
|
|
|
|
|
|
|
<listitem><para>Override the name of the file in the Nix store. By
|
|
|
|
|
default, this is
|
|
|
|
|
<literal><replaceable>hash</replaceable>-<replaceable>basename</replaceable></literal>,
|
|
|
|
|
where <replaceable>basename</replaceable> is the last component of
|
|
|
|
|
<replaceable>url</replaceable>. Overriding the name is necessary
|
|
|
|
|
when <replaceable>basename</replaceable> contains characters that
|
|
|
|
|
are not allowed in Nix store paths.</para></listitem>
|
|
|
|
|
|
|
|
|
|
</varlistentry>
|
|
|
|
|
|
2012-10-23 18:04:00 +02:00
|
|
|
|
</variablelist>
|
|
|
|
|
|
|
|
|
|
</refsection>
|
|
|
|
|
|
|
|
|
|
|
2005-04-07 17:51:27 +02:00
|
|
|
|
<refsection><title>Examples</title>
|
|
|
|
|
|
|
|
|
|
<screen>
|
2015-10-01 16:53:07 +02:00
|
|
|
|
$ nix-prefetch-url ftp://ftp.gnu.org/pub/gnu/hello/hello-2.10.tar.gz
|
|
|
|
|
0ssi1wpaf7plaswqqjwigppsg5fyh99vdlb9kzl7c9lng89ndq1i
|
2005-04-07 17:51:27 +02:00
|
|
|
|
|
2015-10-01 16:53:07 +02:00
|
|
|
|
$ nix-prefetch-url --print-path mirror://gnu/hello/hello-2.10.tar.gz
|
|
|
|
|
0ssi1wpaf7plaswqqjwigppsg5fyh99vdlb9kzl7c9lng89ndq1i
|
2015-10-07 14:40:10 +02:00
|
|
|
|
/nix/store/3x7dwzq014bblazs7kq20p9hyzz0qh8g-hello-2.10.tar.gz
|
|
|
|
|
|
|
|
|
|
$ nix-prefetch-url --unpack --print-path https://github.com/NixOS/patchelf/archive/0.8.tar.gz
|
|
|
|
|
079agjlv0hrv7fxnx9ngipx14gyncbkllxrp9cccnh3a50fxcmy7
|
|
|
|
|
/nix/store/19zrmhm3m40xxaw81c8cqm6aljgrnwj2-0.8.tar.gz
|
|
|
|
|
</screen>
|
2005-04-07 17:51:27 +02:00
|
|
|
|
|
|
|
|
|
</refsection>
|
2004-02-10 17:14:47 +01:00
|
|
|
|
|
2015-10-01 16:53:07 +02:00
|
|
|
|
|
2004-02-10 17:14:47 +01:00
|
|
|
|
</refentry>
|