Dokumen Ubuntu Semarang [staff] Ubuntu Semarang di Kominfo
Jul 11

Mirror repository ubuntu sangat dibutuhkan sekali oleh bangsa kita, dan tidak disadari pula telah banyak yang membuat repository untuk keperluan jaringan lokal. Permasalahan yang muncul adalah kesetaraan isi repository milik kita dengan server repository yang lain. ketidaksesuain ini dapat menyebabkan kesalahan update paket2 yang bersangkutan lho!

Bagaimana caranya agar server repository kita dapat singkron dengan Server mirror lain? jawabanya.. kita dapat menggunakan debmirror, rsync atau apt-mirror. dalam kesempatan kali ini saya akan mengajak kita semua untuk membuat mirror ubuntu di server milik kita sendiri. ada pun kelengkapan yang harus dimiliki adalah:

0. Koneksi Internet

1. Bandwidth yang lumayan

2. Freespace di hardisk yang banyak (usahakan 60GB)

baiklah, berikut adalah step by stepnya:

0. buat direktory mirror, saya menggunakan direktory /home/mirror

$ sudo mkdir /home/mirror && cd /home/mirror

1. Install Debmirror

$ sudo apt-get install debmirror

2. Buat direktory mirror untuk ubuntu

$ sudo mkdir ubuntu

3. silakan kopi dan salin skript di lampiran untuk proses mirroring, dan namakan dengan mirror.ubuntu.sh dan simpan di /home/mirror/mirror.ubuntu.sh

4. ubah permisi untuk berkas tersebut

$ sudo chmod +x mirror.ubuntu.sh

5. silakan tunggu karena mirror anda sedang dibangun

6. Install webserver, anda dapat menggunakan apache2 atau lighttpd

$ sudo apt-get install apache2 # jika anda menggunakan apache

$ sudo apt-get install lighttpd # jika anda menggunakan lighttpd

7. Buat link untuk pengaksesan web agar supaya mirror kita dapat diakses dari luar

$ sudo ln -s /home/mirror/ubuntu /va/www/ubuntu

8. singkronkan selalu dengan server repository, dapat menggunakan anacron untuk melakukanya

$ sudo crontab -e

isikan dengan * 5,22,10,15 * * * cd /home/ftp && /home/mirror/mirror.ubuntu.sh

simpan dan repository akan di cek pada jam 5, 10, 15 dan 22

Selesai, mudah bukan?

Lanpiran:

#!/bin/bash
# created by Mahyuddin Susanto
# please give this file exsecution mode
# sudo chmod +x this_file.sh
# i asumsed you run this file at /home/mirror/
# type $ man debmirror for more information about debmirror 

MIR=/usr/bin/debmirror
if test -e  $MIR;
	then
	# this is most important :p
	echo "Debian/Ubuntu scanning packages for own repository"
	echo "Created by Mahyuddin Susanto aka udienz@ubuntu.com"
	echo "Use Your Own Risk"
else
	echo "Currently, package dependency is not installed on your system, please install first"
	echo "using apt-get install debmirror"
	exit 1
fi

# Server, lets declare your target server, you can add your nearest ubuntu mirror like jp.archive.ubuntu.com
SERVER=archive.ubuntu.com

# tellme where root server have ubuntu mirror, you can insert like: ubuntu, pub/ubuntu depends your server
# example: ubuntu mirror at foss-id like http://dl2.foss-id.web.id/ubuntu of course you can type ROOT=ubuntu
ROOT=ubuntu

# What's your method to use mirroring? you can use http, ftp, hftp, rsync method
METHOD=http

# let's discuss about release ubuntu, ubuntu have code name release like wathy, breezy, dapper, edgy, feisty, gutsy, hardy, intrepid
# in this case you can mirroring release ubuntu more than one release, or you can mirroring update package, security package, proposed package
# ex: $release-security so you can type hardy,hardy-updates,hardy-security,hardy-backports,hardy-proposed
RELEASE=hardy,hardy-updates,hardy-security,hardy-backports,hardy-proposed,intrepid,intrepid-updates,intrepid-security,intrepid-backports,intrepid-proposed

