EDIT: As of Aug 18, 2010 (23248), the required changes are now in svn and in the latest snapshot dvds. The DVDs do still require an internet connection to install as some packages and add-ons cannot be distributed on the DVD and must be downloaded at install time.
I've always noticed that the DVD install doesn't actually use any of the files that are stored on the DVD. And a statement on the forum (
http://forum.linuxmce.org/index.php?topic=10393.msg71401#msg71401) made me think about it for a day. Even though all the required .debs are available on the local hard drive during the installation none of them were being used. The DVD installer goes to the internet and re-downloads all the .debs which are on the DVD (which you have already downloaded).
I spent some time investigating and the problem is three-fold: 1) The repository order in sources.list determines fetch-priority and the local repo is added after the internet repos on the dvd installer. 2) Trusted repositories seem to be favored over untrusted repositories with the same priority, the local repository is un-signed and untrusted by apt (go figure... ;-]) 3) Priority should be default and identical to internet repos (500) - posde has already done this - yay!
Through testing yesterday and today I've built a script which fixes the first two issues and allows the installer to use all of the .debs from the LinuxMCE install DVD which are on the hard drive. I have tested this with snapshot dvds 22898 and 23036 and they work great for me. It should work for any of the snapshot installs.
What it does: The script moves the local file repository to the top of the sources.list. Generates a 1024bit RSA key and signs the Release file of the local repository. Adds the key to apt so the repository is trusted. Updates your package lists from the repositories in sources.list
Note: The script works for me, I hope it works for you. YMMV.
The script should be run as root immediately following the kubuntu install process but before you click on the LinuxMCE install icon on the desktop.
1. Download (
http://linuxmce.iptp.org/snapshots/) and burn the dvd
2. Insert the DVD into your Core/Hybrid machine and turn it on
2. Choosing the 'Install LinuxMCE..' method
3. Once the desktop appears open a terminal (K->Applications->System->Terminal) and become root (sudo su -)
4. Download and Run the script (hmm, attaching to the post isn't working, so I've embedded it)
5. Click the LinuxMCE install icon and enter your password, only new packages which are not on the dvd will download.
I will put the patches together to submit this to svn in the proper scripts but... There is a little more glue that needs to be applied to make /usr/pluto/bin/Diskless_CreateTBZ trust the repo (and therefor all MDs) and and to keep the deb-cache and packages list updated and the Release file signed so apt will continue to trust the local repo as it is updated.
I am leaving for 2wks at the cottage (no internet) tomorrow so it will have to wait 'till I get back. Until then... I thought I would share what I have so far.
J.
The script: trust-local-repo.sh
#!/bin/sh
cd ~
echo **Fix the sources.list file order
echo ****Remove the local and LinuxMCE repo
sed -e '/deb-cache/d' -e '/deb.linuxmce.org/d' -i /etc/apt/sources.list
echo ****Re-add the local and LinuxMCE repo to the top of sources.list
sed -e '1ideb file:\/usr\/pluto\/deb-cache .\/\ndeb http:\/\/deb.linuxmce.org\/ubuntu\/ intrepid beta2' -i /etc/apt/sources.list
echo **Begin rsa key creation
echo ****Create the auto gen file
cat >repo-key <<EOF
%echo Generating RSA key for local repo
Key-Type: RSA
Key-Length: 1024
Name-Real: LinuxMCE
Name-Comment: deb-cache repository
Name-Email: me@here.com
Expire-Date: 0
%commit
%echo done
EOF
echo ****Generate the key
gpg --batch --gen-key repo-key
echo ****Export the public key to a file 'local-repo-pub-key'
gpg --output local-repo-pub-key --armor --export $(gpg --list-keys | awk '/LinuxMCE/{print x}; {x=substr($2,7,8)}')
echo ****Add the key to aptitude
apt-key add local-repo-pub-key
echo **Update the Packages File and generate Release and Release.gpg
echo ****Update the Packages
cd /usr/pluto/deb-cache
dpkg-scanpackages . /dev/null > Packages
gzip -9c Packages > Packages.gz
echo ****Generate the 'Release' file
cat >Release <<EOF
Archive: intrepid
Origin: Ubuntu
Label: Local Repository
Architecture: i386
EOF
printf 'MD5Sum: '$(md5sum Packages | cut --delimiter=' ' --fields=1)' %16d Packages\n' \
$(wc --bytes Packages | cut --delimiter=' ' --fields=1) >> Release
printf ' '$(md5sum Packages.gz | cut --delimiter=' ' --fields=1)' %16d Packages.gz' \
$(wc --bytes Packages.gz | cut --delimiter=' ' --fields=1) >> Release
echo ****Generate the 'Release.gpg' file
gpg --yes --armor --detach-sign --output Release.gpg Release
echo **Update the package lists
apt-get update
echo **Repository is ready for use.