Sunday, April 15, 2012

Melakukan Instalasi Subversion pada Linux (Fedora/Centos)

Subversion atau yang biasa disingkat dengan nama SVN merupakan salah satu Source Code Management (SCM) Tool yang umum digunakan dalam dunia pengembangan perangkat lunak. fungsi dari scm itu sendiri adalah sebagai revision control pada sebuah source code (walaupun sebenarnya scm tidak terbatas hanya untuk source code saja). dengan menggunakan svn, kita dapat melakukan collaborative coding dengan mudah. Oiya, beberapa scm tool lain yang (menurut saya) umum digunakan dalam proses software development antara lain adalah: CVS dan Mercurial (Hg).

Ok! langsung to the point aja ya.. sekarang saya akan berbagi tentang bagaimana melakukan instalasi Subversion (SVN) pada sistem operasi Fedora/Centos Linux. Berikut ini adalah langkah-demi langkah yang harus dilakukan dalam melakukan instalasi SVN di Fedora / Centos (saya belum tahu di RedHat caranya sama atau engga).

1. Instal Apache (HTTPD)
Sebelum melakukan instalasi svn, kita harus melakukan instalasi apache terlebih dahulu. lho, kenapa? aplikasi apache dibutuhkan agar repository svn yang kita buat dapat diakses melalui web (http protocol). untuk dapat melakukan instalasi Apache, lakukan hal berikut ini:

[salman@salmandev ~]$ su
Password: 
[root@salmandev salman]# yum install httpd

Setelah selesai mengetikkan perintah di atas, maka selanjutnya kita tinggal menunggu sampai proses download dan instalasi selesai.



2. Instal Subversion dan mod_dav_svn
Setelah selesai melakukan instalasi apache, sekarang kita membutuhkan modul tambahan untuk apache agar dapat menerima request subversion. modul tambahan yang harus kita install adalah mod_dav_svn. modul inilah yang nantinya akan membantu kita memperoses setiap request dari svn. untuk dapat menginstall svn dan mod_dav_svn, lakukan hal berikut ini:

[root@salmandev salman]# yum install mod_dav_svn subversion

3. Memodifikasi subversion config file
Setelah mod_dav_svn telah terinstal, berikutnya kita akan memodifikasi config file subversion agar sesuai dengan kebutuhan kita. lokasi filenya ada di: /etc/httpd/conf.d/subversion.conf

LoadModule dav_svn_module     modules/mod_dav_svn.so
LoadModule authz_svn_module   modules/mod_authz_svn.so
 
<Location /svn>
   DAV svn
   SVNParentPath /var/www/svn
   AuthType Basic
   AuthName "Repository Subversion"
   AuthUserFile /etc/svn-auth-users
   Require valid-user
</Location>

ok saya akan menjelaskan beberapa bagian penting pada konfigurasi di atas:

  • SVNParenPath merupakan tempat dimana kita akan menyimpan seluruh repository source code kita. path yang digunakan pada SVNParentPath tidak boleh sama dengan DocumentRoot yang digunakan oleh Apache (HTTPD). Untuk sistem operasi Centos/Linux/RedHat, DocumentRoot default yang digunakan oleh Apache adalah /var/www/html. oleh karena itu, kita harus memberikan alamat SVNParentPath yang berbeda dengan alamat pada DocumentRoot Apache. Untuk dapat melihat path DocumentRoot yang digunakan oleh apache, silahkan buka /etc/httpd/conf/httpd.conf.
  • AuthType berisikan metode autentifikasi yang akan digunakan oleh Subverssion dalam hal ini kita menggunakan basic authentication method dengan menggunakan username dan password yang dibuat sendiri.
  • AuthUserFile merupakan file yang berisikan username dan password subversion. nah, setiap kali kita membuat account baru untuk svn, kita akan meletakkannya pada file ini. begitu juga ketika melakukan login, svn akan merefer seluruh data account pada file yang satu ini.
  • Require valid-user memberitahukan kepada svn bahwa kita tidak mengizinkan adanya anonymous user yang masuk ke dalam system svn.
4. Membuat user baru untuk SVN
Langkah berikutnya setelah kita selesai melakukan perubahan pada file konfigurasi svn, kita akan membuat account untuk setiap user yang akan menggunakan svn. hal yang harus dilakukan untuk membuat account pada svn adalah sebagai berikut:

## membuat account dengan username "salman" ##
htpasswd -cm /etc/svn-auth-users salman
New password: 
Re-type new password: 
Adding password for user salman

## membuat account dengan username "fulan" ##
htpasswd -m /etc/svn-auth-users salman
New password: 
Re-type new password: 
Adding password for user fulan

Dengan mengetikkan perintah di atas, kita telah selesai membuat 2 buah account dengan nama salman dan fulan. perintah htpasswd merupakan perintah yang digunakan untuk membuat account dengan metode basic authentication yaitu dengan cara menyimpan informasi username dan password user ke dalam sebuah file sederhana (flat file). berikut ini adalah daftar parameter yang dapat digunakan pada saat mengetikkan perintah htpasswd:

htpasswd [ -c ] [ -m ] [ -D ] passwdfile username

parameter:
-c = create password file (digunakan apabil file yg digunakan htpasswd belum ada. 
dalam kasus ini adalah /etc/svn-auth-users).
 
-m = melakukan enckripsi pada password dengan menggunakan algoritma MD5
-D = delete user

catatan: passwdfile yang dibuat harus sama dengan yang didefinisikan pada file konfigurasi svn

5. Membuat Repository
Setelah kita berhasil membuat account baru untuk svn user, selanjutnya kita akan membuat repository baru pada svn. repository inilah yang nantinya akan digunakan untuk menyimpan source code kita. untuk dapat membuat repository baru, ketikkan perintah berikut ini:


## membuat svn parent directory ##
[root@salmandev salman]# mkdir /var/www/svn
[root@salmandev salman]# cd /var/www/svn/

## membuat repository baru bernama "myrepo" ##
[root@salmandev svn]# svnadmin create myrepo

## mengubah owner folder myrepo dari root menjadi apache ##
## hal ini dilakukan agar apache dapat melakukan operasi write repository ##
[root@salmandev svn]# chown -R apache.apache myrepo

Dengan mengetikkan perintah di atas, kita telah berhasil membuat sebuah repository baru yang bernama "myrepo". berikutnya kita akan melakukan restart pada Apache kita dengan mengetikkan perintah:

[root@salmandev salman]# /etc/init.d/httpd restart
Restarting httpd (via systemctl):                          [  OK  ]

6. Mengakses Repository Melalui Web-browser
untuk dapat mengakses repository melalui web-browser, ketikkan alamat http://localhost/svn/myrepo. Setelah mengetikkan alamat tersebut pada browser kita, berikutnya kita tinggal memasukkan username dan password yang telah kita buat sebelumnya.

Gambar 1: Login svn melalui http

Setelah berhasil melakukan proses autentifikasi, selanjutnya apache akan membawa kita masuk ke dalam folder repository yang telah kita buat sebelumnya.

Gambar 2: Berhasil mengakses repository svn

Ok! proses insalasi subversion kita telah berhasil. selamat menikmati dan semoga sukses. Jika ada pertanyaan ataupun topik yang ingin di diskusikan jangan malu-malu untuk menuliskannya di bagian komentar :)

2 comments:

  1. halo.. terimakasih atas tutorialnya.
    Saya punya pertanyaan, ini pertama kalinya saya benar2 pake linux, hehe..
    Saya sudah coba tutorialnya, dan sudah berhasil sampai ke tahap ngestart httpd nya.
    Kemudian saya coba untuk menjalankan url di browser. Tapi yg tampil seperti ini:

    Could not open the requested SVN filesystem


    Boleh tau mas itu kenapa? Trimakasih.

    ReplyDelete
  2. Kakak Salman, bahas instalasi SVN di environment yg isolated dong (gak pake yum, pake RPM ato TAR file). Soale kan server suka ga konek ke internet gitu. Hehehe

    ReplyDelete