xapt - convert Debian packages to cross versions on-the-fly
$ sudo xapt foo bar baz
$ sudo xapt -M http://ftp.fr.debian.org/debian/ foo bar baz
$ sudo xapt --clean-cache
Downloading the Packages files can take a reasonable amount of time, so
to grip a number of packages, either specify all packages in one
command or use the "--keep-cache" option for each run and use the
"--clean-cache" option at the end.
Note also that, in common with the rest of Emdebian processing,
Install-Recommends is always turned off, so if you need a package that
is only recommended by packages in the list given to "xapt", that
package will need to be added to the list explicitly.
Installing any package from repositories outside the normal apt sources
(especially if those packages are subsequently modified by dpkg-cross)
will list those packages as "local or obsolete" in package managers.
Converted packages cannot be upgraded without repeating the call to
"xapt" because "apt-get" does not know about the renaming of the
package by "dpkg-cross" when downloading the packages. This can cause
problems if dependencies of such packages need to be upgraded. It is
possible that the main system "apt" will try to remove these local
packages in order to proceed with the main system upgrade.
The best option is to use "xapt" inside a disposable chroot.
Checking existing cross packages
"xapt", by default, will not check to see if a particular cross package
is already installed at a newer or equal version which can cause cross
packages to be downgraded. To turn on this check, either use the
"--check-newer" option or set "checknewer" to true in the vendor
configuration file in /etc/xapt.d/.
If your apt sources include a repository which does not use SecureApt,
disable authentication in the vendor configuration file in /etc/xapt.d/
By default <dpkg-cross> does nothing with packages from Debian which
already support Multi-Arch - the package is simply copied to the
current work directory, if it does not already exist. Any package
containing a Multi-Arch: field in DEBIAN/control is skipped in this
"xapt" uses the --multiarch option can pass the --convert-multiarch
option down to dpkg-cross to instead force the generation of a
-<arch>-cross package with the files moved into the conventional dpkg-
"xapt" will check for dpkg-cross version 2.6.3 or higher when this
option is set and report an error (unsetting the option) if a suitable
version is not found.
If you are using apt sources which specify an arch option, the
architecture list will need to include the architecture you wish to use
with "xapt". If you have dpkg (>= 1.16.2) installed, then you need to
ensure that the requested architecture is listed in your foreign dpkg
architectures and that you have at least one mirror which can provide
packages of that architecture.
-c|--clean-cache: Remove any downloaded cache files and exit.
-b|--build-only: Get and process the packages, do not install
-M|--mirror: A Debian mirror with the requested package(s)
-S|--suite: Which suite to use for the package(s)
-k|--keep-cache: Preserve the downloaded cache files to use
-a|--arch ARCHITECTURE: Specify the architecture to download or
--ignore-status: Ignore currently installed packages (native)
--check-newer: Check if the same or newer version of the
package is installed and skip installation.
-m|--multiarch: Convert Multi-Arch packages to old dpkg-cross
paths. Requires dpkg-cross (>= %s)
xapt tidies up after itself by removing all temporary data and packages
after installation, unless the --keep-cache option is used. (Converted
packages are not preserved.)
The archives will be downloaded into /var/lib/xapt/archives/ before
being converted with dpkg-cross and installed using dpkg. Using
"--build-only" implies "--keep-cache". Converted packages are created