Debian DVD’lerinden local depo oluşturulması
EEE PC siparişi vermem üzerine, netsiz kaldığım durumlarda Debian sıkıntısı çekmeke için Debian DVD kalıplarını indirdim. Mağlum, EEE PC üzerinde bir optik sürücü bulunmamakta. DVD’leri local depo olarak kullanabileceğim bir script hazırladım. Script, depo layoutunu oluşturduktan sonra, mount ettiği yollardaki deb paketlerini bu yeni depoya linkliyor.
Script içerisinde yer alan $IMAGESPATH, $MNTPATH ve $REPOPATH değişkenlerini kendinize göre düzenleyin. Unutmayın ki depoyu kullanmadan önce, MNTPATH içerisinde oluşan 1, 2, 3, 4, 5 dizinlerine imagelarınızı mount etmelisiniz. Script hiç bir hata vermeden çıkarsa deponuz oluşturulmuş demektir.
Script i386 DVD kalıplarına IMAGESPATH içerisinde bakmaktadır.
Deponuzu oluşturduktan sonra /etc/apt/sources.list e şu şekilde ekledikten sonra kullanabilirsiniz:
deb file:///opt/myrepo/debian lenny main contrib
Script:
#!/bin/bash # This is a local repository builder from debian DVD images # It's working for Debian 500 lenny # Copyright (C) 2009 Onur Aslan # Licensed under GPLv3 or later IMAGESPATH=/mnt/archive/Tools/dists/debian/debian-500 MNTPATH=/mnt/debian-images REPOPATH=/opt/myrepo if [ `id -u` -ne 0 ]; then echo You must be root for this operation. exit 1 fi # Making directories mkdir -p $MNTPATH mkdir -p $REPOPATH # Creating repository layout mkdir -p $REPOPATH/dists/lenny/main/binary-i386 mkdir -p $REPOPATH/dists/lenny/contrib/binary-i386 mkdir -p $REPOPATH/pool ln -s $REPOPATH $REPOPATH/debian for i in `seq 1 5`; do # Cheking images if [ ! -f $IMAGESPATH/debian-500-i386-DVD-$i.iso ]; then echo $IMAGESPATH/debian-500-i386-DVD-$i.iso not exists. Exiting. exit 2 fi # mounting images mkdir -p $MNTPATH/$i mount -o loop $IMAGESPATH/debian-500-i386-DVD-$i.iso $MNTPATH/$i if [ $? -ne 0 ]; then echo Error mounting image $i exit 3 fi # Creating directories in pool cd $MNTPATH/$i find pool/ -type d -exec mkdir -p $REPOPATH/{} \; # Creating symbolic packages sybolic links find pool/ -type f -name '*.deb' -exec ln -s $MNTPATH/$i/{} $REPOPATH/{} \; cat $MNTPATH/$i/dists/lenny/main/binary-i386/Packages >> \ $REPOPATH/dists/lenny/main/binary-i386/Packages cat $MNTPATH/$i/dists/lenny/contrib/binary-i386/Packages >> \ $REPOPATH/dists/lenny/contrib/binary-i386/Packages cp $MNTPATH/$i/dists/lenny/main/binary-i386/Release \ $REPOPATH/dists/lenny/main/binary-i386/Release cp $MNTPATH/$i/dists/lenny/contrib/binary-i386/Release \ $REPOPATH/dists/lenny/contrib/binary-i386/Release done gzip -c $REPOPATH/dists/lenny/main/binary-i386/Packages > \ $REPOPATH/dists/lenny/main/binary-i386/Packages.gz gzip -c $REPOPATH/dists/lenny/contrib/binary-i386/Packages > \ $REPOPATH/dists/lenny/contrib/binary-i386/Packages.gz cd $REPOPATH/dists/lenny SUMS=`apt-ftparchive release .` cat > Release << EOF Origin: Debian Label: Debian Suite: stable Version: 5.0 Codename: lenny Architectures: i386 Components: main contrib Description: Debian 5.0 Released 14 February 2009 $SUMS EOF