Solved When was /usr/home/* replaced by /home/* for user directories?

I've just installed 14.2 and my post-install script is complaining that /usr/home doesn't exists. When did /usr/home stop being the default for user directories?
 
Just a little rant here, but I hated that move.

IMHO it would be way better to move to /usr/local/home.

At the same time, finish creating a way to have all the files in /etc static with a similar file in /usr/local/etc for user configuration. Similar to /usr/local/pkg/.

This way we would only need to backup /usr/local, and it would make FreeBSD more modular, just mount your /usr/local and you have your whole system up and running.
 
I have my home-Directory directly under root.

I think this is also very modular. I have my /home-Folder on a separate pool, so if I want to make a fresh FreeBSD install, the /home-Directory is save here.

I wouldn't combine /etc and /usr/local/etc. In my view the separation is
  • /etc is for System-Settings
  • /usr/local/etc is for Ports and packages
And for me it is not complicated to save both folders.

My Workstation-Backup includes only the following folders.
  • /boot
  • /etc
  • /root
  • /usr/local/etc/
  • /var
And /home of course. :)
 
IMHO it would be way better to move to /usr/local/home.
Nothing prevents you from setting it up that way. You can move your home directory to /usr/local/home/ and make /home/ a symlink that points to it.

I wouldn't like it, personally. I like my /usr/local/ to contain only software and related files, and my data to reside in its own subdirectory of root. /home/user/ feels cleaner and is more convenient to type than /usr/local/home/user/ or /usr/home/user/.
 
Just a little rant here, but I hated that move.

IMHO it would be way better to move to /usr/local/home.

At the same time, finish creating a way to have all the files in /etc static with a similar file in /usr/local/etc for user configuration. Similar to /usr/local/pkg/.

This way we would only need to backup /usr/local, and it would make FreeBSD more modular, just mount your /usr/local and you have your whole system up and running.
I always prefer /home, even while FreeBSD defaulted /usr/home, and created symlink from /usr/home pointing to /home.
For me, /home is always a dedicated partition (UFS) or dataset (ZFS). Just a mount point.

In my humble opinion, this is far more better than placing user home directories under /usr/local/home in backup perspective, as /usr/local is the place for system-wide additional programs and default data for them, while /home is for data (sometimes programs) specific with each users.

I don't intend to force you anything, but imagine when you need to replace currently running computer to new one. As time goes by, system-wide programs installed via ports/pkgs would vary, and so as base OS versions.
Backups for old computer possibly does not fit for environments required for new one. But what about user data? Yes, some may need updating (~/.config/* and so on), but pure data should be simply restorable from backup of /home. This is why I strongly want /home to be dedicated partition/dataset.

By the way, in oldest Unix, home directories of each users seems to be placed directly under /usr. This would be because /usr was originally defined for the purpose, but once Unix becomes larger and cannot hold every system-wide things needed in root partition (could be single physical drive available at the era), programs not essential to boot were moved into /usr, so for example /usr/bin, /usr/sbin,... are defined and home directories of each users were moved into newly defined /home.
Later on, increases of non-standard programs required /usr/local to be defined. But I don't know any multi-user OS defaulting user home directories under /usr/local/home, and cannot find examples in Wikipedia.
 
Besides BEs, this is why I like ZFS. Create a dataset to hold user home directories, muck around with mountpoint properties and you can move it where ever you want (dataset is user/home but mountpoint is /home)

The "needed" mount point handled by a symlink creates a static mapping that base utilities use; things like adduser and such, otherwise you need to tell each utility "where is user home".
And yes, once can (should?) create a separate partition and UFS filesystem for user home, but you wind up with the same thing: a symlink "/home" that points to the real datastore.
Old foggy memory I think that "/home" was actually a symlink to somewhere else for a long time.
 
Old foggy memory I think that "/home" was actually a symlink to somewhere else for a long time.
It would be the symlink to /usr/home, by default, if I recall correctly.
(Not sure the symlink was created by default or not.)

If I recall correctly, the first time I've installed FreeBSD (would've been 2.1.6), user home directories were under /home.
And at some point (I cannot recall) the default was moved to /usr/home, and at the moment, symlink /home pointing to /usr/home was created by default, but as I disliked it, I deleted symlink /home, create mountpoint /home and configure a partition (ZFS was not implemented yet on FreeBSD at the moment) to be mounted there, delete physical /usr/home and created symlink /usr/home to point to /home.

Not 100% sure, possibly at some point, symlink /home pointing to /usr/home stopped to be created by default (I could be wrong here).

And now, it was back to /home by default.
 
Just a little rant here, but I hated that move. […]
The problem really isn’t where put your home folders at, but that exeter’s post‑installation script does not take account of varying locations, say​
Bash:
getent passwd root | cut -d':' -f6 # for pre‑existing users
home=$(pw useradd '.' -N | cut -d':' -f9); home=${home%/.} # for new users
or the fact that some users’ home folders (deliberately) don’t exist as in the case of nobody.​
 
man hier now contains the following entries. Notice particularly what /usr/ is to contain:
In fact you can easily go back in time on man pages online, and for FreeBSD 1.0 the entry for /usr/ as "contains the majority of user utilities and applications" doesn't seem to have changed at all since! But nothing at all about home directories, and man hier generally doesn't seem to have considered them in scope to document.

The first appearance of even the concept of a home directory in FreeBSD's man hier was FreeBSD 2.2.1 where we see /root is "root's HOME directory". And as far as I can tell, no other instances of a "home" directory are documented until FreeBSD 13.2 noted that /nonexistent/ is "a non-existent directory; by convention, it serves as a home directory for special user accounts that need no home directory; see also /var/empty", then FreeBSD 13.3 noting that /home/ is for "user HOME directories. This is a symlink to /usr/home/" and dropping mention of /nonexistent/. By that time the change of location in 14.0 had already happened so presumably the man pages were documented to reflect that change.

Btw, does anyone know why some directories are listed in man hier with a trailing slash and others aren't? I can see the logic in writing "/usr/" so its subdirectories can just be written as "bin/, games/" etc without a slash at the start. But for directories for which no subdirectories are documented, is there some significance to why it's "/root" and "/kernel" but "/lkm/" and "/mnt/" etc? It looks like originally they all had a trailing slash, with the exception of the final entry /386bsd for a "pure kernel executable (the operating system loaded into memory at boot time)". As additions got made over time there was inconsistency about whether there should be a trailing slash or not. But perhaps it was supposed to mean something? The OpenBSD man hier has stuck to having trailing slashes on everything except kernel executables. NetBSD apparently the same, and trailing slashes are very useful for them since their man hier includes many files as well as directories so the trailing slash makes it much clearer which is which.

Fwiw, over in the Linux world, the Filesystem Hierarchy Standard has gone the other way and has no trailing slashes on its directories. But that's not the original UNIX way - in 1979's Version 7 where, according to the Berkeley docs, man hier was first introduced, we do get trailing slashes and "/usr/" is described as a "general-pupose directory, usually a mounted file system" - and of course, no mention of "home". That's the same description as used in BSD4.2. And in the final BSD4.4-Lite2 we have /usr/ listed as "contains the majority of the system utilities and files", /home/ as "mount point for the automounter; see amd(8)" /amd/ as "home directories mount point; see amd(8)" and /root/ as "home directory for the super-user".

See:
 
By the way, in oldest Unix, home directories of each users seems to be placed directly under /usr. This would be because /usr was originally defined for the purpose, but once Unix becomes larger and cannot hold every system-wide things needed in root partition (could be single physical drive available at the era), programs not essential to boot were moved into /usr, so for example /usr/bin, /usr/sbin,... are defined and home directories of each users were moved into newly defined /home.
Later on, increases of non-standard programs required /usr/local to be defined. But I don't know any multi-user OS defaulting user home directories under /usr/local/home, and cannot find examples in Wikipedia.
You can see this for yourself in a classic 1982 Bell Labs film (I'm sure you've all watched it) at 13:30 where Brian Kernighan's home directory is at /usr/bwk
View: https://youtu.be/tc4ROCJYbm0?si=mRNrcsDDpEwQXd05&t=810


Here's Dennis Ritchie's explanation from https://www.bell-labs.com/usr/dmr/www/notes.html
In particular, in our own version of the system, there is a directory "/usr" which contains all user's directories, and which is stored on a relatively large, but slow moving head disk, while the othe files are on the fast but small fixed-head disk.
And when Bell Labs started work on Plan 9, that just used /usr instead of /home too. Apparently 386BSD did too - interesting previous discussion here https://forums.freebsd.org/threads/question-about-usr.89402/#post-613901
 
Not 100% sure, possibly at some point, symlink /home pointing to /usr/home stopped to be created by default (I could be wrong here).
I don't know if the symlink was dropped at some point and later reintroduced, or always staid there, but systems installed as 13.x-RELEASE had it by default.
 
I don't know if the symlink was dropped at some point and later reintroduced, or always staid there, but systems installed as 13.x-RELEASE had it by default.
Thanks! So it souldn't be dropped at any time, regardless the direction.

The last time I used the installer as installer (means, not only for invoking LiveCD mode to recover anything) was the time before switching from sysinstall to (current) bsdinstall happened, thus, didn't precisely checked how bsdinstall does for it.
 
Back
Top