14

From the filesystem hierarchy standard, /usr/local would be for "local data, specific to this host." But I don't quite understand that, since isn't the entire filesystem usually local to the host? i.e. /bin contains binaries, and those binary files will only be used to invoke processes on this host, generally speaking. A second host would have its own copy of binaries, though they might actually be the same if you diffed them.

So, can you explain the meaning of "local data"? In what sense is it local?

2
  • For an example, my workplace has some of the /var folders as network drives. This allows sharing of stuff everyone needs and simplifies the process of ensuring everyone has the same files. Also, having a personal folder on the network drive ensures it's easy to back things up and work with clusters. But the network drive is slower and local SSDs are preferred for "regular" use.
    – Kat
    Oct 19, 2017 at 20:45
  • I think the description is simply wrong. In my experience, it has almost always meant something more like "specific to this organization", not a particular machine.
    – Barmar
    Oct 20, 2017 at 17:35

2 Answers 2

21

since isn't the entire filesystem usually local to the host?

No, sharing the read-only parts (e.g. all of /usr or even the entire /) across the network was actually quite common.

Although I think that's not the point. "Specific to this host" can also mean not provided by the distribution – it's software you've built and installed by hand, as opposed to the rest of /usr containing generic packaged files (which would indeed be the same across many hosts).

For example, many source code build systems use /usr/local as the default install location. If you just run ./configure && make && make install, it will dump everything to /usr/local/bin and such.

10

Expanding on the answer by @grawity:

The term "local" stems from a time, when there was only a single UNIX. In this context, all systems running the same version would have a big set of files identical between all hosts, with accordingly only a minority of other files differing between hosts.

These non-universal files would either be configuration data in /etc, or optitional files in /opt or "something else, local to the host" - i.e. */local.

In modern times, when there are (wildly) different members of the UNIX family tree and storage requirements for the OS being a tiny fraction of the total storage typically available, many coming in different flavours (*BSD, Linux distros), the term "local" has been watered down, maybe even into a historical relict.

3
  • I thought there were certainly multiple different Unixen by the time they started cramming binaries and stuff in /usr Oct 17, 2017 at 4:56
  • 5
    (On the other hand... all systems running the same version of Debian also have a big set of files identical between all hosts. There doesn't need to be "a single UNIX" for that.) Oct 17, 2017 at 5:06
  • @grawity That's exactly the point: "all Debians" is not the same as "all UNIX-y OSes" today. But at the time the standard was conceived, this was very close to reality. Oct 17, 2017 at 7:41

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .