Thursday, September 20, 2007

Control of alternative linux executables

Here are simple tips on controlling which executables would be executed by your linux box when issued from command line terminal.

There are several ways to specify and control which binary executable file or linux shell command would be executed by your system when issued from the terminal.


SCENARIO APPLICATION
~~~~~~~~~~~~~~~~~~~~

This blog entry assumes the possible scenarios relating to this linux blog entry:

a. you just resume to your new job with these linux boxes and you found out that some binaries were installed manually from tar ballz (tar.gz) and some were from rpm (rpm) binary package installer

b. the linux box uses both opensource binary package version and the package distributed by commercial company, like for Java binaries.

c. a previous sysad created an executable with an exact filename similar to linux built-in commands.

d. simply you want to know specify which binary executables you want to execute


Let us assume that we currently have two binary executable files named nagios, which are currently located from two different location ofcourse.

# which dir
/usr/bin/nagios
/usr/local/bin/nagios


Here are some alternative approach on how to specify which binary file location to go into when executing a linux binary or executable file.


First scenario approach
~~~~~~~~~~~~~~~~~~~~~~~~

Be in charge of your linux bash environment. This includes setting all the needed environment variables into your desired needs. Reordering of default PATH shell environment from current user account is also advisable .

# echo PATH

Considering the two binary nagios path locations

/usr/bin/nagios
/usr/local/bin/nagios

And assuming you want your system to look first for /usr/local/bin/, simply specify and change your system PATH environment variable and make sure /usr/local/bin comes first before /usr/bin before executing the duplicated binary executable like so

# export PATH=/usr/local/bin:/usr/bin
# nagios


Second scenario approach:
~~~~~~~~~~~~~~~~~~~~~~~~~

Make use of linux command name aliasing. Linux bash aliases can be instructed to remember a particular path location when executing a specific linux command. This also applicable to specify further binary arguments when calling a default binary executables.

# alias nagios='/usr/local/bin/nagios'
# nagios

To specify additional argument for a binary
# alias nagios='/usr/local/bin/nagios --whatever'
# nagios

To print all linux aliases and verify the above specifed binary path location alias

# alias
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
alias nagios='/usr/local/bin/nagios'
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


Third scenario approach
~~~~~~~~~~~~~~~~~~~~~~~~~

Alternatives man definition:
alternatives creates, removes, maintains and displays information about the symbolic links comprising the alternatives system. The alternatives system is a reimplementation of the Debian alternatives system. Alternatives was rewritten primarily to remove the dependence on perl; it is intended to be a drop in replacement for Debian’s update-dependencies script.

It is possible for several programs fulfilling the same or similar functions to be installed on a single system at the same time. For example, many systems have several text editors installed at once. This gives choice to the users of a system, allowing each to use a different editor, if desired, but makes it difficult for a program to make a good choice of editor to invoke if the user has not specified a particular preference.

The alternatives system aims to solve this multiple executables issues by using symbolic links to specify default command location using linux command alternatives.


Now, to install and add both nagios alternatives to alternatives config choices, simply

# alternatives --config nagios
# alternatives --install /usr/local/bin/nagios nagios /usr/local/bin/nagios 1
# alternatives --install /usr/bin/nagios nagios /usr/local/bin/nagios 2

To view current nagios alternatives config
# alternatives --display nagios

To view and select which binary nagios binary for linux to execute when issued from CLI
# alternatives --config nagios

Alternatives prioritizes binary command execution using alternatives command as shown above.


Final Note:
~~~~~~~~~~~

As you can see, there are lot of alternative ways to approach an issue using linux tool sets. Linux is quite powerful specially on these scenario on customizing basic tool command sets up to custom made kernels, that is why OpenSource tools are quite powerful and would continue to be so.

HTH
Appreciate your visit here, thanks for the tip!

0 comments:

Sign up for PayPal and start accepting credit card payments instantly.
ILoveTux - howtos and news | About | Contact | TOS | Policy