Man Linux: Main Page and Category List


       apt-grip - extend Emdebian Grip to add Debian packages on-the-fly


        $ sudo apt-grip foo bar baz

        $ sudo apt-grip -M foo bar baz

        $ sudo apt-grip --clean-cache


       Emdebian Grip has a limited number of packages in the main repository,
       principally to reduce the size of the apt cache data. On occassion,
       individual packages from standard Debian need to be added to a single
       machine running Emdebian Grip. apt-grip has been written with that
       purpose in mind.

       apt-grip requires DEB_VENDOR support in dpkg to determine how the
       package should be "gripped". The default Vendor is "emdebian-grip" but
       note the next section on the limitations of apt-grip if you plan to use
       it on an unmodified Debian system.

       The usual case is that the system has already been upgraded to Emdebian
       Grip before apt-grip is used.

       Contact the mailing list for requests
       to add packages to Emdebian Grip repositories directly.

       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.

       If the device running Grip has insufficient space to download and
       process the package(s), run apt-grip on a different machine of the same
       architecture using both the "--build-only" and "--keep-cache" options.
       The processed archives will be in /var/lib/apt-grip/archives/ and can
       be copied from there onto the device directly or by including the
       packages into a locally accessible repository. Once installed on the
       Grip device use "apt-grip -c" on the build machine to clear the cache.
       As it would be pointless allowing "--build-only" if "--keep-cache" is
       not also set, "--keep-cache" is implied when "--build-only" is set.

       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 "apt-grip", 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 as in emgrip)
       will list those packages as "local or obsolete" in package managers.
       Converted packages cannot be upgraded without repeating the call to
       "apt-grip" because "apt-get" does not know about the temporary mirror
       that "apt-grip" used to download 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 seek addition of such packages to the repository
       you use for your main apt sources. (Use the emdebian-grip-server
       package to create your own repository.)

       "Gripping" a package means making a new version (with the em1 version
       suffix) with less files in the new package. See emgrip (1) for detailed
       information on that process. Changing the version string means that
       some dependencies need to be changed - particularly strict
       dependencies. This means that apt-grip could fail with some
       combinations of packages.

       "apt-grip" uses the "--reinstall" option to apt-get to cope with some
       of these situations.

Strict dependency issues

       If a source package builds multiple binary packages, where at least one
       package has a strict dependency on one of the other binary packages and
       one of those binary packages is already installed from Debian, it will
       be necessary to install Grip versions of both the binary packages
       involved so that the strict dependency can be satisfied.

        Source: foo

        Package: foo
        Depends: bar (= 0.0.1)

        Package: bar

        $ sudo apt-grip foo bar

       In the example above, foo_0.0.1_amd64.deb will become
       foo_0.0.1em1_amd64.deb and will be given a strict dependency on "bar (=
       0.0.1em1)" by emgrip.

Default mirror

       apt-grip uses "" as the default Debian
       mirror. Use the -M|--mirrror option to change it.

Upgrading to Grip

       Change your sources list from debian mirrors to the emdebian grip

       e.g. for unstable:

        deb unstable main

       (Emdebian Grip only supports Debian suites: unstable, sid, testing,
       squeeze, stable, lenny.)

       Then update and upgrade:

        $ sudo apt-get update
        $ sudo apt-get upgrade
        $ sudo apt-get dist-upgrade

       (Note that apt-get will usually report the ability to free several
       hundred megabytes on your system when some of your Debian packages are
       upgraded to Emdebian Grip.)

Emdebian Baked

       apt-grip has been extended to help generate packages for use with
       Emdebian Baked. This has meant adding foreign architecture support as
       well as support for ignoring the status of currently installed packages
       on the device running apt-grip.

       The difficult part of this process is managing updated packages and
       changed dependencies. apt-grip can only help with Debian stable.

       emdebian-grip has not been backported to Lenny, so your development
       machine must be running Debian Squeeze or Sid (testing or unstable) to
       develop a Baked root filesystem based on Lenny.

Example apt-grip command for Baked

        $ sudo apt-grip -a mipsel -V emdebian-baked -S stable dash snmpd

       Baked packages will then exist in /var/lib/apt-grip/output/, including
       all dependencies of the specified packages. These can then be included
       into an existing reprepro repository:

        $ reprepro includedeb stable /var/lib/apt-grip/output/*.deb

       If your repository is to support more than one architecture, ensure
       that you remove or ignore the Architecture: all packages which have
       already been processed by apt-grip:

        $ sudo rm /var/lib/apt-grip/output*_all.deb

       Then use the -A option to reprepro to only include the added

        $ reprepro -A armel includedeb stable /var/lib/apt-grip/output/*_armel.deb

       For more information, see the emdebian website: