OK, here's a monkey wrench in the works...
I long ago developed rules for file systems, mostly based upon AT&T Unix System V Release 3 supplemented by Release 4 (SVR4 is the usual abbreviation for that).
Yes, I am well aware that Linux is Not Unix (as in GNU is Not Unix) but Slackware, in particular, is sorta-kinda the most like SVR4 of the Linux distributions and I have, for some 12+ years (don't remember exactly) set up my mounted
file systems like this:
- root 10-20 G (used to be 10, now 20 looks better)
- /home 20 G
- /usr/local 20 G
- /opt 20 G
- /var/lib/psql 150 G (that's a little overkill)
- /var/lib/mysql 50 G (so's that)
- /var/lib/virtual 100 G
- /spares 100 G
Now, those are all mounted file systems on one or more drives and, of course, you may or may not need a large PostgreSQL partition or a largish MySQL partition bu I do.
looks like this:
tree -L 1 /usr/local
Look familiar? Ought to: it's a duplicate of the system tree (mostly).
When I build software, be it SlackBuilds, non-SlackBuild source or whatever, it gets built in /usr/local/packages/src
tree -L 1 /usr/local/packages/src
Most of those directory names are the sections of SlackBuilds; e.g.,
tree -L 1 /usr/local/packages/src/libraries
For some reason, SlackBuilds seem to want to install in the root tree -- which I just flat do not like, I want locally-added software in the /usr/local
tree (that's what it's there for) or, in the case of things like LibreOffice, in /opt
(optional software). I tend to edit the SlackBuild files so that things do install in /usr/local
(which is a pain in the butt to do most of the time). That keeps church and state separate and distinct.
I'm running four servers, two 64-bit and two 32-bit (the 32-bit boxes are data base servers, no window managers, administered with SSH from my main work station). There are all kept up to date with patches, there are all kept at Slackware stable; I don't do fiddling with kernel or any of that sort of thing; the patches are all kept in /usr/local/patches
When a new release of Slackware comes along, it's really easy to do a clean install (takes about 20 minutes per box) -- because there is nothing in the root tree that is not on the distribution DVD (that's why the root can be 10 G -- you start adding stuff the root tree and you'll need 20 G).
As you step through the installation where you're adding file systems, you just format root but don't format any of the other partitions and you haven't lost everything that was there. 99-44/100% of the time, everything just works. You copy /etc
off to, in my case, /spares
and you get back in business real quick by merging the saved /etc
with the newly installed /etc
. I'm serious, 20 minutes from start to running server, configured the way I need it to be (and no recovering add-on stuff).
The virtual partition is where Win7 lives (I have to have it, so I hold my nose and keep it up to date every Patch Tuesday but otherwise it sits there unused). It's also where I play with Linux every now and again but not all that often. If you think about what a royal pain in the ass it is to install Win7 (then sit for house while it does a couple of hundred critical updates, you'll know why it's a separate partition).
Is there any problem with /usr/local
? Nope, works just fine, already in your PATH environment, no problem. Over the long haul, you do not want to build stuff in your home directory and you do not want to run virtual machines from your home directory. Trust me on this, it'll byte you in the butt someday.
Works for me, might work for you.
Hope this helps some.