Andreas Enge <andreas@enge.fr> skribis:
Toggle quote (5 lines)
> On my Novena with a 32 bit processor and 4 GB of main memory, this fails with> guix download: error: sendfile: Broken pipe>> The file itself has 1,8 GB.
This is implemented using the ‘add-to-store’ RPC, which, after all theseyears, is still implemented like this (nix/libstore/local-store.cc):
Toggle snippet (11 lines)
Path LocalStore::addToStore(const string & name, const Path & _srcPath, bool recursive, HashType hashAlgo, PathFilter & filter, bool repair){ Path srcPath(absPath(_srcPath)); debug(format("adding `%1%' to the store") % srcPath);
/* Read the whole path into memory. This is not a very scalable method for very large paths, but `copyPath' is mainly used for small files. */
This is undoubtedly what’s causing the failure.
Until this is fixed, you could wrap the file in a nar and import the nar(nar import does not have this limitation, see ’LocalStore::importPath’and co.).
To do that, you could do:
guix archive --export $(guix build -S texlive-texmf-whatever) > t.nar
and later:
guix archive --import < t.nar
HTH,Ludo’.