Take the 2-minute tour ×
Server Fault is a question and answer site for professional system and network administrators. It's 100% free, no registration required.

At my workplace I have a regular user account on RedHat and Suse machines. I don't have root privileges.

How can I install software that I download from the internet (from sources or binaries)?

For example, now I want to install the Geany IDE for my own use. I tried to download sources and compile, and I tried to install the RPM, but non of of these works because it requires the root.

share|improve this question
2  
Do you require root because of destination permissions (don't have access to /etc, /bin, /sbin etc) or because rpm/gcc has restricted permissions? –  Simurr May 22 '09 at 15:00
add comment

5 Answers

up vote 11 down vote accepted

You can install software into your own home directory. If you're comfortable compiling from source, and the package uses automake, then you can use the following option on configure:

--prefix=$HOME/install

or whatever. Similarly, rpm has a prefix option as well. However, this only works if the rpm was built to be relocatable.

share|improve this answer
add comment

Here's a very nice doc explaining non-root use of RPM:

"You've been told that working with RPMs needs system administrator privileges? You've been misled."

http://www.nordugrid.org/documents/rpm_for_everybody.html

share|improve this answer
add comment

Hmmm. Not that this is likely something a user could do, but I wonder if it might make sense for there to be per-user "overlay" filesystems (union-fs, etc) that overlay the "standard" system install directories, and so allow unprivileged users to install software in the 'normal' places.

You could also use a global union-fs filesystem to separate admin-installed non-standard SW (which often goes in /usr/local/* on many systems) from distribution packages. (Perhaps also to separate updates as well, and even allow for "roll-back" ala XP System Restore).

Hmmm

share|improve this answer
add comment

If you want to install it in the standard place (/usr/bin, etc), the short answer is that you won't unless the sys admin sets up something special to allow you to do it.

If you are compiling from source, most packages have a --prefix option that will allow you to set a non-standard install target. That allows you to install stuff in your home directory, including libraries that you can use for other software packages.

share|improve this answer
add comment

Most of the time you can pass PREFIX to configure to install it into your home directory:

./configure --prefix=/home/ioks/bin

This might get around the permissions issues.

share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.