AptMoveHowto

Revision 7 as of 2005-11-20 21:05:59

Clear message

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 the xubuntu-desktop package with all of it's dependancies.

The user of the cd will not need to use the command-line.

Step one Install the apt-move package

sudo apt-get install apt-move

(Or just use synaptic)

I change the setting in /etc/apt-move.conf from

CONTENTS=no 

to

CONTENTS=yes

So that a file with the contents of the packages will be created.

Step two Download the packages you want to put on the cd

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. If unsure about what dependancies you already have installed, perhaps this can be done from the live cd?

So, delete every package in /var/cache/apt/archives

{{{sudo rm /var/cache/apt/archives/*.deb }}}

And then install (or just download the xubuntu-desktop packages)

sudo apt-get -d install xubuntu-desktop

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

Make sure you have enough disk space first.

{{{sudo apt-move get sudo apt-move move sudo apt-move packages }}}

It would seem that some ubuntu packages are not inserted into the packages.gz file by apt-move. Is this because of some ubuntu-specific reposiitory structure? You must delete the Packages.gz file and remake it with dpkg-scanpackages. Make the directory writable and then cd into it and run:

cd /mirrors/debian/dists/stable/main/binary-i386

sudo dpkg-scanpackages ../../../../pool/ /dev/null > Packages

You can identify the cd by making a .disk directory and making an info file in it.

Make the /mirrors/debian direcory writable and do

{{{mkdir /mirrors/debian/.disk echo "Custom packages" $(hostname) $(date +%y%m%d) > /mirrors/debian/.disk/info }}}

Step four Burn the cd

Copy the contents of what is contained in /mirrors/debian to a 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

** To DO:

  • Add an override file so that you can use pinning on the offline repository packages.