[sf-perl] poll: directory layout question
Michael Paoli
Michael.Paoli at cal.berkeley.edu
Sat Apr 24 23:29:06 PDT 2010
I'd be inclined to start here:
http://www.pathname.com/fhs/
I'd typically put the variable bits under /var,
e.g.
/var/opt - for 3rd party applications variable content
/var/local - locally installed stuff not matching the above or
immediately below
/var - elsewhere under var for OS/distribution packages
Configuration bits under /etc, e.g. likewise:
/etc/local, /etc, /etc/opt
Static bits would generally be under /usr, e.g.
/usr/local
/usr/lib
or /opt for 3rd party stuff.
Typically, precedence-wise:
/usr /var /etc /opt - with /opt functioning similar to /usr, but for 3rd
party stuff, then, if applicable, subdirectory of opt or local - except
no /opt/opt or /opt/local, then typically package name (or for 3rd party,
often vendor_name/package_name) when under /opt or /var or /usr/local,
but many things may go, or also go more directly into suitable
directories, e.g. /usr/local/bin/name_of_app_executable. These can be
versioned with symbolic links to preferred/default version.
Anyway, that's where I'd generally put things physically. Symbolic
links can also be used to aid in logical
arrangement/location/presentation.
Standards/conventions will vary depending upon environment, e.g. the
above would mostly apply to POSIX/SUS/Unix/Linux/BSD, but not as much so
for Microsoft, VM, MVS, etc.
"Of course" it all should be reasonably configurable (e.g. with suitable
build/install options), and packaged appropriately (distribution/flavor
packaging and/or CPAN). Things may also change, e.g. from "local" to
not in a given distribution if that something becomes package provided
by that distribution.
> Date: Thu, 22 Apr 2010 09:54:43 -0700
> From: David Alban <extasia at extasia.org>
> Subject: [sf-perl] poll: directory layout question
> To: sfperl <sanfrancisco-pm at pm.org>
> Message-ID:
> <t2l4c714a9c1004220954r7fc30d16uc8fa6dd8b76c15bb at mail.gmail.com>
>
> say you're developing "tool 1.0".
>
> say tool has some config files you want in an etc directory and some
> state files you want in a lib directory. say you want tool under
> </usr/local/>.
>
> do you prefer this layout:
>
> /usr/local/etc/tool/...
> /usr/local/lib/tool/...
>
> or this layout:
>
> /usr/local/tool/etc/...
> /usr/local/tool/lib/...
>
> and why?
>
> i know both work. i've used both. but i'm curious as to the reasons
> you fine folks choose one over the other.
More information about the SanFrancisco-pm
mailing list