help-guix
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Why installing some packages results in two directories containing binar


From: Rodrigo Morales
Subject: Why installing some packages results in two directories containing binaries in /gnu/store?
Date: Sat, 8 Apr 2023 00:04:19 +0000

Table of Contents
_________________

1. TL; DR
2. Installation of packages and resulting files
.. 1. aria2c
.. 2. transmission
.. 3. htop
3. Question


1 TL; DR
========

  I have installed three packages: `transmission', `aria2c' and
  `htop'. These three packages install a binary.. I've noticed that
  `transmission' and `aria2c' create two directories with the same
  folder structure in `/gnu/store'. I'm now trying to understand what's
  the reason behind this.


2 Installation of packages and resulting files
=============================================

2.1 aria2c
~~~~~~~~~~

  Before installing the package, I made sure that there was no directory
  in `/gnu/store' whose name contains `aria2'. See proof below.

  ,----
  | find /gnu/store -mindepth 1 -maxdepth 1 -name '*aria2*' | wc -l
  `----

  ,----
  | 0
  `----

  I installed the package

  ,----
  | rdrg@sony ~$ guix package -i aria2
  | The following package will be installed:
  |    aria2 1.36.0
  |
  | 1.4 MB will be downloaded
  |  aria2-1.36.0  1.4MiB

723KiB/s 00:02 ▕██████████████████▏ 100.0%
  | The following derivation will be built:
  |   /gnu/store/8nbbjvnby06zpd4yngxqamnml1v1av07-profile.drv
  |
  | applying 3 grafts for aria2-1.36.0 ...
  | building profile with 6 packages...
  | rdrg@sony ~$ echo $?
  | 0
  `----

  The following files and directories get created in `/gnu/store'.

  ,----
  | find /gnu/store -mindepth 1 -maxdepth 1 -name '*aria2*' -printf '%y
%p\n'
  `----

  ,----
  | f /gnu/store/1qblfzq6pih64mgkh84zj363y4a0lv8s-aria2-1.36.0.tar.xz.drv
  | f /gnu/store/jgjvdz764qkrdb8y8ns9is2c33i92493-aria2-1.36.0-builder
  | f /gnu/store/n8gc9f5jdav18fqpqmzizgm0aldil8md-aria2-1.36.0.drv
  | f /gnu/store/78h4v9fxgbikrpvwi91alj47vy5i68n2-aria2-1.36.0-builder
  | f /gnu/store/y6fiq5hm3dkgzmv7ybdl1vny2r54xn4d-aria2-1.36.0.drv
  | d /gnu/store/qmabjifn34h1rrak1pgrfzg1ca3sxssa-aria2-1.36.0
  | d /gnu/store/fam1k2569vvy3fw6skw2px08hwcqzx81-aria2-1.36.0
  `----

  As can be seen above, there are only 2 directories that don't end in
  `*.drv' or `*-builder'. These two directories have a similar file
  structure, as can be seen below in the output of the `diff' command.

  ,----
  | diff \
  |   --brief \
  |   --recursive \
  |   /gnu/store/qmabjifn34h1rrak1pgrfzg1ca3sxssa-aria2-1.36.0 \
  |   /gnu/store/fam1k2569vvy3fw6skw2px08hwcqzx81-aria2-1.36.0
  `----

  ,----
  | Files
/gnu/store/qmabjifn34h1rrak1pgrfzg1ca3sxssa-aria2-1.36.0/bin/aria2c and
/gnu/store/fam1k2569vvy3fw6skw2px08hwcqzx81-aria2-1.36.0/bin/aria2c differ
  | Files
/gnu/store/qmabjifn34h1rrak1pgrfzg1ca3sxssa-aria2-1.36.0/etc/ld.so.cache
and
/gnu/store/fam1k2569vvy3fw6skw2px08hwcqzx81-aria2-1.36.0/etc/ld.so.cache
differ
  | Files /gnu/store/qmabjifn34h1rrak1pgrfzg1ca3sxssa-aria2-1.36.0/lib/
libaria2.la and
/gnu/store/fam1k2569vvy3fw6skw2px08hwcqzx81-aria2-1.36.0/lib/libaria2.la
differ
  | Files
/gnu/store/qmabjifn34h1rrak1pgrfzg1ca3sxssa-aria2-1.36.0/lib/libaria2.so
and
/gnu/store/fam1k2569vvy3fw6skw2px08hwcqzx81-aria2-1.36.0/lib/libaria2.so
differ
  | Files
/gnu/store/qmabjifn34h1rrak1pgrfzg1ca3sxssa-aria2-1.36.0/lib/libaria2.so.0
and
/gnu/store/fam1k2569vvy3fw6skw2px08hwcqzx81-aria2-1.36.0/lib/libaria2.so.0
differ
  | Files
/gnu/store/qmabjifn34h1rrak1pgrfzg1ca3sxssa-aria2-1.36.0/lib/libaria2.so.0.0.0
and
/gnu/store/fam1k2569vvy3fw6skw2px08hwcqzx81-aria2-1.36.0/lib/libaria2.so.0.0.0
differ
  | Files
