* prevent gc of texlive-...-texmf.tar.xz
@ 2020-02-12 12:53 Thomas Danckaert
2020-02-12 18:08 ` zimoun
2020-02-12 20:45 ` Leo Famulari
0 siblings, 2 replies; 5+ messages in thread
From: Thomas Danckaert @ 2020-02-12 12:53 UTC (permalink / raw)
To: help-guix
Hi,
I have limited space on my root file system, and therefore need to
run 'guix gc' regularly. One problem with that is that the texlive
source package (currently
/gnu/store/mj40l554qxw15acz0h018gk5c9mxzfgn-texlive-20180414-texmf.tar.xz)
regularly gets deleted that way. When I upgrade after running guix
gc, I often find I need to download this very large (2.5G) tarball
again.
How do I add a gc root for this tarball (or is that a bad idea)? I
tried 'guix build texlive --source --root ...', but I get a warning
'package texlive has no source'.
All ideas are welcome!
Thomas
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: prevent gc of texlive-...-texmf.tar.xz
2020-02-12 12:53 prevent gc of texlive-...-texmf.tar.xz Thomas Danckaert
@ 2020-02-12 18:08 ` zimoun
2020-02-12 20:45 ` Leo Famulari
1 sibling, 0 replies; 5+ messages in thread
From: zimoun @ 2020-02-12 18:08 UTC (permalink / raw)
To: Thomas Danckaert; +Cc: help-guix
Hi,
On Wed, 12 Feb 2020 at 13:54, Thomas Danckaert <post@thomasdanckaert.be> wrote:
> I have limited space on my root file system, and therefore need to
> run 'guix gc' regularly. One problem with that is that the texlive
> source package (currently
> /gnu/store/mj40l554qxw15acz0h018gk5c9mxzfgn-texlive-20180414-texmf.tar.xz)
> regularly gets deleted that way. When I upgrade after running guix
> gc, I often find I need to download this very large (2.5G) tarball
> again.
What does it mean "upgrade after running guix gc"?
If 'texlive' is installed in a profile, "guix gc" cannot delete it. Or
I miss a point.
Do you mean that you work only with temporary profile ("guix
environment") and you garbage collect each time you have ended with
this temporary profile and you create often the same temporary profile
(say '--ad-hoc texlive')? Is it what you mean?
However, note that 'texlive' could even be downloaded twice, I guess,
--8<---------------cut here---------------start------------->8---
$ guix package -i texlive -p /tmp/texlive
substitute: updating substitutes from 'https://ci.guix.gnu.org'... 100.0%
substitute: updating substitutes from 'https://ci.guix.gnu.org'... 100.0%
The following package will be installed:
texlive 20180414
/gnu/store/wlba9v03ypi0z5qz7p89sa0w12lh37zb-texlive-20180414
substitute: updating substitutes from 'https://ci.guix.gnu.org'... 100.0%
The following derivations will be built:
/gnu/store/4zlvfr2qv4ky1r7ski9inpaixqx7ingz-profile.drv
/gnu/store/2s9f925wx29p75i6yzv3svki6ldb3ngp-texlive-texmf-20180414.drv
2,595.2 MB will be downloaded:
/gnu/store/5aq60gx42sfs5drigb5g7fpa7fh1pq4z-texlive-20180414
/gnu/store/mj40l554qxw15acz0h018gk5c9mxzfgn-texlive-20180414-texmf.tar.xz
The following grafts will be made:
/gnu/store/al6wnvipcns3pkz4d9j1xg40cf9vg9qh-texlive-20180414.drv
/gnu/store/3jpxlpgjabr5ilrn8pisl07sl2vsns7a-texlive-texmf-20180414.drv
The following profile hooks will be built:
/gnu/store/03ry4vji3qz300wbx2a71bq6bilx2c50-ca-certificate-bundle.drv
/gnu/store/cbjz3ydan5ach8vzcbmvwa92zqb4f0nn-manual-database.drv
/gnu/store/i5j5896wcslgrz6nx8jd8hfw50qkwkhw-fonts-dir.drv
/gnu/store/kik4kvwv7s3hpb0k5sbzv3dc97fwh1bb-info-dir.drv
downloading from
https://ci.guix.gnu.org/nar/mj40l554qxw15acz0h018gk5c9mxzfgn-texlive-20180414-texmf.tar.xz...
texlive-20180414-texmf.tar.xz 2.42GiB
10.2MiB/s 04:03 [##################] 100.0%
downloading from
https://ci.guix.gnu.org/nar/lzip/zkcd3i5r98rh36cp9is1l5griiyrgvap-texlive-texmf-20180414...
texlive-texmf-20180414 2.38GiB
[...]
--8<---------------cut here---------------end--------------->8---
> How do I add a gc root for this tarball (or is that a bad idea)? I
> tried 'guix build texlive --source --root ...', but I get a warning
> 'package texlive has no source'.
A quick workaround could be to create your own channel containing for
example this definition:
--8<---------------cut here---------------start------------->8---
(define-public my-texlive
(package
(inherit texlive)
(version "mine")
(source (origin
(method url-fetch)
(uri "file:////your/local/path/to/texlive-20180414-texmf.tar.xz")
(sha256
(base32
"xxxx"))))))
--8<---------------cut here---------------end--------------->8---
So, you download once the texlive archive and you locate it somewhere
on your local disk. Then each time, you run "guix install
texlive@mine", Guix will compute the derivations etc. and will fetch
the source directly from your local disk.
It does not answer your question for protecting from GC but it should
avoid to download it again and again when you did a mistake with "guix
gc".
Hope that helps,
simon
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: prevent gc of texlive-...-texmf.tar.xz
2020-02-12 12:53 prevent gc of texlive-...-texmf.tar.xz Thomas Danckaert
2020-02-12 18:08 ` zimoun
@ 2020-02-12 20:45 ` Leo Famulari
2020-02-13 16:21 ` Thomas Danckaert
1 sibling, 1 reply; 5+ messages in thread
From: Leo Famulari @ 2020-02-12 20:45 UTC (permalink / raw)
To: Thomas Danckaert; +Cc: help-guix
On Wed, Feb 12, 2020 at 01:53:45PM +0100, Thomas Danckaert wrote:
> Hi,
>
> I have limited space on my root file system, and therefore need to run 'guix
> gc' regularly. One problem with that is that the texlive source package
> (currently
> /gnu/store/mj40l554qxw15acz0h018gk5c9mxzfgn-texlive-20180414-texmf.tar.xz)
> regularly gets deleted that way. When I upgrade after running guix gc, I
> often find I need to download this very large (2.5G) tarball again.
>
> How do I add a gc root for this tarball (or is that a bad idea)? I tried
> 'guix build texlive --source --root ...', but I get a warning 'package
> texlive has no source'.
The simplest way to make a gcroot is to symlink the store item into
/var/guix/gcroots.
In fact, I've had this exact symlink for a few years now:
lrwxrwxrwx 1 root root 73 Aug 5 2017 texlive-20170524-texmf.tar.xz -> /gnu/store/5rnvmy02yazy8iwaa91kijbbqp8qmflz-texlive-20170524-texmf.tar.xz
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: prevent gc of texlive-...-texmf.tar.xz
2020-02-12 20:45 ` Leo Famulari
@ 2020-02-13 16:21 ` Thomas Danckaert
2020-02-23 17:19 ` Andreas Enge
0 siblings, 1 reply; 5+ messages in thread
From: Thomas Danckaert @ 2020-02-13 16:21 UTC (permalink / raw)
To: Leo Famulari; +Cc: help-guix
On 2020-02-12 21:45, Leo Famulari wrote:
> The simplest way to make a gcroot is to symlink the store item into
> /var/guix/gcroots.
>
> In fact, I've had this exact symlink for a few years now:
>
> lrwxrwxrwx 1 root root 73 Aug 5 2017 texlive-20170524-texmf.tar.xz
> ->
> /gnu/store/5rnvmy02yazy8iwaa91kijbbqp8qmflz-texlive-20170524-texmf.tar.xz
Ah, thanks, that should do it! I wondered if I was the only one with
this problem.
@Zimoun: texlive-texmf.tar.xz is only a build input of texlive, so it
can be gc'ed even when texlive is installed in a profile. As far as I
remember, updates to texlive often seem to require the original texmf
tarball and apply patches to it (not sure how this works precisely --
somehow there are no substitutes for the patched/updated version of
texlive-texmf?). Interesting that you saw 2 downloads of texlive-texmf
(a 2.5GB nar file *and* the 2.5GB original tarball?). I don't
understand why that happens (but even in this case, eliminating at least
the tar.xz download saves a lot of time and bandwidth).
Thank you!
Thomas
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: prevent gc of texlive-...-texmf.tar.xz
2020-02-13 16:21 ` Thomas Danckaert
@ 2020-02-23 17:19 ` Andreas Enge
0 siblings, 0 replies; 5+ messages in thread
From: Andreas Enge @ 2020-02-23 17:19 UTC (permalink / raw)
To: Thomas Danckaert; +Cc: help-guix
Hello,
On Thu, Feb 13, 2020 at 05:21:48PM +0100, Thomas Danckaert wrote:
> As far as I remember,
> updates to texlive often seem to require the original texmf tarball and
> apply patches to it (not sure how this works precisely -- somehow there are
> no substitutes for the patched/updated version of texlive-texmf?).
as to why this happens, here are the relevant lines of the package recipe
for texlive-texmf, an input to texlive:
(arguments
`(
;; This package takes 4 GiB, which we can't afford to distribute from
;; our servers.
#:substitutable? #f
In fact, texlive-texmf is essentially a data package: its output is more or
less the same as the input tarball, with a bit of not very heavy processing
done in-between. So it helps our servers if users do not download the output
from us, but the input from the source servers, and then do the bit of
processing themselves.
Andreas
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2020-02-23 17:19 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2020-02-12 12:53 prevent gc of texlive-...-texmf.tar.xz Thomas Danckaert
2020-02-12 18:08 ` zimoun
2020-02-12 20:45 ` Leo Famulari
2020-02-13 16:21 ` Thomas Danckaert
2020-02-23 17:19 ` Andreas Enge
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).