9

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.

1
  • 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, 2009 at 15:00

7 Answers 7

14

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.

10

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
6

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.

5

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

3

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.

1

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

1

I'm having the same problem as you. I haven't tried it yet but it seems that Linuxbrew can be handy on this issue.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .