Sponsored Content
Operating Systems Linux Fedora Clueless re Java: /opt vs. /usr/local Post 302879786 by bakunin on Sunday 15th of December 2013 10:16:04 AM
Old 12-15-2013
The debate about "/opt" versus "/usr/local" boils down to the following:

In Unix the layout of the filesystem is more or less fixed. Every file, executable or not, should have its designated place where it has to go. This only as an afore.

The Linux initiative came up with an attempt to further codify this already long-used "best practice" and published the "Filesystem Hierarchy Standard".

I won't comment on the other parts of the document, just the part dealing with "/usr/local" and "/opt":

"/opt" is where all application should go. For every application there should be a subdirectory with its name (and optionally manufacturer) and in that a directory with its version. The "foo" application of the "bar" company in version 1.23 would go to "/opt/bar/foo/1.23", for instance. The executables for this software should be in "/opt/bar/foo/1.23/bin" with optional links to "/opt/bin" to avoid a convoluted PATH.

"/usr/local" is the place for all the OS extensions the administrator wants to have at this particular system. As "/usr" (short for "Unix Software Resources") is under the sole discretion of the OS provider this is the only place that should be modifyable by the SysAdmin. Still, this should be limited to OS-relevant utilities, not for applications in their own right. You might place a third-party "ssh"-client there or "gzip", but not, for instance, "MySQL".

Having said that: if you put java into "/usr/local" or into "/opt" is a question of if you see it as an application in its own right or merely a system tool. There is no "correct" answer to that, just your sensible decision about what best describes its usage on your system.

I hope this helps.

bakunin
 

10 More Discussions You Might Find Interesting

1. Programming

/usr/bin/ld: warning: libgfortran.so.1, needed by /opt/openmpi/lib/libmpi_f90.so, may

hello, i get these warnings on make(ing) /usr/bin/ld: warning: libgfortran.so.1, needed by /opt/openmpi/lib/libmpi_f90.so, may conflict with libgfortran.so.3 /usr/bin/ld: warning: libgfortran.so.1, needed by /usr/lib/gcc/x86_64-redhat-linux6E/4.3.2/../../../liblapack.a, may conflict with... (1 Reply)
Discussion started by: sreekar
1 Replies

2. BSD

configure /usr/local/etc/be-agent.cfg

hi Howto configure Ralus at /usr/local/etc/be-agent.cfg on freeBSD 7.0 for Backup Exec 9.1? I've tried the following: # cat /usr/local/etc/be-agent.cfg name bsd.domain export / as root export /usr as usr export /var as var export /tmp as tmp force_address 10.10.1.50 tell... (0 Replies)
Discussion started by: ccc
0 Replies

3. Solaris

Questions about /usr/local/bin & scripts.

Hi gentlemen. For what intended is the directory /usr/local/bin? In this directory are some script. I don't understand how these scripts being in this directory are started. Each time after registration of the user occurs start of these scripts. These scripts start applications. (7 Replies)
Discussion started by: wolfgang
7 Replies

4. UNIX for Dummies Questions & Answers

/usr/local/lib is not searched by ld-linux.so by default?

it seems that /usr/local/lib is not searched by ld-linux.so by default in fedora14. If so, why some software put its lib files in /usr/local/lib? eg: glib and gtk+. (6 Replies)
Discussion started by: vistastar
6 Replies

5. UNIX for Dummies Questions & Answers

Difference between /opt and /usr/local.

Hello Gurus, Can any one explain me the difference between /opt and /usr/local. When should we use them. Can we link with any directory in windows I mean similarity between unix and windows. (7 Replies)
Discussion started by: rama krishna
7 Replies

6. AIX

/usr/local/bin/cvs: Not found

I can able to access /usr/local/bin/cvs in the terminal (AIX 6.1 Box). but i am getting the "/usr/local/bin/cvs: Not found " when i call it from the script. please some one assist me what maybe problem (6 Replies)
Discussion started by: hifirockz
6 Replies

7. OS X (Apple)

sudo chown -R `whoami` /usr/local

I was following a tutorial on installing Homebrew and I changed the ownership of /usr/local/ to me. Now McAfee Security won't start This is the exact line I typed: sudo chown -R `whoami` /usr/local Then I tried to fix it with: sudo chown -R root /usr/local I still can't start mcafee. It say... (7 Replies)
Discussion started by: chancho
7 Replies

