Here is a summary of the arguments for and against each place for a
VSB installation to reside:
1) <base-dir> scenarios:
1.1) /opt - Pros: simple, brief, understandable. Cons: May be less
robust if not split across physical devices, may not strictly
adhere to Linux Standard Base.
1.2) /var/opt - Pros: Strict adherence to Linux Standard Base,
possibly more robust with splitting across physical devices.
Cons: More complexity, more difficult to create management
tools, more difficult to understand.
1.3) /opt/mumps - Pros: All mumps applications in one place. Cons: All
mumps applications in one place.
1.4) /home/<userid> - 'Single-user mode' Pros: Possible security
advantages and some understandability. Cons: Variable location, less
organized.
1.5) /srv - Pros: The new thing. Cons: Doesn't already exist on some
distributions.
VOTE:
Please indicate your preference for Base Directory <base-dir> for
VistA Standard Base Specifications/Guidelines Version 0.9
a) /opt/mumps
b) /opt
c) /var/opt
d) /srv
e) /home/<userid>
Again, answers like some, all or none are not helpful, simply do not
vote if you have no preference.
1st choice for preferred directory (answer only with one): ____
2nd choice for preferred directory (answer only with one): _____
Proposal for VistA Standard Base (VSB) Specification/Guidelines
Version 0.9 Release Candidate 1
Purpose: To enable and facilitate the creation of standard VistA
management methods and tools for machines that contain approximately 1
to 10 instances of VistA on the same machine.
Caveats: If more efficient utilization of disk space and greater
uptime during gtm update per instance is desired such as for a
Application Service Provider(ASP) type installation please see the
VistA ASP Base(VAB) specification:
http://docs.google.com/View?docid=dd5f3337_232jhhvdvdj
Attempted completion date: 01/30/2009, aka pull the bandaid off as
quickly as possible.
Changes: Added language and referral to VistA ASP Base(VAB)
specification for more efficient disk space use.
Simple Install:
/opt/lsb-gtm/<version>_<platform> # default for gtm,
owned by bin, all uppercase routines.
/<base-dir>/<branding>vista/<instance>
/<base-dir>/<branding>vista/<instance>/doc # all documentation resides here.
/<base-dir>/<branding>vista/<instance>/g<lobals> # Can be a mount
point to a different physical device.
/<base-dir>/<branding>vista/<instance>/web # Future web items.
/<base-dir>/<branding>vista/<instance>/backup # Can be mount
point. Backups that are not journals.
/<base-dir>/<branding>vista/<instance>/j<ournals> # Can be a mount
point to a different physical device.
/<base-dir>/<branding>vista/<instance>/r<outines> # Usually mumps
routines, see additional heirarchy 13) below
/<base-dir>/<branding>vista/<instance>/etc # Version, release
and other configuration information.
/<base-dir>/<branding>vista/<instance>/etc/vista.conf # contains
version, release and other config information.
/<base-dir>/<branding>vista/<instance>/etc/patch_listing.txt #
Optional listing of patches for this instance.
/<base-dir>/<branding>vista/<instance>/o<bjects> # Object files.
/<base-dir>/<branding>vista/<instance>/images # Can be mount point
for patient photos, scanned documents.
/<base-dir>/<branding>vista/<instance>/env # for gtm/VistA
environment variables.
/<base-dir>/<branding>vista/<instance>/bin # for server controller
type software.
/<base-dir>/<branding>vista/<instance>/bin/run # Bhaskar'sconvention,
run an instance.
/<base-dir>/<branding>vista/<instance>/bin/vistastart # Bhaskar's convention.
/<base-dir>/<branding>vista/<instance>/bin/vistastop # Bhaskar's convention.
/etc/init.d/vista-<instance> # Automatic start stop startup
handling. Bhaskar's convention.
/etc/xinetd.d/vista-<instance> # setup listening port for
client such as CPRS for <instance>.
Where:
<base-dir> -- Preferred base-dir default to be voted on about Friday.
Can be /opt, /var/opt, /opt/mumps as well as 'single-user' mode
/home/<userid>, /opt/mumps (see 1 below)
<branding> -- 'world', 'open', 'vx' etc, MUST be preceeded or followed
by 'vista' as in <branding>vista.
<instance> -- can be multiple instances. Parent and child instances
via symlink okay. See 4) below for default names.
g<lobals>, r<outines>, o<bjects>, j<ournals> are defaulted to g, r, o
with full name available only if the vista release supports it.
1) <base-dir> scenarios:
1.1) /opt - Pros: simple, brief, understandable. Cons: May be less
robust if not split across physical devices, may not strictly
adhere to Linux Standard Base.
1.2) /var/opt - Pros: Strict adherence to Linux Standard Base and with
splitting across physical devices, possibly more robust.
Cons: More complexity, more difficult to create management
tools, more difficult to understand.
1.3) /opt/mumps - Pros: All mumps applications in one place. Cons: All
mumps applications in one place.
1.4) /home/<userid> - 'Single-user mode' Pros: Possible security
advantages and some understandability. Cons: Variable location,
less organized.
1.5) /srv - Pros: The new thing. Cons: Doesn't already exist on some
distributions.
2) Good practice for /backup and j<ournals> is that they should be
symlink or a mount point on a different physical media. Directories
that can be mount points are:
a) /<base-dir>/<branding>vista/<instance>/g<lobals>
b) /<base-dir>/<branding>vista/<instance>/backup # Backups that
are not journals.
c) /<base-dir>/<branding>vista/<instance>/j<ournals> # Can be a mount
point to a different physical device.
d) /<base-dir>/<branding>vista/<instance>/images # Can be mount
point for patient photos, scanned documents.
3) Default port for clients such as CPRS listening: 9260 Production,
9261 Training, 9262 Development
4) Defaults names for <instance>: production, training, development,
<customer name>
5) All documentation explicitly converted from Microsoft format cr/lf
to Unix/Linux format before posting to
6) Standard use of tar.gz format for bundling of files and residing on
Sourceforge.
7) Default user id: vista, default group id: vista
8) /var/log for logs
9) /tmp for temp files
10) Use /etc/skel and /etc/profile.d for global environment settings
where appropriate.
11) Use the suffix .sh on scripts that are shell scripts.
12) GT.M journal files are written to the j<ournals> directory.
13) If supported by VistA release, additional r<outines>
subdirectories first proposed by J. Tai with modifications:
The routines directory contains MUMPS routines (.m files). No
routines are stored in the routines directory itself; the routines
are stored in subdirectories that reflect the origin of the routine.
/<base-dir>/<branding>vista/<instance>/r<outines>/development
/<base-dir>/<branding>vista/<instance>/r<outines>/hotfixes
/<base-dir>/<branding>vista/<instance>/r<outines>/customer
/<base-dir>/<branding>vista/<instance>/r<outines>/vendor
/<base-dir>/<branding>vista/<instance>/r<outines>/foia
Where:
* development – code that is under development; this directory
should always be empty in production environments
* hotfixes – code not yet part of any Kernel Installation and
Distribution System (KIDS) build or other distribution
* customer –code that is part of a customer-specific KIDS build
* vendor – code from third-party vendors, e.g., the Victory
Programming Environment
* foia – unmodified code from the U.S. Department of Veterans Affairs (VA)
* version_patch_info -- Information on versions and patches on the system.
--
Fred Trotter
http://www.fredtrotter.com
That being said, I think that the files for the VistA system don't
really follow the model of
MySQL, Oracle etc. We have three levels when many people have only two:
the general case is that you don't have access to the programming language from
within the database system, so they have the compiled database system
and the applications
written to use the database system. From the Linux perspective, we
have the programming
language and the the database. The fact that VistA provides a virtual
operating system
(the VA Kernel) and applications within that system is usually opaque
to most Linux programs.
The idea of exposing the information inside the MUMPS system as a user mode file
system is very attractive, as it allows the true applications (Lab,
Pharmacy, etc) to be visible.
My two farthings worth,
Dave
While it does not strictly adhere to the FHS, I think /opt (without
moving globals and journals to /var/opt) is the simplest. In terms of
the FHS, I personally feel that /srv is better, but given that GT.M and
Mirth both install to /opt by default, it would probably be best to have
OpenVista default to /opt as well. Internally we've been using /opt, so
it's what we're used to, anyway. (I didn't read up on /srv until
someone here mentioned it.)
- Jon
Todd Smith
Confidentiality Note: The information contained in this message
may be privileged and confidential. If this e-mail contains
protected health information, you are hereby notified that any
dissemination, distribution or copying of this communication is
strictly prohibited,except as permitted by law. If you have
received this communication in error, please notify the sender
immediately by replying to this message and deleting it from your
computer. Thank you.