---
name: "alien"
section: "1"
platform: "linux"
package: "alien"
version: "6.54"
release: "Debian 2.2 (Potato)"
platforms: ["linux"]
url: "https://new.carta.tech/alien"
---

# alien(1)

Convert or install an alien binary package

## 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** \[**...**\]\
 **alien** --to-slp \[**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** and then in **/usr/lib/alien/patches/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.

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 Stampede .slp 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

- *file \[...\]*

  The list of files to convert.

- *-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.

- *--to-slp*

  The output will be a stampede slp 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.

- *--nopatch*

  Do not use any patch files.

- *--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 have 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 has been extensively rewritten and is now maintained by Joey Hess.\
 \<joeyh@debian.org\>
