Apt-move is a nifty little tool that moves (or copies) existing packages out of your cache and into a debian archive format. Apt-move creates all three elements of the archive: The various directories full of packages, the Release file, and the Packages file.
This is only a useful technique if your package cache is complete. If you have cleaned it out since your last major upgrade, then this technique may fail. It's easy to regenerate the cache, though the large download is probably what you were trying to avoid!
1) Prepare the local mirror. For this example, let's use 6.0 (squeeze):
Create a place to host the mirror
# mkdir /var/local/mirrors
Install the apt-move package.
# apt-get install apt-move
Edit the configuration file:
# nano /etc/apt-move.conf
LOCALDIR=/var/local/mirrors
DIST=squeeze
COPYONLY=yes
Create the mirror
# apt-move updateYou can see the mirror in /var/local/mirrors2) Use the new mirror to debootstrap a new chroot environment
Create the new environment
# mkdir /var/new-env
Debootstrap from the local mirror
# debootstrap squeeze /var/new-env file:///var/local/mirrors
Environment complete, ready to chroot into.3) If debootstrap fails, it's probably due to a file missing from the cache. There are two ways to regenerate.
The hard way is to work error by error:
1) Run debootstrap, and identifying the missing file from the error message.
2) Use
dpkg -S filename to identify the package name.3) Use
apt-get --reinstall install packagename to add it to the package cache.4) Use
apt-move update to move the package to the mirror.5) Run debootstrap again.
The easy way is to use debootstrap to recreate all the missing files, and copy them into the cache:
# mkdir /tmp/cache # debootstrap --arch=i386 --download-only squeeze /tmp/cache # mv /tmp/cache/var/cache/apt/archives/* /var/cache/apt/ # rm -rf /tmp/cache # apt-move update
No comments:
Post a Comment