alien(1L)

NAME
alien - Convert or install an alien binary package

SYNOPSIS
alien [--to-deb] [--patch=file] [options] file
alien --to-rpm [options] file
alien --to-tgz [options] file

DESCRIPTION
To build Debian packages, alien is simply called with a parameter giving the name of the alien package to be converted. A look up will then be done in /var/lib/alien/packagename*.diff.gz . If such a diff exists then the alien package is unpacked and the patch is applied to debianize the package. If there is no such diff then alien will attempt to automatically debianize the package. After this, alien will build the debian binary package, and it will be saved to the current directory.

To build Red Hat packages, alien must be called with the --to-rpm parameter, and the name of the alien package to be converted. Alien will then generate a spec file, and call rpm to build the package. Note that rpm will by default place the new package under /usr/src/redhat/ .

This tool probably needs to be run as superuser. Make sure that there is enough room in the current directory since alien will build the package in that location.

ALIEN PACKAGE FORMATS
Alien can input and output packages in the Red Hat .rpm format, the Debian .deb format, the Slackware .tgz format and the generic .tar.gz format.

For converting from and to .rpm format the Red Hat Package Manager must be installed (See rpm (8) ).

For converting to (but not from) .deb format, the gcc, make, debmake, dpkg-dev, and dpkg packages must be installed.

Note that for the .tar.gz format, alien will simply generate a .deb or .rpm package that has the same files in it as are in the tar file. This only works well if the tar file has precompiled binaries in it in a standard linux directory tree. Do NOT run alien on tar files with source code in them, unless you want this source code to be installed in your root directory when you install the package!

OPTIONS

-d, --to-deb
    The output package will be a debian package. This is the default.

-r, --to-rpm
    The output package will be a rpm package.

-t, --to-tgz
    The output will be a slackware tgz package.

-i, --install
    Automatically install the output package, and remove the package file after it has been installed.

-g, --generate
    Generate a temporary directory suitable for building a package from, but do not actually create the package. This is useful if you want to move files around in the package before building it. The package can be built from this temporary directory by running "debian/rules binary", if you were creating a Debian package, or by running "rpm -bb <packagename>.spec" if you were creating a Red Hat package.

-s, --single
    Like -g, but do not generate the packagename.orig directory. This is only useful when you are very low on disk space and are generating a debian package.

--patch=patch
    Specify the patch to be used instead of automatically looking the patch up in /var/lib/alien/ . This is only allowed with --to-deb.

--description=desc
    Specifiy a description for the package. This can only be used when converting from slackware tgz packages, which lack descriptions. If it is not used when converting from slackware tgz packages, a generic description is used.

-c, --scripts
    Try to convert the scripts that are meant to be run when the package is installed and removed. Use this with caution, becuase these scripts might be designed to work on a system unlike your own, and could cause problems. It is reccommended that you examine the scripts by hand and check to see what they do before using this option.

-k, --keep-version
    By default, alien adds one to the minor version number. If this option is given, alien will not do this.

-h, --help
    Display a short usage summary.

EXAMPLES
Here are some examples of the use of alien:

alien --to-deb package.rpm
    Convert the package.rpm into a package.deb

alien --to-rpm package.deb
    Convert the package.deb into a package.rpm

alien -i package.rpm
    Convert the package.rpm into a package.deb (converting to a .deb package is default, so you need not specify --to-deb), and install the generated package.

ENVIRONMENT
Alien recognizes the following environemnt variables:

RPMBUILDOPT
    Options to pass to rpm when it is building a package.

RPMINSTALLOPT
    Options to pass to rpm when it is installing a package.

LIMITATIONS
When running alien on a tar file, all files in /etc in are assumed to be configuration files.

Alien does not account for differences in configuration between different linux distributions. So don't use it to replace something essential like sysvinit. You could destroy your system by doing so. In general, if you can't uninstall the package without breaking your system, don't try to replace it with an alien version.

If alien is not run as root, the files in the generated package will hve incorrect owners and permissions.

AUTHOR
Alien was written by Christoph Lameter.
<clameter@debian.org>

Deb to rpm conversion code was taken from the Martian program by Randolph Chung.
<rc42@cornell.edu>

Alien is now maintained by Joey Hess.
<joeyh@master.debian.org>