[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?
- Why installing some packages results in two directories containing binaries in /gnu/store?,
Rodrigo Morales <=