/gnu/store/qmabjifn34h1rrak1pgrfzg1ca3sxssa-aria2-1.36.0/lib/pkgconfig/libaria2.pc
and
/gnu/store/fam1k2569vvy3fw6skw2px08hwcqzx81-aria2-1.36.0/lib/pkgconfig/libaria2.pc
differ
  `----


2.2 transmission
~~~~~~~~~~~~~~~~

  Similarly, before installing the package `transmission', I made sure
  that there were no directory in `/gnu/store' whose name contain
  `transmission'. See proof below.

  ,----
  | find /gnu/store -mindepth 1 -maxdepth 1 -name '*transmission*' | wc -l
  `----

  ,----
  | 0
  `----

  I installed the package `transmission'. See proof below.

  ,----
  | rdrg@sony ~$ guix package -i transmission
  | The following package will be installed:
  |    transmission 3.00
  |
  | substitute: updating substitutes from 'https://ci.guix.gnu.org'...
100.0%
  | 1.5 MB will be downloaded
  |  transmission-3.00  664KiB

 392KiB/s 00:02 ▕██████████████████▏ 100.0%
  |  transmission-3.00-gui  757KiB

 604KiB/s 00:01 ▕██████████████████▏ 100.0%
  | The following derivation will be built:
  |   /gnu/store/x3kig2j74i2nar18fnyma6l2wgikkhqc-profile.drv
  |
  | applying 27 grafts for transmission-3.00 ...
  | building profile with 4 packages...
  | rdrg@sony ~$ echo $?
  | 0
  `----

  The following files and directories get created in `/gnu/store'.

  ,----
  | find /gnu/store -mindepth 1 -maxdepth 1 -name '*transmission*' -printf
'%y %p\n'
  `----

  ,----
  | f
/gnu/store/w5axm22g9nrgbkhrsjlf4zvnksavdjwp-transmission-3.00.tar.xz.drv
  | f
/gnu/store/d4h1gkavik552f9bqcnimiylhrp18b7c-transmission-honor-localedir.patch
  | f
/gnu/store/xivc36rv3dk5qzfmf78hzrrvnp6m1crv-transmission-3.00.tar.xz-builder
  | f
/gnu/store/01h9m5lrmxhcbxxlf45z24zgmbvm6ibj-transmission-3.00.tar.xz.drv
  | f /gnu/store/asq7m7221syq0rlwiy01lhcsj54lihyv-transmission-3.00-builder
  | f /gnu/store/v8sgmbxrji7gkd4pyc2x4wik4x29qysg-transmission-3.00.drv
  | f /gnu/store/dan5qy88nzdyn9010qz0a9666bss6x4v-transmission-3.00-builder
  | f /gnu/store/pv9yvk7qzs7ifx5fkam2mqla51y12ihh-transmission-3.00.drv
  | d /gnu/store/dxyjmmrw6vkbjmm4jx17i92rnc4mmcm3-transmission-3.00
  | d /gnu/store/p4wfwg0d6qz5navc6w5gnc6gzibhiisd-transmission-3.00-gui
  | d /gnu/store/6kmyb111bpf0mx25vd981h4zqmzp02jl-transmission-3.00-gui
  | d /gnu/store/pnq464qnrr5nrmhr3avn39b22axf1na8-transmission-3.00
  `----

  As happened with the package `aria2', there are two directories that
  created and have the simiilar file structure, as can be seen below in
  the output of the `diff' command.

  ,----
  | diff \
  |   --brief \
  |   --recursive \
  |   /gnu/store/pnq464qnrr5nrmhr3avn39b22axf1na8-transmission-3.00 \
  |   /gnu/store/dxyjmmrw6vkbjmm4jx17i92rnc4mmcm3-transmission-3.00
  `----

  ,----
  | Files
/gnu/store/pnq464qnrr5nrmhr3avn39b22axf1na8-transmission-3.00/bin/transmission-create
and
/gnu/store/dxyjmmrw6vkbjmm4jx17i92rnc4mmcm3-transmission-3.00/bin/transmission-create
differ
  | Files
/gnu/store/pnq464qnrr5nrmhr3avn39b22axf1na8-transmission-3.00/bin/transmission-daemon
and
/gnu/store/dxyjmmrw6vkbjmm4jx17i92rnc4mmcm3-transmission-3.00/bin/transmission-daemon
differ
  | Files
/gnu/store/pnq464qnrr5nrmhr3avn39b22axf1na8-transmission-3.00/bin/transmission-edit
and
/gnu/store/dxyjmmrw6vkbjmm4jx17i92rnc4mmcm3-transmission-3.00/bin/transmission-edit
differ
  | Files
/gnu/store/pnq464qnrr5nrmhr3avn39b22axf1na8-transmission-3.00/bin/transmission-remote
and
/gnu/store/dxyjmmrw6vkbjmm4jx17i92rnc4mmcm3-transmission-3.00/bin/transmission-remote
differ
  | Files
