How to build application without sudo privileges?
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
.
Related videos on Youtube
Admin
Updated on September 17, 2022Comments
-
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 about 13 yearsOther 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 over 11 yearsI still think that your answer isn't completely backed up. Why do
./configure
andmake
work always withoutsudo
? How should I justify it to someone who keeps executingsudo make install
for example? -
Big Rich over 5 yearsThe codebase I was compiling had a
Makefile
but no configure, I just went into it and changed theprefix = /some/path
line to my own home directory (no trailing slash) and then ranmake install
without sudo - all working now, so thanks.