title: Best approach to writing a generic installer for a Linux application?
body: <p>We have a Linux server application that is comprised of a number of open-source tools as well as programs we've written ourselves. Ideally we would like to be able to install this application on any common Linux distribution.</p>
  
  <p>In the past, we've written perl scripts to automate installs of this application. Unfortunately, due to idiosyncrasies of different Linux distros, the logic inside these install scripts gets horribly complex, and can change as new versions of each supported distro are released. Maintaining the installer thus becomes one of the most time-intensive parts of the project!</p>
  
  <p>I'm looking for assistance, be it a framework, documentation, code samples, that can make this process less painful. Here are the types of things our installer needs to do:</p>
  
  <ul>
  <li><p>Create user/group accounts</p></li>
  <li><p>Create directory trees with specific ownership and permissions</p></li>
  <li><p>Install open-source applications, potentially compiling them from source during install</p></li>
  <li><p>Insert pre-compiled binaries, scripts, config files, and docs into specific directories</p></li>
  <li><p>Register init-type startup and shutdown scripts</p></li>
  <li><p>Generate encryption keys</p></li>
  <li><p>Verify connectivity to a central server</p></li>
  </ul>