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

6 Answers 6

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

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

I use JuJu which basically allows to have a really tiny linux distribution (containing just the package manager) inside your $HOME/.juju directory.

It allows to have your custom system inside the home directory accessible via proot and, therefore, you can install any packages without root privileges. It will run properly to all the major linux distributions, the only limitation is that JuJu can run on linux kernel with minimum reccomended version 2.6.32.

For instance, after installed JuJu to install pip just type the following:

$>juju -f
(juju)$> pacman -S python-pip
(juju)> pip
share|improve this answer

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

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

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

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.