Installing the application means that you have a set of installation screens that ask for data from the user, such as the installation location, the specific configuration of the project, etc., and then after entering the data, you create the installation directory and copy the set of files there and run some code to configure your application.
Now this is what you need to do, then there are several open source installation developers who do the job. One of my favorites is InstallJammer. Functionally, it is similar to Installshield (a well-known commercial builder) and supports most of its functions.
It supports all the functions necessary to create an installer. In addition, it supports most of the flavors and windows of unix / linux.
source