[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

apt-grip



The next release of emdebian-grip is going to include a prototype
script - apt-grip, extending Emdebian Grip to add Debian packages
on-the-fly.

Synopsis
        $ sudo apt-grip -M http://ftp.fr.debian.org/debian/ foo bar baz

Description

       apt-grip requires DEB_VENDOR support in dpkg to determine how
the package should be "gripped". In addition, if the default vendor is
not Emdebian, "apt-grip" will do nothing. To set this up, change the
default symlink in /etc/dpkg/origins to point to emdebian-grip or set
DEB_VENDOR for each call to apt-grip. Before you do this, read the next
section on the limitations.

       The usual case is that the system has already been upgraded to
Emdebian Grip before apt-grip is used, but the vendor support will
still need an update (or apt-grip can be wrapped in a shell script or
maybe an alias).

Limitations
       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 and such packages cannot be upgraded without repeating the
call to "apt-grip".

       "apt-grip" cannot currently track these packages - although it
might become possible in the future.

       The net result is that using "apt-grip" could make it difficult
to upgrade the rest of the system. If "apt-get" complains about broken
dependencies (or more commonly, simply removes your extra packages) use
"apt-grip" to reinstall or upgrade the relevant packages.

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

================

There's a little more in the manpage.

Note that apt-grip (unlike apt-cross) absolutely requires root access
for all operations, so it's in /usr/sbin/ and you'll be using sudo in
the same way as apt-get.

The process is basically to keep the *architecture* the same, read the
same apt and dpkg data to determine what is already installed and then
use apt in download-only mode. (As ever, with Recommends turned off.)

apt then sorts out the dependencies (because the arch is the same and
because we're running from /usr/sbin/ so it has the right data) and
proceeds to download the packages to a temporary directory
(*not* /var/cache/apt/archives). Those packages are then "gripped" -
which can cause problems with strict dependencies, as documented in the
manpage. Finally, the gripped packages are installed and the temporary
archives and package data is cleaned up.

Unlike apt, apt-grip doesn't have any extra functionality, it doesn't
have install, purge, remove, clean, show, search or policy support. It
just gets, grips and gives - to dpkg for the installation.

Code is currently in SVN, it will be in the emdebian-grip package. (So
that it will be available on machines actually running Emdebian Grip
once the automated processes catch up with the release.)

One way around the limitations of this method is, of course, to use the
emdebian-grip-server package to implement your own repository that
provides all the packages you need that Grip doesn't yet include.

Personally, I think this is how Grip should most easily develop. The
main, core, server will need to concentrate on the main, core,
packages. Adding whole new desktop environments and specialised tasks
or package sets is best done with a separate repository. Other changes
across Debian are likely to make this easier. apt is more than capable
of mixing together disparate repositories and allowing users to choose
2 from 6 or 7 repositories makes for a larger space saving than
putting all 7 into 1.

Volunteers are welcome to use emdebian-grip-server to create public
repositories for specific purposes.

-- 


Neil Williams
=============
http://www.data-freedom.org/
http://www.linux.codehelp.co.uk/
http://e-mail.is-not-s.ms/

Attachment: pgpPH4NGkXCid.pgp
Description: PGP signature


Reply to: