Linux make install command

While installing packages in linux, we come across the following commands many times.

$ make install

Let’s understand this with a simple example.install is a command that was written for software installation, but it can do more than that. mak…


This content originally appeared on DEV Community and was authored by Kinjal

While installing packages in linux, we come across the following commands many times.

$ make install

Let's understand this with a simple example.install is a command that was written for software installation, but it can do more than that. make install will do whatever instruction is defined in makefile.

This example uses a sample hello world C program.

#include <stdio.h> 
int main() {
 printf("Hello, World!"); 
}

Here is the directory structure of testapp which is created for this example.

$ ls testapp
installer.sh  makefile  testapp  testapp.c  testapp.conf 

Let's take closer look at installer.sh

#!/bin/bash
ROOTDIR=${1:-/opt/testapp}
OWNER=${2:-testapp}
GROUP=${3:-testapp}

# Create bin and opt directories
install -v -m 755 -o $OWNER -g $GROUP -d $ROOTDIR/bin $ROOTDIR/etc
if [ "$?" -ne "0" ]; then
  echo "Install: Failed to create directories."
  exit 1
fi

# install binary
install -b -v -m 750 -o $OWNER -g $GROUP -s testapp $ROOTDIR/bin
if [ "$?" -ne "0" ]; then
  echo "Install: Failed to install the binary"
  exit 2
fi

# install configuration file
install -b -v -m 600 -o $OWNER -g $GROUP testapp.conf $ROOTDIR/etc
if [ "$?" -ne "0" ]; then
  echo "Install: Failed to install the config file"
  exit 3
fi

echo "installation completed.."

All the chown install ect commands are defined in installer.sh and insatller itself is wrapped up in makefile so that makefile can be kept clean.

Here is makefile

all:    testapp.c
    $(CC) -o testapp     testapp.c

clean:
    rm -f testapp

install: testapp
    ./installer.sh /opt/testapp kiwi kiwi

purge:
    rm -rf /opt/testapp

And the content of sample conf file testapp.conf

$ cat testapp.conf
testapp=testapp

Finally, running it.

$ sudo make install
./installer.sh /opt/testapp kiwi kiwi
'testapp' -> '/opt/testapp/bin/testapp' (backup: '/opt/testapp/bin/testapp~')
'testapp.conf' -> '/opt/testapp/etc/testapp.conf' (backup: '/opt/testapp/etc/testapp.conf~')
installation completed..

testapp can be found in /opt directory if the installation is successful.

That's a very simple example. Here is one useful link for further reading.

Download the code here.


This content originally appeared on DEV Community and was authored by Kinjal


Print Share Comment Cite Upload Translate Updates
APA

Kinjal | Sciencx (2021-09-01T13:56:49+00:00) Linux make install command. Retrieved from https://www.scien.cx/2021/09/01/linux-make-install-command/

MLA
" » Linux make install command." Kinjal | Sciencx - Wednesday September 1, 2021, https://www.scien.cx/2021/09/01/linux-make-install-command/
HARVARD
Kinjal | Sciencx Wednesday September 1, 2021 » Linux make install command., viewed ,<https://www.scien.cx/2021/09/01/linux-make-install-command/>
VANCOUVER
Kinjal | Sciencx - » Linux make install command. [Internet]. [Accessed ]. Available from: https://www.scien.cx/2021/09/01/linux-make-install-command/
CHICAGO
" » Linux make install command." Kinjal | Sciencx - Accessed . https://www.scien.cx/2021/09/01/linux-make-install-command/
IEEE
" » Linux make install command." Kinjal | Sciencx [Online]. Available: https://www.scien.cx/2021/09/01/linux-make-install-command/. [Accessed: ]
rf:citation
» Linux make install command | Kinjal | Sciencx | https://www.scien.cx/2021/09/01/linux-make-install-command/ |

Please log in to upload a file.




There are no updates yet.
Click the Upload button above to add an update.

You must be logged in to translate posts. Please log in or register.