apt-crossFri 20 Jun 2008 07:05:46 BSTRelease: 0.13.2APT-CROSSapt-cross1APT-CROSS1apt-crossapt-crossapt-crossapt support for cross compiling librariesapt-cross-a--arch ARCH-S--suite SUITE-m--mirror MIRROR-f--force-g|--get PACKAGE ...apt-cross-a--arch ARCH-S--suite SUITE-m--mirror MIRROR-f--force-x--exclude PACKAGE-b|--build PACKAGE ...apt-cross-a--arch ARCH-S--suite SUITE-m--mirror MIRROR-x--exclude PACKAGE-k--keep-temp-n--simulate-i|--install PACKAGE ...apt-cross-a--arch ARCH--remove|--purge|-r PACKAGE ...apt-cross-a--arch ARCH-S--suite SUITE-m--mirror MIRROR-s|--show PACKAGE ...apt-cross-a--arch ARCH-S--suite SUITE-m--mirror MIRROR-l|--listapt-cross-a--arch ARCH-S--suite SUITE-m--mirror MIRROR-u|--updateapt-cross-a--arch ARCH-S--suite SUITE-m--mirror MIRROR--clean-listsapt-cross-a--arch ARCH-S--suite SUITE-m--mirror MIRROR-c|--checkapt-cross-?-h--help--versionDESCRIPTIONapt-cross provides apt functionality for getting,
building and installing libraries and header files for cross-compiling using
dpkg-cross. apt-cross
will search for and download missing dependencies of the
requested package before building and installing the requested package and
dependencies using dpkg-cross and
dpkg -i (sudo required).
apt-cross is intended to make it easier to locate,
download, install and update cross-built libraries, directly from the
Debian archives.
apt-cross is not intended to handle applications
or Architecture: all packages
like foo-common or libfoo-common.
apt-cross can download the cross-compiling
version of those packages but does not build or install them - this can be done
with dpkg-cross
and dpkg if necessary. Note that
not all such packages can be installed in that way.
Architecture-independent packages do not need to be converted, so
apt-cross omits all such packages from the dependency
calculations and ensures that dpkg-cross also drops
these packages from the dependencies of the generated package. One
exception is that apt-cross will process
development packages (-dev) that are Architecture: all.
By default, apt-cross uses /etc/apt/sources.list
and /etc/apt/sources.list.d/* to find the latest
debian package file for the architecture specified (default is
the dpkg-cross default) and in the suite
specified (default is unstable). Alternatively, specify a different
mirror. Downloaded files can be passed directly to dpkg-cross using
the or commands to apt-cross. If the
local file is missing or out of date, a new one will be downloaded automatically.
If the apt-cross cache for the specified suite and
architecture is older than 24hours, it will be updated automatically. If the
cache needs to be updated more frequently or if the cache becomes corrupted,
use |.
APT-CROSS AND CROSS-COMPILERSapt-cross does have limitations and cannot replicate
all behaviour associated with apt itself. In particular,
apt-cross cannot provide, build, install or download
a cross-compiler. Certain parts of the process to build a cross-compiling
toolchain do require apt-cross but you must obtain
a suitable set of packages from somewhere else or build the toolchain yourself.
See the emdebian-tools package for assistance with
cross-compilers and cross-building toolchains.
COMMANDS| <packages...>Retrieve the architecture-specific package(s) from the Debian
mirrors into the current directory. If the package has already been
downloaded, apt-cross will skip the download
unless is used.
| <packages...>Retrieve the architecture-specific package(s) from the Debian
mirrors into the current directory and pass
to dpkg-cross to build a cross-built version.
'Architecture: all' dependencies of the requested package are added to
the list of dependencies to be excluded from the cross package using
dpkg-cross .
will always replace any existing cross package
file in the same directory. Use only to ensure that
apt-cross gets a fresh package prior to conversion.
Dependencies of the requested package are not processed recursively
so the cross package may be uninstallable without other cross packages,
see for that functionality.
| <packages...>Retrieve the architecture-specific package(s) from the Debian
mirrors into the current directory. Check for dependencies that are
suitable for dpkg-cross, download each dependency
and build, then install the package and dependencies
using dpkg-cross and dpkg -i.
If successfully installed, the temporary downloaded archives are removed.
Requires working sudo setup and will prompt for the
sudo password if necessary (if sudo is not already cached).||
<packages...>
Remove the cross-built package by calling dpkg.
Requires working sudo setup and will prompt for the
sudo password if necessary (if sudo is not already cached).
| <packages...>Show the package information for the cross-built packages specified.
If the package name does not end in -$arch-cross, the correct suffix will
be added. The output format is the same as the equivalent
apt-cache show output and includes the dependencies
of the cross-built package. Note that only the details of
cross-built packages (in the repository or installed) are displayed.
|List all cross-built package names.
(Similar to apt-cache pkgnames).
|Force the user-specific apt-cross cache
to be updated. Note that all sources for this suite on the specified
architecture will be erased before the package cache is updated.
If /etc/apt/sources.list or
/etc/apt/sources.list.d/* does not contain a
source for this suite, the updated cache for this suite will be
empty. Use | to specify
a source to be added to whatever sources are available for this
suite in /etc/apt/sources.list and
/etc/apt/sources.list.d/*.
Force the user-specific apt-cross package
list files to be updated. apt-cross turns off the normal
apt default of cleaning up the package lists automatically because
apt has a habit of removing the package lists for non-native
architectures during the automated clean.
This makes it impossible to maintain two sets of package lists
from different architectures, requiring a complete update every time
the cache switches architecture.Turning the option off, however, can lead to clutter and
confusing errors from libcache-apt-perl so this command removes all
package list files from the apt-cross directory for the specified
or default suite, then runs force_update.
|Check if the user-specific apt-cross cache
needs to be updated and update if necessary.
OPTIONS| ARCHset architecture (default: defined in
the ~/.dpkg-cross/cross-compile
configuration file or by the dpkg-cross debconf configuration.)| SUITESet the Debian suite (stable, testing, unstable [default]).
Only apt sources that already list this suite name in your
apt sources lists will be updated. The suite specified must
already be in your existing apt sources unless
is also used (in which case the
specified mirror must support the requested suite or apt
will return errors).
| MIRRORset the Debian mirror to use to retrieve packages
instead of the default of using your existing apt sources.
|As from apt-cross v0.1.2,
architecture-independent dependencies are NOT
processed. apt-cross also passes options to
dpkg-cross to ensure that the cross package omits the
same dependencies.
If there are additional packages that need to be omitted, this option allows
individual packages (e.g. perl-base) to be added to the list.
The option is typically used to drop dependencies on packages that are
not required within a cross-build environment, e.g. packages containing only
executables or architecture independent files.
|Requires -i. Halts the install
operation at the point where the dependencies have been calculated
and apt-cross prints a summary message indicating
how many packages need to be installed as new and how many as upgrades.
|Requires -i. Retains the
.deb archives downloaded for conversion by dpkg-cross
for use in later builds. Normally, these foreign architecture .deb archives
are removed after a successful installation. This option is provided
mainly for use in a chroot or other situation where the archives need
to be copied into the local cache. apt-cross will
check /var/cache/apt/archives/ before trying to
download another copy so a chroot process can copy the archives into
the chroot apt cache to prevent repeat downloads. Note that
apt-cross downloads the archives into the current
working directory; if this is a package source directory, consider
changing to a temporary directory before starting apt-crossfoo
or arrange for the chroot process to move the files into the local
apt cache before starting the build. (empdebuild
from emdebian-tools does this for you.)
|apt-cross will normally skip downloads
and rebuilds of cross packages already installed at the latest
available version. Use to override this
behaviour. In mode,
simply downloads another version of the ARCH package. In
mode, downloads
a fresh ARCH package and rebuilds the cross version, overwriting
a cross package in the same directory.
|be verbose - repeat once for extra verbosity.
Repeat twice to see comprehensive debug information.|be quiet. (default)|||Print usage and version information and exit.USE IN A CHROOTIt is common for a chroot to not provide a Sources URL for apt. This causes
problems for apt-cross and when preparing a chroot to
use apt-cross a deb-src line will need
to be added to whichever sources.list the chroot can use.
BUGSapt-cross supports various levels of verbose output
and can be useful in identifying problems. When preparing
bug reports, it is often useful to use the debug level of verbose output
using and redirecting the output to a file.
Proxiesapt-cross uses apt for
the majority of the downloads, then uses the LWP
perl module for the file download. Therefore, all proxy support needs
to be configured to support these tools - apt-cross
does not interact with any proxy (or any other network service)
directly.
The precise configuration of any specific proxy is beyond the
scope of this manpage but it is important that the correct environment
variable is used for the type of apt source being
used. If the apt source uses the
prefix, the http_proxy variable must be set.
(This is case-sensitive.) If the apt source
uses the prefix, the ftp_proxy
environment variable must be set. (This is also case-sensitive).
It does not appear to matter which prefix is used for the proxy
itself.
Futureapt-cross has
a very limited future. It is a tool
for a particular stage in the process of making Debian cross-building
friendly and as such it serves as a means to an end.As more dpkg-cross code migrates into
dpkg-dev, apt-cross will
become less important. Simultaneously, making apt cross-build
friendly will become easier. The ultimate aim is therefore to aim for
apt to replace apt-cross
in a coordinated migration with dpkg-cross and
dpkg.
Eventually, when the core dpkg-cross functionality
is merged into dpkg, apt-cross will
be removed from Debian and the relevant versions of dpkg
and apt will Replace: and Conflict: with
dpkg-cross and apt-cross
respectively.Anyone looking at the apt-cross source code needs to be aware that
any improvements will only have a limited lifespan.
FILES~/.apt-cross/Collection of directories and cache files for each suite (unstable, testing,
stable etc.).~/.apt-cross/sources.*Sources list for each suite.SEE ALSOdpkg-cross (1), emdebian-tools (1)
and http://www.emdebian.org/.
AUTHORapt-cross
was written by Neil Williams <codehelp@debian.org>.
This manual page was written by
Neil Williams <codehelp@debian.org>COPYRIGHTThis program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.