NAME
notes_linux_setup - some recommendations for setting up Linux for running Antelope
SUPPORT
BRTT does not provide IT support. We include the notes in this
man-page to provide some Antelope-specific guidelines for IT personnel
setting up systems to run Antelope. We make no claims that these
notes are comprehensive, especially in regards to setting up IT
systems in general. Note that large, enterprise-class systems REQUIRE
an expert IT team to set up and administer their IT
capabilities. While BRTT does not provide such services, if you
contact us via
support@brtt.com we may be able to direct you
to other service providers for assistance.
DESCRIPTION
This man page describes several issues specific to running Antelope on Linux, focused
on system administration needs.
Antelope is currently supported on
Red Hat Enterprise Linux (RHEL) version 7.6.
Because CentOS 7.6 is released with the promise of full binary compatibility with
RHEL,
we consider Antelope supported on
CentOS 7.6 as well until this assumption is proven wrong.
Environment Group
We recommend installing the most complete
Environment Group of
rpm packages possible
(often named something like
Development and Creative Workstation) when you run the
RHEL
Linux installer. If you choose something like
Server with GUI,
Basic Web Server, or worst of all
Minimal Install, you will likely encounter multiple errors about missing shared libraries.
To find the available
Environment Groups on your machine, use the command
% yum grouplist
If you need to upgrade to a more complete group of installed
rpm's, you may do so with the
yum
groupinstall command and the name of the chosen group from
yum grouplist, e.g.:
% yum groupinstall "Development and Creative Workstation"
If you have not installed a complete-enough
Environment Group but nevertheless need to resolve a
problem with a missing shared library, you may need to correct your installation with commands such as
the following. For example, if you are receiving complaints about a missing shared-object library named
libXss.so.1, try the following:
% yum whatprovides libXss.so.1
....
libXScrnSaver-1.2.2-6.1.el7.i686
....
% yum install libXScrnSaver
Fonts
In order to get dbpick to work, the following font distributions are required. If they are
not installed already, you may need to run the following commands:
% yum install xorg-x11-fonts-ISO8859-1-75dpi.noarch
% yum install xorg-x11-fonts-misc.noarch
As an aside, programs such as
rtcache(1) won't start without
libXfont installed.
Additional user packages
Following the advice of
required_unix_programs(1), it is useful to install
% yum install xterm
% yum install gnuplot
% yum install telnet
For
xwininfo, you need
% yum install xorg-x11-utils
If you have trouble with
Xvfb launching due to keyboard-configuration issues, you may need
% yum install xorg-x11-server-common
which includes
% yum install xkeyboard-config
% yum install xorg-x11-xkb-utils
If you have trouble with
Qt-based applications failing immediately with
memory corruption errors,
you may need to update to the latest version of
libXi:
% yum update libXi
In order to run the
getgif(1) command, which admittedly is a bit dated,
you need to have the ImageMagick package
% yum install ImageMagick
In the event of problems, it is very helpful to have the
gdb debugger installed
% yum install gdb
File Descriptors
The default per-user limit for file descriptors on RHEL6.2 is 1024. This is too small for some programs such
as
orb2wf(1). You can modify this limit for the system by editing the file
/etc/security/limits.conf
to include two new lines
* soft nofile 8192
* hard nofile 65535
Where
nofile refers to
number of files.
Process limits
The default per-user limit for number of processes in RHEL6.2 may also be too low for your Antelope systems. Note
that on Linux this
process limit actually counts the number of running threads.
You can modify this limit for the system by editing the file
/etc/security/limits.conf
to include two new lines
* soft nproc 8192
* hard nproc 65535
Where
nproc refers to the
number of processes.
If the above step is not sufficient to provide enough processes, you may wish to look for another obscure
file that overrides the above, named something
like
/etc/security/limits.d/90-nproc.conf
A similar soft limit with exactly the same format as above may be necessary in this file.
Note that many system administrators limit the number of processes intentionally to prevent accidental fork
bombs, so the settings appropriate for your machine may be a trade-off between these two competing objectives
(allowing Antelope to run vs preventing fork bombs).
Swap Space / Virtual Memory
In order to create a swap file on RHEL, do the following as root:
% dd if=/dev/zero of=/swapfile bs=1024 count=4194304
% mkswap /swapfile
% cat >> /etc/fstab
/swapfile swap swap defaults 0 0
Then reboot. This makes a 4GB Swap file (block-size 1024 bytes with a count of 2^22 i.e. 4194304 blocks).
To make sure the swap file is mounted, type the command
free or
cat /proc/swaps which should
reference the created swap file.
Out-of-memory (OOM) Killer
Linux comes with a mechanism called the Out-of-memory (
OOM) Killer which detects when the machine is dangerously
low on memory and selects one or more processes to kill based on a set of heuristics. When Linux chooses to kill
real-time system processes such as
orbserver(1)s, this can have negative effects on a running real-time system. The
OOM Killer may be tamed a bit by disabling it on a per-process basis. This can be done by putting the
OOM_DISABLE
value of
-17 into the proc diretory for the running process (this value is inherited by child processes, so if
you do this for the running
rtexec(1) instance, at least newly created children will inherit the same value).
To disable
OOM for a process, find its process-ID (
pid) and as root execute
echo -- -17 > /proc/<pid>/oom_score_adj
To shut off the
OOM Killer system-wide, execute
sysctl vm.overcommit_memory=2
And then add the following line to
/etc/sysctl.conf:
vm.overcommit_memory=2
For more information, see
http://lwn.net/Articles/317814/
http://backdrift.org/oom-killer-how-to-create-oom-exclusions-in-linux
http://www.oracle.com/technetwork/articles/servers-storage-dev/oom-killer-1911807.html
Locale settings for sort order
Sort order for file-globbing on Linux platforms may differ from that on Mac. This can affect the order of files
fed into programs, which may be significant in some cases (e.g. with
miniseed2days(1)). The file-globbing sort order is
governed by locale settings. Specifically, one can set the environment variable
LC_COLLATE to a common value
such as
C:
LC_COLLATE=C; export LC_COLLATE
or (
csh/
tcsh):
setenv LC_COLLATE C
For more information, see
http://compgroups.net/comp.unix.solaris/ordering-in-linux-ls-la/508654 .
Display Power Management Signaling
If you have dual monitors, one of them may occasionally turn completely off after a period of disuse. This is managed
by the Linux
Display Power Management Signaling (DPMS) system. To turn this behavior off, execute
xset -dpms
To query its status, execute
xset q
This may need to be repeated after each reboot.
Perl Homedir problems
On many modern linux machines the
perl-homedir module is automatically installed and enabled, which configures the
system to automatically create a
~/perl5 directory in each users'
$HOME on user login. The module also
automatically sets the
PERL5LIB environment variable. Because such directory and environment extensions have the potential to
clash with the Antelope perl on enterprise systems, Antelope duly warns about them, usually with a message such as this:
Warning: The environment variable PERL5LIB is set to
/home/user/perl5/lib/perl5:
This could cause Antelope to fail.
While often harmless, these messages can be annoying, and they do indicate the potential for problems. A minimally invasive
way to disable this feature is to edit the files
/etc/profile.d/perl-homedir.sh
/etc/profile.d/perl-homedir.csh
to set the PERL_HOMEDIR variable to
0. (How to do so should hopefully be self-evident in these short script files). A more
heavy-handed and thorough way to disable
perl-homedir is to remove the package from the system entirely (one may need to execute
something like
rpm -qa | grep perl-homedir
to identify the exact name of the package). For example:
% rpm -e --nodeps perl-homedir-1.008010-4.el7.noarch
Other Linux Variants
There are multiple variants of the Linux Operating System available, many of them viable
alternatives and with their own strengths. In order to conserve limited resources, BRTT
has been forced to choose one variant to support. After a survey of users, RHEL was chosen,
as noted above. BRTT provides support for Antelope running on RHEL 6.2. The Linux
releases for which BRTT will not provide any support at all include, but are not limited to:
-
Annvix
-
Arch Linux
-
Arklinux
-
Aurox Linux
-
BlackCat
-
Cobalt
-
Conectiva
-
Debian
-
Fedora Core
-
Gentoo Linux
-
Immunix
-
Knoppix
-
Linux-From-Scratch
-
Linux-PPC
-
Mandrake
-
Mandriva Linux
-
MkLinux
-
Novell Linux Desktop
-
Parabola GNU/Linux
-
PLD Linux
-
Slackware
-
SME Server (Formerly E-Smith)
-
SUSE Linux
-
SUSE Linux ES9
-
Tiny Sofa
-
Tin Hat Linux
-
TurboLinux
-
Ubuntu Linux, and multiple variants (Kubuntu, Xubuntu, etc.)
-
UltraPenguin
-
UnitedLinux
-
VA-Linux/RH-VALE
-
Yellow Dog
This list is very far from complete. At the time of writing there are 258 known Linux variants listed
in the Wikipedia article referenced in the SEE ALSO section below.
SEE ALSO
notes_mac_setup(5)
http://en.wikipedia.org/wiki/List_of_Linux_distributions
AUTHOR
Kent Lindquist and Danny Harvey