.\" Automatically generated by Pod::Man 2.25 (Pod::Simple 3.16) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .ie \nF \{\ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . nr % 0 . rr F .\} .el \{\ . de IX .. .\} .\" ======================================================================== .\" .IX Title "APT-GRIP 1" .TH APT-GRIP 1 "2013-05-06" "perl v5.14.2" "User Contributed Perl Documentation" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" apt\-grip \- extend Emdebian Grip to add Debian packages on\-the\-fly .SH "Synopsis" .IX Header "Synopsis" .Vb 1 \& $ sudo apt\-grip foo bar baz \& \& $ sudo apt\-grip \-M http://ftp.fr.debian.org/debian/ foo bar baz \& \& $ sudo apt\-grip \-\-clean\-cache .Ve .SH "Description" .IX Header "Description" 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. \fIapt-grip\fR has been written with that purpose in mind. .PP \&\fIapt-grip\fR requires \s-1DEB_VENDOR\s0 support in dpkg to determine how the package should be \f(CW\*(C`gripped\*(C'\fR. The default Vendor is \f(CW\*(C`emdebian\-grip\*(C'\fR but note the next section on the limitations of apt-grip if you plan to use it on an unmodified Debian system. .PP The usual case is that the system has already been upgraded to Emdebian Grip before \fIapt-grip\fR is used. .PP Contact the debian\-embedded@lists.debian.org mailing list for requests to add packages to Emdebian Grip repositories directly. .PP 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 \f(CW\*(C`\-\-keep\-cache\*(C'\fR option for each run and use the \&\f(CW\*(C`\-\-clean\-cache\*(C'\fR option at the end. .PP If the device running Grip has insufficient space to download and process the package(s), run apt-grip on a different machine of the using the \f(CW\*(C`\-\-build\-only\*(C'\fR and \f(CW\*(C`\-\-arch\*(C'\fR options. .PP The processed archives will be in \fI/var/lib/apt\-grip/output/\fR 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 \f(CW\*(C`apt\-grip \-c\*(C'\fR on the build machine to clear the cache. \f(CW\*(C`\-\-keep\-cache\*(C'\fR is implied when \f(CW\*(C`\-\-build\-only\*(C'\fR is set. .PP 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 \f(CW\*(C`apt\-grip\*(C'\fR, that package will need to be added to the list explicitly. .SH "Limitations" .IX Header "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 \*(L"local or obsolete\*(R" in package managers. Converted packages cannot be upgraded without repeating the call to \&\f(CW\*(C`apt\-grip\*(C'\fR because \f(CW\*(C`apt\-get\*(C'\fR does not know about the temporary mirror that \f(CW\*(C`apt\-grip\*(C'\fR 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 \f(CW\*(C`apt\*(C'\fR will try to remove these local packages in order to proceed with the main system upgrade. .PP The best option is to seek addition of such packages to the repository you use for your main apt sources. (Use the \fIemdebian-grip-server\fR package to create your own repository.) .PP \&\f(CW\*(C`Gripping\*(C'\fR 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 \fIapt-grip\fR could fail with some combinations of packages. .PP \&\f(CW\*(C`apt\-grip\*(C'\fR uses the \f(CW\*(C`\-\-reinstall\*(C'\fR option to \fIapt-get\fR to cope with some of these situations. .SH "Strict dependency issues" .IX Header "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. .PP .Vb 1 \& Source: foo \& \& Package: foo \& Depends: bar (= 0.0.1) \& \& Package: bar \& \& $ sudo apt\-grip foo bar .Ve .PP In the example above, \fIfoo_0.0.1_amd64.deb\fR will become \&\fIfoo_0.0.1em1_amd64.deb\fR and will be given a strict dependency on \&\f(CW\*(C`bar (= 0.0.1em1)\*(C'\fR by \fIemgrip\fR. .SH "Default mirror" .IX Header "Default mirror" \&\fIapt-grip\fR uses \f(CW\*(C`http://ftp.uk.debian.org/debian/\*(C'\fR as the default Debian mirror. Use the \-M|\-\-mirrror option to change it. .SH "SecureApt" .IX Header "SecureApt" Use the \f(CW\*(C`\-\-no\-auth\*(C'\fR option to allow the use of unauthenticated repositories. Note that this disables authentication against all available repositories. .SH "Upgrading to Grip" .IX Header "Upgrading to Grip" Change your sources list from debian mirrors to the emdebian grip mirror. .PP e.g. for unstable: .PP .Vb 1 \& deb http://www.emdebian.org/grip/ unstable main .Ve .PP (Emdebian Grip only supports Debian suites: unstable, sid, testing, squeeze, stable, lenny, lenny-proposed-updates.) .PP Then update and upgrade: .PP .Vb 4 \& $ sudo apt\-get update \& $ sudo apt\-get clean \& $ sudo apt\-get upgrade \& $ sudo apt\-get dist\-upgrade .Ve .PP (Note that \fIapt-get\fR will usually report the ability to free several hundred megabytes on your system when some of your Debian packages are upgraded to Emdebian Grip but you still need enough room to actually download and unpack the new packages.) Use \f(CW\*(C`apt\-get clean\*(C'\fR after the upgrade to recover more free space. .SH "Grip components" .IX Header "Grip components" Grip divides the archive further by creating new areas of the archive for packages related to development, debugging, documentation or java, again to reduce the final size of the cached package data on the system. If you want to use \f(CW\*(C`apt\-grip\*(C'\fR on your Emdebian Grip system, ensure that you add the \fIdev\fR component to your apt sources: .PP .Vb 1 \& deb http://www.emdebian.org/grip/ unstable main dev .Ve .PP Similarly for \fIdoc\fR, \fIdebug\fR and \fIjava\fR. Other components may be added from time to time, so check the Emdebian website: .PP .Vb 1 \& http://www.emdebian.org/grip/search.php .Ve .PP Add more components as required: .PP .Vb 1 \& deb http://www.emdebian.org/grip/ unstable main dev debug java .Ve .SH "Emdebian Baked" .IX Header "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. .PP The difficult part of this process is managing updated packages and changed dependencies. apt-grip can only help with Debian stable. .PP 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. .SH "Example apt-grip command for Baked" .IX Header "Example apt-grip command for Baked" .Vb 1 \& $ sudo apt\-grip \-a mipsel \-V emdebian\-baked \-S stable dash snmpd .Ve .PP 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: .PP .Vb 1 \& $ reprepro includedeb stable /var/lib/apt\-grip/output/*.deb .Ve .PP 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: .PP .Vb 1 \& $ sudo rm /var/lib/apt\-grip/output*_all.deb .Ve .PP Then use the \-A option to reprepro to only include the added architecture: .PP .Vb 1 \& $ reprepro \-A armel includedeb stable /var/lib/apt\-grip/output/*_armel.deb .Ve .PP For more information, see the emdebian website: http://www.emdebian.org/baked/