|
FreeBSD Ports and Packages Installation and upgrading of ports and packages on FreeBSD. |
|
Thread Tools | Display Modes |
|
|||
/usr/local and application directories
I want to install the ABC commercial application on a FreeBSD system. The installation script of the packed kit wants to create the ABC application directory with its own structure (ABC/bin, ABC/var, ABC/etc, etc). Where should I tell the script to make that directory? I want to make that application available for all of the system users, so my home directory is not an option.
Does the "/usr/local/ABC" directory comply with the hier specifications? Man hier says: ...... Within local/, the general layout sketched out by hier for /usr should be used. Exceptions are the man directory (directly under local/ rather than under local/share/), ports documentation (in share/doc/<port>/), and /usr/local/etc (mimics /etc) ....... There's no provision for "/usr/ABC" in hier, so "/usr/local/ABC" is illegitimate, too. Did I miss something? So, where should I create my ABC/ directory? |
|
||||
Well the age old rule in my book.
Administrators rule the hierarchy! The depending on what it is proper place by convention would probably be /usr/local/ABC or /opt/ABC or /ABC -> note that FreeBSD doesn't create an /opt and I don't mind ;-) I also tend to be quite strict on local system data residing separate from the rest of the system but people are generally free to do what they want.
__________________
My Journal Thou shalt check the array bounds of all strings (indeed, all arrays), for surely where thou typest ``foo'' someone someday shall type ``supercalifragilisticexpialidocious''. |
|
|||
ABC is a pure hypothetical example. I simply want to know where to put an application directory if the *BSD hier does not mention such a case and the FHS /opt directory is subject of dispute between linux and *BSD gurus.
I know I could make the application directory wherever I want to (/ABC, /opt/ABC, /usr/local/ABC, /usr/ABC) but I want to be a "good citizen in the *BSD world", as I am in the linux world (/opt/ABC). |
|
|||
Quite a few programs install into /usr/local/ABC, but not all of them do, unless your package has a completely unique directory structure, Why not place binaries in /usr/local/bin(or sbin), man pages in /usr/local/man.. resources or default data in /usr/local/share/ABC/*
As for user specific configuration files, create a hidden directory in the users home directory... /home/user/.ABC/* That's pretty much a safe default for most software, the whole /opt + FHS thing is so Linux-centric.. |
|
||||
I believe TeXLive it's files by default as /usr/local/TeXLive/YYYY/* at least that's what I recall when installing it on my BSD machine.
__________________
My Journal Thou shalt check the array bounds of all strings (indeed, all arrays), for surely where thou typest ``foo'' someone someday shall type ``supercalifragilisticexpialidocious''. |
|
|||
Thank you for your replies.
I want to conclude, if you don't mind. If I want to install a non open-source application which wants to create an application directory on a *BSD system, I have NO standard BSD hier compliant solution but an accepted one - to install in /usr/local. Any other location is possible but not acceptable in the BSD world. Please correct me if I'm wrong. |
|
|||
Quote:
The size of the / partition is not guaranteed, in fact, it's only 150M on my workstations.. as you can see, users might not be happy with you creating a /opt directory and using up all the available space. That's my opinion. |
|
||||
I like to keep things clean and separated on my systems:
Of course, as the admin for my systems, I can make up whatever rules I like. |
|
||||
I believe the formal nature of things would be three hierarchies
/ level -> needed for starting the system, the real critical stuff. And probably holdovers from old unix days. /usr level -> stuff that came with the OS but non-essential to starting the system, i.e. /bin/shd versus /usr/bin/vi /usr/local level -> the local systems crap including /usr/local/bin/emacs. Quote:
__________________
My Journal Thou shalt check the array bounds of all strings (indeed, all arrays), for surely where thou typest ``foo'' someone someday shall type ``supercalifragilisticexpialidocious''. |
|
|||
Let me reformulate: where should I/we put an application directory (which means a directory containing ALL of the application files, into it's own structure, under a common root, ABC/ for example) if the standard *BSD filesystem hierarchy provides no room for it?
Should we blame the application developers for packaging the port like that or the standard for being too restrictive? An FreeBSD port example is bdc. It installs everything under /usr/local/bdc. Is this path hier compliant? Quote:
|
|
||||
The manual doesn't define the contents of /usr/local in specific any way
__________________
My Journal Thou shalt check the array bounds of all strings (indeed, all arrays), for surely where thou typest ``foo'' someone someday shall type ``supercalifragilisticexpialidocious''. |
|
||||
hier(7) does:
Quote:
|
|
|
Similar Threads | ||||
Thread | Thread Starter | Forum | Replies | Last Post |
AIX: Which Application is Using a Specific Port | vermaden | Guides | 5 | 12th April 2009 04:01 AM |
Best Web Application Language | JMJ_coder | Programming | 24 | 25th November 2008 12:25 PM |
Kickstart-like application for ports | stukov | FreeBSD Ports and Packages | 7 | 11th November 2008 04:33 PM |
What include and shared library directories are searched by gcc | kasse | FreeBSD General | 3 | 16th July 2008 08:44 PM |
Home directories suddenly missing in Samba | Dagoles | FreeBSD General | 4 | 22nd May 2008 12:50 AM |