How to check if an application has been installed on a unix/linux box?
hi, guys,
now I face a problem. I have developed an application, and when it starts, it shall check if an application has been installed on the running linux/unix. If result is positive, i do something with the application command.
just as an example: I want to check if sshd has been installed. this requirement is supposed to be distribution independent. So
on my Arch box, usually "sshd" can be found at /etc/rc.d/sshd
however on a debian/ubuntu box, it usually is located at /etc/init.d/sshd
is there a general way, say give me the "/etc/rc.d" or "/etc/init.d" directory on the system?
There is no "universal" command that is guaranteed to work on *ALL* UNIX/Linux flavors.
RHEL-based have rpm, Solaris has pkginfo, Debian-based have dpkg, I don't know about Arch but you get the point.
A simpler generic approach would be to find / -type f -name "sshd" but it's not bulletproof.
Another option would be to match your commands against /etc/*release but -again- it's not bulletproof either; I've seen several sysadmins modify this file in order to trick the system so that they can install unsupported applications (Oracle for example). Something like this:
The above code for instance won't work on a Linux minimal installation as it relies on "egrep" command.
It would be easier if you were looking for running processes; ps almost works the same in all Unix/Linux (either ps -A or ps -e should do).
thx for your explaination.
what I want to do is, when my toy starts, check if the certain service/software startup script, say sshd, under /etc/init.d/ or /etc/rc.d/, if it is there, I will run that start-up script, like sshd start|stop|....
However I am not sure if all unix/linux distributions place those start-up scripts under etiher /etc/init.d or /etc/rc.d then invoking some of them in certain runlevel setting.
if it was so, i can just test if "sshd" is under either of above 2 directories.
Not as simple as you think. Many Linux distributions are moving away from BSD or SysV startup scripts towards systemd or something similar. Solaris 10 went to Service Manager.
Hello Forum,
I'm issuing a one line bash command to look for the version of an installed application and saving the result to a variable like so:
APP=application --version
But if the application is not installed I want to return to my variable that the Application is not installed. So I'm... (2 Replies)
Hi,
I want to determine whether my java application is pointing to the OS version of Java or the User installed Java version on my Unix box.
I am aware of the "java -version" command, however I am unsure if the version returned is the OS one or the user one.
Please help.
Ali. (5 Replies)
Hi , if I copy an application directory (with all its subdirectories) from one unix box to another (suppose same version), will that application work in the 2nd unix box? (3 Replies)
Hi,
I need to query and find out if anyone is logged into a Linux box or if the Linux Box is free available for login. This information is required to post the availability of the Linux Host for an instrument for another user to start using the instrument.
Is there a command or script to query... (3 Replies)
I am trying to list all the applications that is installed on my sun solaris box.
I have used the command pkginfo but it only give me the applications that was bundled with solaris. This machine runs oracle and pkginfo command does not list that.
Any idea to get to list all the applications... (1 Reply)
Hi all,
I had a large application created using Visual C++. I ported that application using WINE to the Linux platform (ofcourse x86). Now I have to port the same application to AIX which runs over IBM mainframe. I dont have mainframe available but it is required for me to port my application to... (1 Reply)
Hm am the perfect newbie:o
I handle an application on a production servers having a SunOS 5.8 and iplanet webserver instance. Users trying to access it on https are getting "Cannot find the server". I checked with the n/w and secuirty and they said traffic is allowed to the server. Everything... (6 Replies)
rshstatus=`rsh -n lilo /db/p2/oracle/names9208/restart_names.sh`
if $rshstatus <>0 then
errstatus=1
mailx -s "xirsol8dr" ordba@xxx.com >> $log_dr
else if errstatus=0
echo "status to xirsol8dr successful"
can anyone provide if this is t he correct way to do this or is there a better way? (1 Reply)