Results 1 to 4 of 4
Hi again,
Just a quick question on best practices on the Linux file system and my code.
On Windows it is easy, write some code and chuck it in the ...
- 08-02-2010 #1Just Joined!
- Join Date
- Jul 2010
- Posts
- 25
What is best practice for file locations?
Hi again,
Just a quick question on best practices on the Linux file system and my code.
On Windows it is easy, write some code and chuck it in the program files folder, create a shortcut and bam thats my software deployed.
What I have come to like about linux is that everything has its place and the structure makes sense, so I just wanted to check in and see if the file locations I am going to use are best to maintain a level of consistency with other installed applications throughout my system.
CheersCode:/usr/bin/<my main program> /usr/share/<gui files, pngs, bmps, etc> /usr/lib/<my shared libs>
- 08-02-2010 #2
Refer to the Linux Filesystem Hierarchy for the official word on where things go.
In general, if you compile a piece of software for linux, it defaults to installing in /usr/local, with the option during configuration of changing the install location.
Example of how you would run many configuration scripts to install in /usr instead of /usr/local
My rule of thumb personally is, unless I'm building a package for the software, therefore allowing it to be tracked and uninstalled via the package manager, I will not install things to /usr, but use /usr/local instead.Code:./configure prefix=/usr
Some distros use /usr/local a little differently, for example, RHEL says
In Red Hat Linux, the intended use for the /usr/local/ directory is slightly different from that specified by the FHS. The FHS says that /usr/local/ should be where software that is to remain safe from system software upgrades is stored. Since system upgrades from under Red Hat Linux performed safely with the rpm command and graphical Package Management Tool application, it is not necessary to protect files by putting them in /usr/local/. Instead, the /usr/local/ directory is used for software that is local to the machine.
For instance, if the /usr/ directory is mounted as a read-only NFS share from a remote host, it is still possible to install a package or program under the /usr/local/ directory.
- 08-03-2010 #3Just Joined!
- Join Date
- Jul 2010
- Posts
- 25
Thanks for that, I'll give that link a read.
My software will not come with a configure script as my target system will never change, so I will take my gcc compiled programs and libs and create a install script to move all the packages to the /usr/local folder.
Thanks.
- 08-03-2010 #4Just Joined!
- Join Date
- Aug 2010
- Posts
- 89
I would say :
Distro provided core program would be in
/bin /lib /sbin
Distro provided program would be in :
/usr/bin + /usr/lib
The program you compile (with configure + make install) would be in
/usr/local/bin /usr/local/lib ....
The program you install (binary way (like windows program files folder)) should be in
/opt/your-program-name


Reply With Quote