Linked by Thom Holwerda on Thu 28th May 2009 19:17 UTC
OSNews, Generic OSes Ask OSNews is apparently quite popular among you guys; the questions just keep on coming in. Since David took on the first two, we decided to let me handle this one - it's an area I've personally covered before on OSNews: file system layouts. One of our readers, a Linux veteran, studied the GoboLinux effort to introduce a new filesystem layout, and wondered: "Why not adopt the more sensible file system from GoboLinux as the new LSB standard?"
Thread beginning with comment 365869
To view parent comment, click here.
To read all comments associated with this story, please click here.
RE[5]: With more casual users...
by boldingd on Thu 28th May 2009 21:24 UTC in reply to "RE[4]: With more casual users..."
boldingd
Member since:
2009-02-19

I've only been a programmer for ~6 months: what I am about to say may be idiotic. But:
It is exactly as a programmer that the FHS annoys me. When I do the "configure, make, make install" (dance to install a dependancy, say), I have no idea where on my system the libraries I'm building are going to end up (yes, I know that I can usually specify that with configure, but, sometimes some things expect those libraries to be in their default locations: if I change that with configure, I may break some other library that has the library I'm building as a dependancy). When I'm writing a make file, it can be really, really annoying to figure out what my library include paths should be. If it was clearly specified and consistently enforced where libraries should go and where headers should go, my life would be a lot easier.

Reply Parent Score: 2

AdamW Member since:
2005-07-06

"I've only been a programmer for ~6 months: what I am about to say may be idiotic. But: "

Good thing you put in that disclaimer. Er, I'm sorry, but it *is* a bit idiotic.

"When I do the "configure, make, make install" (dance to install a dependancy, say), I have no idea where on my system the libraries I'm building are going to end up"

Almost always, if you don't specify a prefix, everything will be installed within /usr/local. If not, the author either has an extremely good reason, or is just flat out wrong. All typical buildsystems should be written to install within /usr/local by default.

The reason for this is simple: as long as everything adheres to the convention, you have a clear and easy separation between code installed from source (which will all be within /usr/local) and code from distribution packages (which will all be up in /usr). It's always easy to know where something comes from, and in the worst case, you can always delete (or just move) /usr/local to get back to your 'base', distribution-packaged system state.

BTW, why are you building the libraries you want to build against from scratch? Why not just install your distribution's packages for them? This would usually be the sensible way to do it.

"When I'm writing a make file, it can be really, really annoying to figure out what my library include paths should be."

In most cases, you should be using pkg-config for this purpose (if you don't know about that, yet, look it up).

Reply Parent Score: 2

Thom_Holwerda Member since:
2005-06-29

All well and fine, Adam, but every Linux distributions basically disregards the FHS anyway, and places files wherever the hell they please. It gets even more retarded the moment you go cross-platform into the world of BSDs, and don't get me started on the layer-upon layer mess that Mac OS X has created, which is basically a full-blown admission that yes, the FHS is MAJOR SUCKAGE. However, instead of Apple fixing it, they gave in as well and now we have this hybrid monstrosity.

Reply Parent Score: 1