8. Shell Programming and Scripting

/usr/local/bin/expr function not working

Legends, I am not able to set "expr" function in ksh script. Below is the sample code i used, and output is as "Syntax error" Please help me to come out of it. OUTPUT (9 Replies)
Discussion started by: sdosanjh
9 Replies

9. BSD

FreeBSD: /usr/bin/ld not looking in /usr/local/lib

I'm not sure if this is the default behavior for the ld command, but it does not seem to be looking in /usr/local/lib for shared libraries. I was trying to compile the latest version of Kanatest from svn. The autorgen.sh script seems to exit without too much trouble: $ ./autogen.sh checking... (2 Replies)
Discussion started by: AntumDeluge
2 Replies

10. Red Hat

Process not running: /opt/java15/jdk/bin/java -classpath /opt/apache/apache-ant-1.7.0-mod/lib/ant-la

Have no idea on what the below error message is: Process not running: /opt/java15/jdk/bin/java -classpath /opt/apache/apache-ant-1.7.0-mod/lib/ant-launcher.jar org.apache.tools.ant.launch.Launcher -buildfile build.xml dist. Any help? (3 Replies)
Discussion started by: gull05
3 Replies
stl_mi(4)						     Kernel Interfaces Manual							 stl_mi(4)

NAME
stl_mi - Software distribution master inventory files DESCRIPTION
Each software product that is distributed as subsets for the setld(8) command has an associated master inventory file. The master inventory file's name consists of the product's unique 3-letter name and a 3-digit version number with the string .mi for a suffix. The master inven- tory file is used by the software kitting program kits(1) in producing software distribution packages. A master inventory file contains one ASCII record, describing vendor-specified attribute information, for each file in the product kit. Each record is composed of three fields which must be separated by TAB characters. The fields are: A 16-bit unsigned integer. Bit 1 is the v (volatility) bit; when it is set, changes to the existing copy of the file can occur during kit installation. It is usually set for log files required by applications. The remaining bits are reserved. Possible values for this field are therefore 0 or 2. The dot-relative (./) pathname of the file described by this record. Each pathname must appear only once in the master inventory file. Pathnames must begin with a period (.). Records must be sorted in ascending ASCII sequence on this field. The name of the subset containing the file. Standard system directories are not included in subsets; they are represented by the keyword RESERVED in place of a subset name. Files that exist in the product hierarchy but are not distributed as part of any subset have a minus sign (-) in this field. Files that share a gnode (links) must all be included in the same subset. EXAMPLES
This example shows a section of the master inventory for a hypothetical layered product kit: 0 . RESERVED 0 ./usr/opt RESERVED 0 ./usr/opt/OAT100 OATDCB100 0 ./usr/opt/OAT100/bin OATDCB100 0 ./usr/opt/OAT100/bin/attr OATDCB100 0 ./usr/opt/OAT100/bin/dcb.spr OATDCB100 0 ./usr/opt/OAT100/bin/dcb_defaults OATDCB100 0 ./usr/opt/OAT100/bin/dcb_diag.sed OATDCB100 0 ./usr/opt/OAT100/bin/docbld OATDCB100 0 ./usr/opt/OAT100/bin/unstamp OATDCB100 0 ./usr/opt/OAT100/lib OATDCB100 0 ./usr/opt/OAT100/lib/br OATDCB100 0 ./usr/opt/OAT100/lib/br/README.dcb OATDCB100 0 ./usr/opt/OAT100/lib/br/attr.1 OATDCBDOC100 0 ./usr/opt/OAT100/lib/br/dcb.ps OATDCBDOC100 0 ./usr/opt/OAT100/lib/br/docbld.1 OATDCBDOC100 0 ./usr/opt/OAT100/lib/br/docbld.5 OATDCBDOC100 0 ./usr/opt/OAT100/lib/br/unstamp.1 OATDCBDOC100 0 ./usr/opt/OAT100/lib/doclib OATDCB100 0 ./usr/opt/OAT100/lib/doclib/templates OATDCB100 0 ./usr/opt/OAT100/lib/doclib/templates/conv.braces OATDCB100 0 ./usr/opt/OAT100/lib/doclib/templates/conv.command OATDCB100 . . . RELATED INFORMATION
invcutter(1), kits(1), newinv(1), setld(8) Guide to Preparing Product Kits delim off stl_mi(4)
All times are GMT -4. The time now is 12:46 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy