4 ms·
I don't think the layout is coherent at all. Ubuntu layout is much more coherent. If I need nginx configuration I look in /etc/nginx. Following the same pattern
by dkarapetyan 10y ago
I don't think the layout is coherent at all. Ubuntu layout is much more coherent. If I need nginx configuration I look in /etc/nginx. Following the same pattern if I need mysql configuration I look in /etc/mysql. If I need to figure out the actual daemon configuration for each I look in /etc/init. It's all very nice and tidy. Actual binaries go in /usr/local/bin or /usr/bin or /bin. That's pretty much all I need to know for any binary or daemon. This is not true in FreeBSD. So where exactly is the incoherence?
- JdeBP 10y ago> If I need to figure out the actual daemon configuration for each I look in /etc/init. ... except that that was Ubuntu two major versions and some time ago, back when it used upstart. Nowadays, Ubuntu Linux is a systemd operating system. * https://freedesktop.org/software/systemd/man/file-hierarchy.html https://freedesktop.org/software/systemd/man/file-hierarchy....
- merlincorey 10y agoIt isn't actually as nice and tidy as it would seem because you do not have a direct separation between system configuration and application configuration. It's a small, subtle detail that for many is less important today than it once was; however, if I have two FreeBSD systems of mostly equal versions and I want to migrate applications and/or users from one to the other, I know ALL I have to do is copy from /usr/local -- try that on your Ubuntu machine. Good luck separating the system-specific configurations from your user and application configurations.
- dkarapetyan 10y agoI don't want that separation in a consistent and coherent system. User vs base is artificial. What I care about is the end result the overall system accomplishes and base vs non-base doesn't really factor into that. What does it matter to me if nginx is part of the base system or not? I need a web server. Arbitrarily choosing apache/httpd vs nginx to include as part of the base system is incidental complexity where I stand from.
- JdeBP 10y agoFlorian Haas apparently disagrees. * https://hastexo.com/blogs/florian/2016/02/21/containers-just-because-everyone-else/ https://hastexo.com/blogs/florian/2016/02/21/containers-just... * https://plus.google.com/+FlorianHaas/posts/4xjQP1q6DEN https://plus.google.com/+FlorianHaas/posts/4xjQP1q6DEN
- teacup50 10y ago> User vs base is artificial. No. It's not. If nginx releases an update, do you also need to update your OS? No, because the user dependency graph isn't shared with the base OS. If you update your OS, do you also need to update nginx? No, because there's backwards ABI compatibility. The split is not artificial.
- _qc3o 10y agoYou're talking about kernel vs userland. That's not base vs non-base. The BSD distributions unintentionally muddy the waters by calling what is an equivalent of a linux distribution a base system and so lose out on the distinction you are drawing.
- teacup50 10y agoNo, I'm talking about the Operating System vs. Applications. Drawing the line at the kernel syscall ABI is arbitrary; no other major operating system other than Linux does so. Consider how difficult it is to ship 3rd-party applications for Linux and all its myriad of distributions; the only thing you can truly rely on is the anemic syscall ABI provided by the kernel (vs. userland).
- dkarapetyan 10y agoHmm, I've never had any problems running something on ubuntu, debian, gentoo, redhat, etc. If it works on one then it works on all the others. If push comes to shove I just install the libraries and compile from source but this is a rare occurence and I've only have had to do that when I've relied on a version of Ruby or Python that has not come pre-packaged with the distribution. So I don't really know what you're getting at. If you're not talking about kernel vs userland and you're talking instead about ABI compatibility then the ABI is even more stable and requires even less work to port any piece of software from one distribution to another.
- mjg59 10y agoThis is an increasingly solved problem in the post-systemd world - /etc contains local configuration, system configuration is in /usr. We (CoreOS) support you doing mkfs on / in order to return to a default configuration built from the /usr config.
- teacup50 10y agoIf that's your definition, then FreeBSD and Solaris solved this without paying the systemd tax, via ZFS-based boot environments. https://www.freebsd.org/cgi/man.cgi?query=beadm&sektion=&manpath=freebsd-release-ports https://www.freebsd.org/cgi/man.cgi?query=beadm&sektion=&man... NeXt->Apple also avoided anything like systemd via a configuration system that supported inheritance across search domains (User, Local, Network, System): https://developer.apple.com/library/mac/documentation/Cocoa/Reference/Foundation/Miscellaneous/Foundation_Constants/index.html#//apple_ref/doc/c_ref/NSSearchPathDomainMask https://developer.apple.com/library/mac/documentation/Cocoa/...
- mjg59 10y agoOh, there's certainly multiple ways to do this. My point is purely that this isn't an inherent Linux/*BSD thing - there are modern Linux distributions that have precisely this property.
- frabbit 10y agoAnd isn't it actually part of the same effort (RH Stateless Linux) which spawned systemd and ostree ?
- snuxoll 10y agoThis is something I actually like about systemd and firewalld, everything in /usr/lib/systemd/ and /usr/lib/firewalld should only be handled by your package manager, anything you customize yourself belongs in /etc/systemd/ and /etc/firewalld, and they will override the corresponding entries in the 'global' folders if you give them the same filename.
- vivin 10y agoFreeBSD is quite coherent. Anything not part of the base system goes into /usr/local. If you're having trouble understanding the layout of the filesystem, you only have to man hier: http://www.freebsd.org/cgi/man.cgi?hier(7) http://www.freebsd.org/cgi/man.cgi?hier(7)
- _qc3o 10y agoBut I thought BSDs where more monolithic and coherent systems. How is drawing a distinction between base system and non-base system make that true? If anything Linux embodies that philosophy much better. There is no ad-hoc and arbitrary decision between what is part of the base system and what is not. The system as whole is coherently laid out without drawing any base/user distinctions. Daemons are daemons, binaries are binaries, tools are tools, configuration is configuration and they all go in predictable places to become part of the overall system.
- vivin 10y agoHave you read the article? It isn't an ad-hoc distinction. You get the base system with a FreeBSD install. It includes the kernel and everything else that makes it a "FreeBSD system". This is stuff maintained by the BSD team. Everything else is an add-on. If you blew away /usr/local, you would be left with a pristine (mostly) BSD install. An analogy is a base windows install and all the associated tools and drivers. Anything else you install on your own is an add-on. This distinction is hardly arbitrary. Edit Seems to me you have a hard time understanding what a "base system" means. This is what the article is trying to explain, and it seems to have gone completely over your head; I can't help with that.
- _qc3o 10y agoI read the article. The distinction is indeed arbitrary. How much do you need for a base system really? Do you need more than the kernel, network drivers, and the filesystem? Last time I checked FreeBSD came with way more than those things. So someone, somewhere decided to include a whole bunch of other things as part of the base whereas they could just as easily be addon packages. I think FreeBSD includes various compilers and perl by default. Why's that? How is a compiler an essential part of a system? There are no apriori reasons to make certain "addons" part of the base system and others not. Linux does not draw this distinction and reaps the benefits of a more coherent system. The equivalent of "base system" in linux land is called a distribution and rightfully so. There is nothing basic about a distribution. It is an arbitrary set of choices made by the distribution maintainers and it is sold/advertised as such.