How to build application without sudo privileges?

24,225

Solution 1

If your users use

./configure --prefix=/home/user/opt/

Or for cmake projects

cmake -D CMAKE_INSTALL_PREFIX:PATH=/home/user/opt/ ../source/

This will install the program in that prefix (instead of the default /usr/local/) and your users should then be able to run the program like this:

/home/user/opt/bin/program

If you want them to be able to run the programs by simply using the name (without full path) you need add /home/user/opt/bin to the path environment variable, edit the users .profile and add the following line:

export PATH=/home/user/opt/bin:$PATH

Note that programs installed in this way will be private to the specific user, but it's a way to do it

Solution 2

Users can build applications without sudo rights. The only time you need sudo rights is when you want to install something into the system directories.

./configure and make work always without sudo rights. make install usually needs sudo rights because it will install the application to /usr/local or /usr (sometimes /opt).

However, if you change the prefix for the installation path (i.e. ./configure --prefix=~/usr/local) in a way that the installation will be perform inside the user's home directory tree, no sudo rights are needed for make install.

Share:
24,225

Related videos on Youtube

Admin
Author by

Admin

Updated on September 17, 2022

Comments

  • Admin
    Admin over 1 year

    What do I need to setup on a Ubuntu 9.10 server so that a user can build applications of there choice (i.e. ./configure , make && make install) with out the need for sudo/admin privileges.

    I just feel its a bit of a security risk having to give a user access to parts of the system they might not need in order to build a app.

  • Jammerz858
    Jammerz858 about 13 years
    Other users will be able to use programs installed like this if they supply the full path and the permissions are set appropriately; and it appears that the default umask allows this on my desktop install.
  • Nikos Alexandris
    Nikos Alexandris over 11 years
    I still think that your answer isn't completely backed up. Why do ./configure and make work always without sudo? How should I justify it to someone who keeps executing sudo make install for example?
  • Big Rich
    Big Rich over 5 years
    The codebase I was compiling had a Makefile but no configure, I just went into it and changed the prefix = /some/path line to my own home directory (no trailing slash) and then ran make install without sudo - all working now, so thanks.