# section, hm... no more information here :D
# ubuntu section is main, restricted, universe, multiverse
# but you can add more section like debian-installer on the section
SECTION=main,restricted,universe,multiverse,main/debian-installer,restricted/debian-installer,universe/debian-installer,multiverse/debian-installer

# architecture... hm.. what architecture fo you want to mirroring? i386 (32bit), amd64 (64bit, include IA64), sparc or powerpc?
ARCHITECTURE=i386,amd64 #just it?

# okey next you must save mirror file to your directory, but you must declare on here. i save my mirror at /media/mirror/ubuntu
TARGET=ubuntu

if test -d $`pwd`/ubuntu;
	then EXISTS="yes"
else
	echo "it seems you don't have ubuntu directory, create first!"
	exit 1
fi

# hmm.... do you cannocted under proxy? if yes you must add --proxy=http://you-name:your_passwd@url:port
#TMPFILE=`mktemp -t mirror.surat`
#exec > "$TMPFILE"
#echo "From: \"DebMirror Ubuntu\" "
#echo "To: isikan yang akan menerima"
#echo "Cc: hadinux@gmail.com,udienz@ubuntu.com"
#echo "Subject: Minta perhatian penggunaan benwit"
#echo ""
#echo "Assalamualaikum"
#echo ""
#echo "Mohon perhatian, server sedang melakukan proses mirror repository ubuntu"
#echo "untuk itu mohon kesediaanya untuk memberi benwit pada server agar cepet selesai mirrornya"
#echo "atas perhatian dan kerjasamanya kami ucapkan terimakasih"
#echo ""
#echo `date`
#echo "wassalam"
#echo ""
#echo "Mirror dengan: $METHOD/$SERVER/$ROOT/$DISTRO $SECTION"
#echo "Untuk arsitektur $ARCHITECTURE"
#echo "Versi: $VERSION"
#echo ""
#echo "--++ DebMirror ++--"
#echo ""
#echo "---------------------------------------------------------"
#cat $CHANGES_FILE
#exec
#/usr/sbin/sendmail -t -i < $TMPFILE
#rm -f $TMPFILE

debmirror -m --passive \
		--host=$SERVER \
		--root=$ROOT \
		--method=$METHOD \
		--progress \
		--dist=$DISTRO \
		--section=$SECTION \
		--arch=$ARCHITECTURE \
		$TARGET \
		--nosource
		--getcontents

# if you want to mirroring both of binary package and source you can delete --nosource, i'm not this option because my disk is limiitted.
# and if you don't want to remove previous repositories you can add --nocleanup option
# if you get error messages about gpg files maybe you forget to add gpg ubuntu archive as trusted keys :D
# gpg --keyring /usr/share/keyrings/ubuntu-archive-keyring.gpg --export | gpg --no-default-keyring --keyring trustedkeys.gpg --import
# note: remember your free space and bandwidth :D 

Created By: Mahyuddin Susanto
email = udienz@ubuntu.com
blog = http://udienz.immteknik.org

4 Responses to “Membuat mirror repository sendiri”

  1. Atha Says:

    Saya mencoba tapi koq muncul gini ya?

    “Debian/Ubuntu scanning packages for own repository
    Created by Mahyuddin Susanto aka udienz@ubuntu.com
    Use Your Own Risk
    it seems you don’t have ubuntu directory, create first!”

    Apa masalahnya. Padahal saya sudah buat subfolder ubuntu dalam folder /home/mirror.

  2. rotyyu Says:

    @Atha
    Di dalam direktori /home/mirror harus dibuat direktori lagi, namanya ubuntu jadi lengkapnya /home/mirror/ubuntu gitu deh…
    CMIIW

    Bravo PENGUIN!!

  3. rantarou Says:

    manteb, jd bandwidth yg ada bisa di alokasikan untuk yg laen :D

  4. zaenal Says:

    mas ainul memang hebat, salut !

Leave a Reply

*
To prove you're a person (not a spam script), type the security word shown in the picture. Click on the picture to hear an audio file of the word.
Click to hear an audio file of the anti-spam word