Is it correct that most of Unix&Linux software supports x-copy deployment? If I download the installation package and uncompress the files into a particular directory - would that be enough to start using that software?
That is true for binary builds of packages. Typically:
.rpmfor Red Hat based distros
.debfor Ubuntu/Debian based distros
- sometimes .tar.gz files (only if they're binary builds)
Often when you download a
.tar.bz2, etc. these are source distributions, so will need to be configured and compiled. Once they go through these steps they're often meant to be run from a specific directory such as
They can be moved around but then the
$LD_LIBRARY_PATH will need to by dynamically changed to reflect their new locations so that any shared libraries they depend on can be found.
.rpm provide source packages in a binary form, so that you can build a custom binary package more easily. These packages are typically named something like
.srpm, on Red Hat based distros, and their is tooling to assist in building these into
.rpm packages more easily. There is something similar on Ubuntu/Debian as well.
The normal way to deploy a program is a package tailored for each distribution: rpm format for Red Hat and CentOS and SuSE and others, deb format for Debian and Ubuntu and Mint and others, etc.
In addition to providing the files, such packages provide many other services, such as:
- Record where the package is installed and track versions and updates.
- Ensure that dependencies (e.g. libraries needed by programs) are present.
- Track which files belong to which package.
- Register and if applicable compile plugins, modules, libraries, etc.
- Register documentation in documentation indices.
- Register menu entries for interactive software.
- Register startup scripts for daemons.
- Register file types for applications provided in the package that can edit or view files.
Basic archives such as
.tar.gz work too, but they provide none of these services, so you need to do all of this manually. They're good enough to run most programs manually (if you took care of installing their dependencies) but no more.