[colug-432] Stoopid Question

Rob Funk rfunk at funknet.net
Wed Jan 26 10:30:51 EST 2011

On Wednesday, January 26, 2011 10:11:56 am Joshua Kramer wrote:
> In many large *IX / *UX website installations I know of, all of the
> websites are housed under /opt.  In fact, for my Django websites, I've
> taken to including all non-system Python modules (including Django itself,
> as well as psycopg2) in the website's lib directory instead of
> /usr/lib/python24/site-packages.

Makes sense to me. The big interpreted languages (e.g. Python, Perl, PHP, 
notoriously Ruby) are really bad about understanding and following the FHS. 
/usr/lib/anything is a really bad place for "site-packages". I think it's 
partly because they're cross-platform and the other major platforms don't 
have any concept like the FHS.

Part of the problem is that those language libraries tend to require upgrades 
more often than the base system, and the distribution may have trouble 
keeping up. So it makes perfect sense to have a per-project (e.g. website) 
"vendor lib" space for upstream libraries (though I'd put the websites under 
/srv), as well as a global space for shared upstream libraries that's 
somewhere other than /usr (e.g. under /opt).

It's even worth considering putting the language itself outside the package 
system (and therefore outside /usr). I don't know about Python, but that 
seems to be the preferred direction in the Ruby world.

More information about the colug-432 mailing list