Results 1 to 7 of 7
I am trying to come over from a Windows to Linux and I have found it incredibly frustrating when it comes to the simple things Windows users take for granted. ...
- 10-26-2010 #1Just Joined!
- Join Date
- Feb 2010
- Posts
- 9
Frustrated
I am trying to come over from a Windows to Linux and I have found it incredibly frustrating when it comes to the simple things Windows users take for granted. The latest is program installation. I installed Freeradius using Yum and then RPM, where the heck does the default program folder get installed and how do you even find it.
I did a find . -name free and I come up with nothing
In Windows, I can go to a program respoistory, download a program to the default directory or choose one, launch the installation, and more often than not the program and most of it's components are installed in the 'Programs' directory. It is a pretty consistent, neat, and organized process. Can someone relate how Linux works in comparison?
I am not knocking Linux, just trying to understand if there is a consistent method to how it downloads, installs, and stores applications.
Thanks.Last edited by oneirishpollack; 10-26-2010 at 07:27 PM. Reason: Added additional info.
- 10-26-2010 #2Linux Guru
- Join Date
- Apr 2009
- Location
- I can be found either 40 miles west of Chicago, or in a galaxy far, far away.
- Posts
- 8,974
When you install with yum (supercedes rpm for package installation - use it instead of rpm, even to install .rpm files) or rpm, the installation will generally place the executables in /usr/bin, libraries in /usr/lib, /usr/lib64, or /usr/lib32 (depending upon whether or not you are running a 64-bit OS), and documentation in /usr/share/man. If there are other components, sometimes the package installation directory will be in /var, /opt, or /usr/share. If there are system-wide configuration files, then they will go somewhere in /etc. User-specific configuration files usually go in ~/.package such as ~/.metacity where the '~' represents the user's home directory.
As for the find command, you were looking for a file or directory named exactly 'free'. If you were looking for anything with free in the name (mixed case), then do this: sudo find / -iname '*free*'
That will return any file, link, or directory with 'free' in the name (in any mix of cases). The sudo makes this run as root so it can navigate directories that you as a normal user may not have privileges to access, assuming you are in the sudoers group. If you are running as root (as you had to be to install the package in the first place) then you can just leave the sudo off the command line.Sometimes, real fast is almost as good as real time.
Just remember, Semper Gumbi - always be flexible!
- 10-26-2010 #3
Well, the approaches to software installation and maintenance are different.
So different tools are needed.
What I mean:
On windows, a program stands on its own.
Usually (yes, I know there are noteable exceptions), there are no dependencies and everything the programm needs is in its folder.
linux has a more broader approach.
Software installations follow the Filesystem Hierarchy Standard (fhs)
Filesystem Hierarchy Standard
For a quick graphical overview look here
linux_file_structure.jpg (image)
So programs are *not* in their respective directory, but rather their parts are distributed by type.
Binaries go to .../bin
binaries for root (aka "administrator") go to .../sbin
manual pages go to the man directories.
That makes it possible, that programs depend on each other on a larger scale.
Which makes sense also from a open source perspective (working together).
It also enables smart partitioning:
Everything the system really *really* needs is in /boot /bin /sbin /lib and /etc
Place these on one partiton, that can be a) rather small and b) even read only (if wished)
and you gain a system, that most probably still can boot and give you a basis for operations in case the other partitions show errors.
You will notice, that there are also /bin and /sbin under /usr.
These are binaries, that are not essential for the system itself, but rather for it's purpose.
So databaseserver, webserver, <whatever> servers and their tools go there.
Then there is /usr/local/(s)bin
This is basically your playground.
Anything you compile on your own or scripts you have written should be there.
It is safe in a sense, that this directory structure will not be overwritten by a packagemanager.
Which brings me to packages
You say it is easy in windows.
I say it is not thought through.
Reason: The update mechanism in windows only covers microsoft software.
You have to update each other program individually.
In linux, usually all software is controlled by the package manager.
So, regardless if you have a desktop machine with thousands of packages (my ubuntu netbook 10.10 currently has about 1500 packages installed) or if you have a stripped down server or if you have one machine or hundreds:
You update them all the same:
Also, can you tell, if a file has been altered since install?Code:yum update
Or which files belong to an application and where?
Or the other way around: What is the package for this file?
Yes sir
So to answer your question:Code:rpm -v --verify <PACKAGENAME> rpm -qivl <PACKAGENAME> rpm -qf <FILE>
I would suggest you get to know your package manager yum and some basic rpm commands.
Also look at that fhs picture or in the best case read the fhs
Then you will know exactly what belongs where and why, and also how to install, deinstall, update, verify, etc packagesLast edited by Irithori; 10-26-2010 at 09:45 PM.
You must always face the curtain with a bow.
- 10-27-2010 #4Just Joined!
- Join Date
- Feb 2010
- Posts
- 9
Thank you both for your respective post. You have answered my question thoroughly without the "Google it" answer that has become so common in many forums.
I am creating a cheatsheet from your replies and plan on reviewing my Linux book.
Thanks again.
Irish Pollack
- 10-28-2010 #5Just Joined!
- Join Date
- Feb 2010
- Posts
- 9
So in regards to accessing directories and files via the GUI. If someone want to access a file in a directory that only has root permissions (/etc/raddb/certs), what is the preferred method to do this using the GUI?
1. Login as Root
2. Change directory/file permission
I could do a SU in a terminal, but I would prefer using the GUI interface.
Thanks
- 10-28-2010 #6
You should have permission to read files in the root directory, just not write to them. So browsing through with a file manager is not an issue.
Depending on the file manager, they often have an option to open a file as root or open a terminal to the current directory as root.
I would not login as root. If you need to temporarily run your file manager as root, you can launch it using gksu or gksudo (in GNOME and most GTK based environments) or kdesu (in KDE).
So open a terminal or run dialogue (ALT+F2 usually) and enter
To launch GNOME's nautilus file manager as root. (I don't think Fedora uses sudo by default? If they do or you've installed it, you can do gksudo nautilus instead.)Code:gksu nautilus
For KDE
Any graphical program you may need to open as root can be done in the same way.Code:kdesu dolphin
- 10-28-2010 #7Linux Guru
- Join Date
- Apr 2009
- Location
- I can be found either 40 miles west of Chicago, or in a galaxy far, far away.
- Posts
- 8,974
Login as root. Changing the permissions can leave a hole exploitable by malware. Don't change default permissions on processes or directories unless you REALLY know what you are doing, that the potential consequences of your actions.
Sometimes, real fast is almost as good as real time.
Just remember, Semper Gumbi - always be flexible!


Reply With Quote