rendered paste body#!/bin/sh#Script untuk otomatisasi pembuatan repository lokal#Pembuat: Mochamad Taufan Rezzafri (taufan.rezzafri@yahoo.co.id)#Lisensi : GPL#Terdiri dari 5 bagian yaitu :# 1. Eksekusi apt-move -d `lsb_release -sc` update# 2. Pembuatan Directory tree yang belum dibuat secara otomatis pada langkah pertama# 3. Pembuatan file Release# 4. Pembuatan File info (berguna bila repository ditempatkan pada media CD/DVD)# 5. Memberikan "tandatangan" pada file Release dan pembuatan file Public.key#http://rezzafri.wordpress.com/2010/06/07/pembuatan-repository-local-ubuntu-dengan-apt-move/RELEASE=`lsb_release -sc`LOCALDIR=`grep 'LOCALDIR' /etc/apt-move.conf | sed 's/[A-Z]\+=//'`if [ ! -d $LOCALDIR ];then mkdir -v -p $LOCALDIRficd $LOCALDIRecho "1) Executing \"apt-move -d $RELEASE update\" :"if apt-move -d $RELEASE update > "log-`date +%Y-%m-%d`" then echo "Succesfully Done!!" else echo "Failed moving to repository" exit $?fiechoecho "2) Creating APT repository tree :"for f in `ls $PWD/pool/`do if mkdir -p $PWD/dists/$RELEASE/$f/binary-i386 then echo "\tDirectory: \"dists/$RELEASE/$f/binary-i386\" created" else echo "\tFailed creating directory" fidoneechoecho "3) Creating Packages file :"for f in `ls $PWD/pool/`do apt-ftparchive packages pool/$f/ > dists/$RELEASE/$f/binary-i386/Packages cat dists/$RELEASE/$f/binary-i386/Packages | gzip -9c > dists/$RELEASE/$f/binary-i386/Packages.gz echo "\tdists/$RELEASE/$f/binary-i386/Packages created" echo "\tdists/$RELEASE/$f/binary-i386/Packages.gz created"doneechoecho "4) Create Release File :"COMPONENT=`ls $PWD/pool/ | tr '\n' ' '| sed 's/[ ]*$//'`OUTFILE=`mktemp`(cat << EOFAPT::FTPArchive::Release {Origin "APT-Move";Label "APT-Move";Suite "$RELEASE";Codename "$RELEASE";Architectures "i386";Components "$COMPONENT";Description "Ubuntu Updates CD";};EOF) > $OUTFILEif [ -f $OUTFILE ] then rm -f dists/$RELEASE/{Release,Release.gpg} apt-ftparchive -c $OUTFILE release dists/$RELEASE/ > Release wait mv Release dists/$RELEASE/Release echo "\tRelease file created" echo if [ -f dists/$RELEASE/Release ] then echo "5) Signing Release file" gpg -bao dists/$RELEASE/Release.gpg dists/$RELEASE/Release wait echo "Release file signed" fifiechoecho "6) Create info file"rm -rf .diskmkdir .diskecho Ubuntu-Extras `date +%Y-%m-%d` > .disk/infoecho "CD INFO: \"Ubuntu-Extras `date +%Y-%m-%d`\""echoecho "7) Create Public keys"PUBLIC_KEY=Public.key(cat << EOFBefore using this CDROM, do the following command on terminal :\$ cd /path/to/cdrom/\$ sudo apt-key add $PUBLIC_KEY\$ sudo apt-cdrom addEOF) > README.TXTwhile [ "$name" = "" ]; do read -p "What is your name or key ID (that you use in your PGP)? " namedoneif `gpg --export -a "$name" > $PUBLIC_KEY`; then echo "$PUBLIC_KEY created"else echo "failed to create $PUBLIC_KEY" exit $?firm -f $OUTFILEecho "Creating Local Repository, Done!!"exit 0