[clamav-users] Difference between datadir and datarootdir

Michael Orlitzky michael at orlitzky.com
Wed Mar 6 22:11:21 EST 2019


On 3/4/19 9:28 PM, Jobst Schmalenbach via clamav-users wrote:
> 
> This is really confusing as datadir points DATAROOTDIR.
> 
> Can I make them the same?
> 

It's confusing in clamav because it's confusing everywhere. Those
directories and their meanings' come from autotools:

  https://www.gnu.org/prep/standards/html_node/Directory-Variables.html

but you shouldn't expect to be enlightened after reading that page.
Probably the best way to understand it is with an example. First, many
of the other directories (datadir, mandir, infodir,...) are defined in
terms of datarootdir. So, for example, we might have

  * DATADIR=$(DATAROOTDIR),
  * MANDIR=$(DATAROOTDIR)/man, and
  * INFODIR=$(DATAROOTDIR)/info

That means that if you want to move *all of that stuff*, then you would
move the datarootdir.

But then what is datadir for? Well... historically, some people have
wanted to treat e.g. games as second-class packages. So, for example,
they wanted to put all of the graphics files for games under
/usr/share/games/<package-name>. That's fine, if the games themselves
know where to look for that stuff. But things like man/info pages can't
go there -- they need to be in the place where "man" or "info" will look
for them! And basically, you can set DATADIR=/usr/share/games to
accomplish that sort of thing.

So to summarize: yes, you can set them the same, and they will usually
be the same.


More information about the clamav-users mailing list