/gnu/store/pnq464qnrr5nrmhr3avn39b22axf1na8-transmission-3.00/bin/transmission-show
and
/gnu/store/dxyjmmrw6vkbjmm4jx17i92rnc4mmcm3-transmission-3.00/bin/transmission-show
differ
  | Files
/gnu/store/pnq464qnrr5nrmhr3avn39b22axf1na8-transmission-3.00/etc/ld.so.cache
and
/gnu/store/dxyjmmrw6vkbjmm4jx17i92rnc4mmcm3-transmission-3.00/etc/ld.so.cache
differ
  | Files
/gnu/store/pnq464qnrr5nrmhr3avn39b22axf1na8-transmission-3.00/lib/gdk-pixbuf-2.0/2.10.0/loaders.cache
and
/gnu/store/dxyjmmrw6vkbjmm4jx17i92rnc4mmcm3-transmission-3.00/lib/gdk-pixbuf-2.0/2.10.0/loaders.cache
differ
  `----

  ,----
  | diff \
  |   --brief \
  |   --recursive \
  |   /gnu/store/6kmyb111bpf0mx25vd981h4zqmzp02jl-transmission-3.00-gui \
  |   /gnu/store/p4wfwg0d6qz5navc6w5gnc6gzibhiisd-transmission-3.00-gui
  `----

  ,----
  | Files
/gnu/store/6kmyb111bpf0mx25vd981h4zqmzp02jl-transmission-3.00-gui/bin/transmission-gtk
and
/gnu/store/p4wfwg0d6qz5navc6w5gnc6gzibhiisd-transmission-3.00-gui/bin/transmission-gtk
differ
  | Files
/gnu/store/6kmyb111bpf0mx25vd981h4zqmzp02jl-transmission-3.00-gui/bin/.transmission-gtk-real
and
/gnu/store/p4wfwg0d6qz5navc6w5gnc6gzibhiisd-transmission-3.00-gui/bin/.transmission-gtk-real
differ
  | Files
/gnu/store/6kmyb111bpf0mx25vd981h4zqmzp02jl-transmission-3.00-gui/etc/ld.so.cache
and
/gnu/store/p4wfwg0d6qz5navc6w5gnc6gzibhiisd-transmission-3.00-gui/etc/ld.so.cache
differ
  | Files
/gnu/store/6kmyb111bpf0mx25vd981h4zqmzp02jl-transmission-3.00-gui/share/applications/transmission-gtk.desktop
and
/gnu/store/p4wfwg0d6qz5navc6w5gnc6gzibhiisd-transmission-3.00-gui/share/applications/transmission-gtk.desktop
differ
  `----


2.3 htop
~~~~~~~~

  Similarly, before installing the package `htop', I made sure that
  there were no directory in `/gnu/store' whose name contain `htop'. See
  proof below.

  ,----
  | find /gnu/store -mindepth 1 -maxdepth 1 -name '*htop*' | wc -l
  `----

  ,----
  | 0
  `----

  I installed the package `htop'. See proof below.

  ,----
  | rdrg@sony ~$ guix package -i htop
  | The following package will be installed:
  |    htop 3.2.2
  |
  | 0.1 MB will be downloaded
  |  htop-3.2.2  120KiB

260KiB/s 00:00 ▕██████████████████▏ 100.0%
  | The following derivation will be built:
  |   /gnu/store/7f3ffwx42wb61jxg3jnxjvqwqypj1h53-profile.drv
  |
  | creating GTK+ icon theme cache...
  | building XDG desktop file cache...
  | building profile with 4 packages...
  | rdrg@sony ~$ echo $?
  | 0
  `----

  The following files and directories get created in `/gnu/store'.

  ,----
  | find /gnu/store -mindepth 1 -maxdepth 1 -name '*htop*'
  `----

  ,----
  | /gnu/store/s6vkhmfbvkwha9hvnic3c9rm469saqnh-htop-3.2.2-checkout.drv
  | /gnu/store/71ssyqrv0vqbqh01wirkwksvy7j6jayi-htop-3.2.2-builder
  | /gnu/store/d3mmj23lxjkrw8wpdiwxarsvmnppn7f3-htop-3.2.2.drv
  | /gnu/store/kk95nfidydwy96s2x2y0l7xd6j089587-htop-3.2.2
  `----

  As can be seen above, there's a single directory which doesn't end in
  `*.drv', `*-builder', or `*-checkout.drv'. This didn't happen with the
  packages explained above: `transmission' and `aria2'.


3 Question
==========

  As we could see above, both `transmission' and `aria2c' create two
  directories with an identical folder structure but with byte-by-byte
  different files. This didn't happen with `htop', which only creates a
  single directory under `/gnu/store'.

  What's the reasoning behind this behavior?


reply via email to

[Prev in Thread] Current Thread [Next in Thread]