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?
