What is the "right" place for installing ooRexx on a Mac?

With the risk of being flamed I ask the question: where should the official 
installer go on a Mac?

I have created a „BSD Centric“ installer/uninstaller for /usr/local but there 
seems to be many opinions so better get it all out in the open. Here are the 
options as I see them (all in italic are excerpts from various places):


"BSD Centric"

https://unix.stackexchange.com/questions/11544/what-is-the-difference-between-opt-and-usr-local
 
<https://unix.stackexchange.com/questions/11544/what-is-the-difference-between-opt-and-usr-local>


"What is the difference between /opt and /usr/local?

While both are designed to contain files not belonging to the operating system, 
/opt and /usr/local are not intended to contain the same set of files.

/usr/local is a place to install files built by the administrator, typically by 
using the make command (e.g., ./configure; make; make install). The idea is to 
avoid clashes with files that are part of the operating system, which would 
either be overwritten or overwrite the local ones otherwise (e.g., /usr/bin/foo 
is part of the OS while /usr/local/bin/foo is a local alternative)."

On the other hand, /opt is a directory for installing unbundled packages (i.e. 
packages not part of the Operating System distribution, but provided by an 
independent source), each one in its own subdirectory. They are already built 
whole packages provided by an independent third party software distributor. 
Unlike /usr/local stuff, these packages follow the directory conventions (or at 
least they should). For example, someapp would be installed in /opt/someapp, 
with one of its command being /opt/someapp/bin/foo, its configuration file 
would be in /etc/opt/someapp/foo.conf, and its log files in 
/var/opt/someapp/logs/foo.access."


https://apple.stackexchange.com/questions/119230/what-is-standard-for-os-x-filesystem-e-g-opt-vs-usr
 
<https://apple.stackexchange.com/questions/119230/what-is-standard-for-os-x-filesystem-e-g-opt-vs-usr>


"Nowadays, /usr contains user commands (in /usr/bin for normal users and 
/usr/sbin for administrative users, like root), shared libraries (/usr/lib), 
man pages (/usr/share/man), executables that shouldn't be run directly by users 
(/usr/libexec) and other stuff.

It also offers a subdirectory, /usr/local, to place programs, libraries and 
other files that don't come with the base OS.

/opt has a very similar role to /usr/local and they seem interchangeable. 
However, from my experience working with other Linux/UNIX sysadmins, there 
seems to be a preference for /usr/local in BSD-based UNIX OSs.

So this is my take on it: macOS is BSD-based and consequently I'd use 
/usr/local. Note that you can create a program directory and then symlink 
commands to /usr/local/bin, etc, for example:
...
So, in macOS, I'd recommend that you stick to /usr/local as described above."

Both these links seems to imply that in a BSD unix one should install to 
/usr/local.

On my machine Homebrew and MacGPG2 install to this place. I wouldn´t say it is 
"cluttered" with only two installed components, Homebrew hides all its 
installations in /usr/local/cellar.


"Linux Centric"

Installing to /opt seems to me to be a Linux thing, following the Filesystem 
Hiearchy standard (but I might be wrong here)

Apple does not follow the FHS and on a fresh installed Mac /opt does not even 
exist. Thus the installer must create it if it is decided to go this way.


"Apple Centric"

https://developer.apple.com/library/content/documentation/CoreFoundation/Conceptual/CFBundles/Introduction/Introduction.html#//apple_ref/doc/uid/10000123i
 
<https://developer.apple.com/library/content/documentation/CoreFoundation/Conceptual/CFBundles/Introduction/Introduction.html#//apple_ref/doc/uid/10000123i>

(Updated: 2017-03-27)

https://developer.apple.com/library/content/documentation/MacOSX/Conceptual/BPFrameworks/Frameworks.html#//apple_ref/doc/uid/10000183i
 
<https://developer.apple.com/library/content/documentation/MacOSX/Conceptual/BPFrameworks/Frameworks.html#//apple_ref/doc/uid/10000183i>

(Updated: 2013-09-17)

"For nearly all cases, installing your frameworks in /Library/Frameworks is the 
best choice. Frameworks in this location are discovered automatically by the 
compiler at compile time and the dynamic linker at runtime. Applications that 
link to frameworks in other directories, such as ~/Library/Frameworks or 
/Network/Library/Frameworks, must specify the exact path to the framework at 
build time so that the dynamic linker can find it. If the path changes (as it 
might for a user home directory), the dynamic linker may be unable to find the 
framework."

Apple seems to prefer that installation of languages are installed as 
"Frameworks"

The bsf4ooRexx installer follow this convention and installs in

/Library/Frameworks

Other languages (Ruby, Python and Kerberos) are installed in 

/System/Library/Frameworks, pressumably by Apple so this seems to imply that 
/Library/Frameworks is the "right" place for a language component on Mac

One problem with the bsf4ooRexx installer is that it reports as MUCH slower 
when you use rexxcps.rex to benchmark it. Rony indicated that this might have 
to do with a plist file. This must be clarified.


"Mininmal Invasive"

There is the possibility to install to the users home directory ~ This will 
avoid the use of sudo but then the installation is only available to a single 
user. My USB installation is a variant on this.

<Flame resistant suit on>

Hälsningar/Regards/Grüsse,
P.O. Jonsson
oor...@jonases.se




_______________________________________________
Oorexx-devel mailing list
Oorexx-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/oorexx-devel

Reply via email to