AptMoveHowto
|
Size: 2121
Comment: I always screw up markup
|
Size: 4469
Comment:
|
| Deletions are marked like this. | Additions are marked like this. |
| Line 3: | Line 3: |
| For example, I will show how to make a cd which contains the edubuntu-desktop package with all of it's dependancies. | For example, I will show how to make a cd which contains all the security updates that has been downloaded. |
| Line 5: | Line 5: |
| The user of the cd will not need to use the command-line. | Except for adding new apt PGP keys, the user of the cd will not need to use the command-line to use it. |
| Line 7: | Line 7: |
| = Step one Install the apt-move package = | = Step 1: Install the apt-move package = |
| Line 9: | Line 9: |
| Apt-move is a tool for creating a debian package repository file structure out of packages that have been downloaded to /var/cache/apt/archives. Installed packages are downloded there by apt for installation. Apt-move will create this local repository in /mirrors/debian, by default. | |
| Line 13: | Line 14: |
| (Or just use synaptic) | (Or just use synaptic) You need to enable the universe repository. See AddingRepositoriesHowto |
| Line 17: | Line 18: |
| Line 19: | Line 19: |
| CONTENTS=no | COPYONLY=no |
| Line 23: | Line 23: |
| CONTENTS=yes | COPYONLY=yes |
| Line 25: | Line 25: |
| So that a file with the contents of the packages will be created. | So that apt-move doesn't delete file from your /var/cache/apt/archives/. |
| Line 27: | Line 27: |
| = Step two Download the packages you want to put on the cd = | |
| Line 29: | Line 28: |
| In this example, we are starting from a freshly-installed system. We need to clean out the cache of packages in /var/cache/apt/archive. If you have already installed other packages, be sure that you leave them there so that they are put on your custom cd. | = Step 2: Select the packages you want to put on the cd = |
| Line 31: | Line 30: |
| So, delete every package in /var/cache/apt/archives | In this example, we only want to put freshly downloaded packages. We don't want to put old packages or packages that exist in Ubuntu CD. |
| Line 33: | Line 32: |
| {{{sudo rm /var/cache/apt/archives/*.deb | First, we clean up the /var/cache/apt/archives from old packages. {{{ sudo apt-get autoclean |
| Line 36: | Line 37: |
| And then install (or just download the edubuntu-desktop packages) |
Next, we delete packages that exists in the Ubuntu CD. Put your Ubuntu CD on CD-ROM Drive, mount it (if it not automatically mounted) then run the following: |
| Line 39: | Line 39: |
| sudo apt-get -d install edubuntu-desktop | for f in `find /media/cdrom/pool/ -name '*.deb' -printf %f\\n` do if [ -f /var/cache/apt/archives/$f ]; then sudo rm -v /var/cache/apt/archives/$f fi done |
| Line 42: | Line 47: |
| This will put the packages in /var/cache/apt/archives. Apt-move will look there by default. = Step three Run apt move to create the archive structure = |
= Step 3: Run apt move to create the archive structure = |
| Line 48: | Line 51: |
{{{sudo apt-move get sudo apt-move move sudo apt-move packages |
Because /mirrors/debian is root owned we must become root to make the steps easier. {{{ sudo -s |
| Line 54: | Line 56: |
| = Step four Burn the cd = | All the following command run as root. First we clean-up previous mirrors (if exists) then we run apt-move. |
| Line 56: | Line 59: |
| {{{ rm -rf /mirrors/debian apt-move -d breezy update }}} |
|
| Line 57: | Line 64: |
| Copy the folders contained in /mirrors/debian to a cd. | Because ubuntu repository structure, not all packages are inserted into the Packages.gz file by apt-move. We must remake Packages.gz with the help of apt-ftparchive. |
| Line 59: | Line 66: |
| On a non-networked ubuntu machine, you can run synaptic, insert the cd and Go into Synaptic -> Edit -> Add Cdrom and it will ask you to pick a name for this cd. Enter it and it will add the contents of the cd to your repositories. | {{{ cd /mirrors/debian apt-ftparchive packages pool/main/ \ | gzip -9c > dists/breezy/main/binary-i386/Packages.gz apt-ftparchive packages pool/restricted/ \ | gzip -9c > dists/breezy/restricted/binary-i386/Packages.gz }}} We must also remake Release file, to do this we must make an apt configuration file named ~/myapt.conf it contents is like this {{{ APT::FTPArchive::Release { Origin "APT-Move"; Label "APT-Move"; Suite "breezy"; Codename "breezy"; Architectures "i386"; Components "main restricted"; Description "Ubuntu Updates CD"; }; }}} Next, run the following commands: {{{ rm dists/breezy/Release apt-ftparchive -c ~/myapt.conf release dists/breezy/ > Release mv Release dists/breezy/Release }}} Then we need to make Release.gpg, to make it you must already have your ["GPGKey"] set and ready to sign. {{{ gpg -bao dists/breezy/Release.gpg dists/breezy/Release }}} Next, we delete unwanted .apt-move directory {{{ rm -rf .apt-move }}} You can identify the cd by making a .disk directory and making an info file in it. {{{ mkdir .disk echo Ubuntu-Updates `date +%Y-%m-%d` > .disk/info }}} Then we need to put our public keys in it. {{{ gpg --export -a "Your Name" > public.key }}} Offcourse change Your Name with the name that you use in your PGP. Thats' all {{{ exit }}} = Step 4: Burn the cd = Copy the contents of what is contained in /mirrors/debian to a cd. For example you could make an iso by following command: {{{ mkisofs -r -A "Ubuntu Updates `date +%Y%m%d`" -o ubuntu-updates.iso \ /mirrors/debian }}} Before you could use the CD, you need to add our GPG key to apt GPG keys. Put the CD on CD-ROM Drive, mount it (if it not automatically mounted) then run the following: {{{ apt-key add /cdrom/public.key }}} Then you could use the CD like any other Ubuntu CD. On a non-networked ubuntu machine, you can run synaptic, insert the cd and go into Synaptic -> Edit -> Add Cdrom and it will add the contents of the cd to your repositories. |
| Line 64: | Line 148: |
| sudo apt-cdrom add}}} | sudo apt-cdrom add }}} |
| Line 66: | Line 151: |
| ** To DO: * Add an override file so that you can use pinning on the offline repository packages. * Properly name the cd before you burn it so that the user does not have to do it. |
CategoryDocumentation |
This page will describe how to make a cd which contains packages you have downloaded on one machine using apt or synaptic. The cd will be a repository that you can easily use on another machine using synaptic or apt-cdrom.
For example, I will show how to make a cd which contains all the security updates that has been downloaded.
Except for adding new apt PGP keys, the user of the cd will not need to use the command-line to use it.
Step 1: Install the apt-move package
Apt-move is a tool for creating a debian package repository file structure out of packages that have been downloaded to /var/cache/apt/archives. Installed packages are downloded there by apt for installation. Apt-move will create this local repository in /mirrors/debian, by default.
sudo apt-get install apt-move
(Or just use synaptic) You need to enable the universe repository. See AddingRepositoriesHowto
I change the setting in /etc/apt-move.conf from
COPYONLY=no
to
COPYONLY=yes
So that apt-move doesn't delete file from your /var/cache/apt/archives/.
Step 2: Select the packages you want to put on the cd
In this example, we only want to put freshly downloaded packages. We don't want to put old packages or packages that exist in Ubuntu CD.
First, we clean up the /var/cache/apt/archives from old packages.
sudo apt-get autoclean
Next, we delete packages that exists in the Ubuntu CD. Put your Ubuntu CD on CD-ROM Drive, mount it (if it not automatically mounted) then run the following:
for f in `find /media/cdrom/pool/ -name '*.deb' -printf %f\\n`
do
if [ -f /var/cache/apt/archives/$f ]; then
sudo rm -v /var/cache/apt/archives/$f
fi
done
Step 3: Run apt move to create the archive structure
Make sure you have enough disk space first.
Because /mirrors/debian is root owned we must become root to make the steps easier.
sudo -s
All the following command run as root. First we clean-up previous mirrors (if exists) then we run apt-move.
rm -rf /mirrors/debian apt-move -d breezy update
Because ubuntu repository structure, not all packages are inserted into the Packages.gz file by apt-move. We must remake Packages.gz with the help of apt-ftparchive.
cd /mirrors/debian apt-ftparchive packages pool/main/ \ | gzip -9c > dists/breezy/main/binary-i386/Packages.gz apt-ftparchive packages pool/restricted/ \ | gzip -9c > dists/breezy/restricted/binary-i386/Packages.gz
We must also remake Release file, to do this we must make an apt configuration file named ~/myapt.conf it contents is like this
APT::FTPArchive::Release {
Origin "APT-Move";
Label "APT-Move";
Suite "breezy";
Codename "breezy";
Architectures "i386";
Components "main restricted";
Description "Ubuntu Updates CD";
};Next, run the following commands:
rm dists/breezy/Release apt-ftparchive -c ~/myapt.conf release dists/breezy/ > Release mv Release dists/breezy/Release
Then we need to make Release.gpg, to make it you must already have your ["GPGKey"] set and ready to sign.
gpg -bao dists/breezy/Release.gpg dists/breezy/Release
Next, we delete unwanted .apt-move directory
rm -rf .apt-move
You can identify the cd by making a .disk directory and making an info file in it.
mkdir .disk echo Ubuntu-Updates `date +%Y-%m-%d` > .disk/info
Then we need to put our public keys in it.
gpg --export -a "Your Name" > public.key
Offcourse change Your Name with the name that you use in your PGP.
Thats' all
exit
Step 4: Burn the cd
Copy the contents of what is contained in /mirrors/debian to a cd.
For example you could make an iso by following command:
mkisofs -r -A "Ubuntu Updates `date +%Y%m%d`" -o ubuntu-updates.iso \ /mirrors/debian
Before you could use the CD, you need to add our GPG key to apt GPG keys. Put the CD on CD-ROM Drive, mount it (if it not automatically mounted) then run the following:
apt-key add /cdrom/public.key
Then you could use the CD like any other Ubuntu CD. On a non-networked ubuntu machine, you can run synaptic, insert the cd and go into Synaptic -> Edit -> Add Cdrom and it will add the contents of the cd to your repositories.
You can also do it from the command-line with
sudo apt-cdrom add
AptMoveHowto (last edited 2008-08-06 16:19:39 by localhost)