On Tue, 6 Mar 2018, Robert Nichols wrote:
On 03/06/2018 06:34 AM, Robert P. J. Day wrote:
>
> i'm curious about RH packaging policy that dictates that some
> command variants are packaged for fedora to install with symlinks
> and others with hardlinks.
>
> trivial example in /usr/bin on my fedora 27 system:
>
> -rwsr-xr-x. 1 root root 52984 Aug 2 2017 at
> lrwxrwxrwx. 1 root root 2 Aug 2 2017 atq -> at
> lrwxrwxrwx. 1 root root 2 Aug 2 2017 atrm -> at
>
> so even though all of those "commands" are in the very same directory,
> atq and atrm are supported via symlinks, not hardlinks.
>
> OTOH, consider the "git" command, also in /usr/bin:
>
> -rwxr-xr-x. 116 root root 2273360 Feb 16 15:03 git
>
> as you can see, there are 116 hardlinks to that executable, pretty
> much all of them in /usr/libexec/git-core:
>
> -rwxr-xr-x. 116 root root 2273360 Feb 16 15:03 git
> -rwxr-xr-x. 116 root root 2273360 Feb 16 15:03 git-add
> -rwxr-xr-x. 1 root root 41441 Feb 16 15:03 git-add--interactive
> -rwxr-xr-x. 3 root root 2273360 Feb 16 15:03 git-am
> -rwxr-xr-x. 116 root root 2273360 Feb 16 15:03 git-annotate
> -rwxr-xr-x. 116 root root 2273360 Feb 16 15:03 git-apply
> -rwxr-xr-x. 116 root root 2273360 Feb 16 15:03 git-archive
> ... big snip ...
>
> is there a reason that "at" uses symlinks, while "git" installs
> with hardlinks? one would imagine that it would be the other way
> around -- given that the "at" variations are all in the same
> directory, hardlinks would seem to be the better choice since
> there is no possibility of crossing filesystem boundaries.
In the case of "git" there's the matter of using 1 inode vs. 116
inodes.
sure, and that's admittedly an extreme case, but the same logic
applies to saving 2 or 3 inodes.
rday