Apa Itu Linux???


Linux adalah Operating System seperti UNIX, yang merupakan implementasi independen dari POSIX, meliputi true-multitasking, virtual memory, shared libraries, demand-loading, proper memory management, dan multiuser.

Linux seperti layaknya UNIX, mendukung banyak software mulai dari TEX, X Window, GNU C/C++ sampai ke TCP/IP.
Linux adalah sistem operasi yang disebarkan secara luas dengan gratis di bawah lisensi GNU General Public License (GPL),
yang berarti juga source code Linux tersedia. Itulah yang membuat Linux sangat spesial.

Linux masih dikembangkan oleh kelompok-kelompok tanpa dibayar, yang banyak dijumpai di Internet, tukar-menukar kode,
melaporkan bug, dan membenahi segala masalah yang ada. Setiap orang yang tertarik dipersilahkan untuk bergabung dalam pengembangan Linux.

Linux pertama kali dibuat oleh Linus Torvalds di Universitas Helsinki, Finlandia. Kemudian Linux dikembangkan lagi dengan bantuan dari
banyak programmer dan jagoan UNIX di Internet. Sekarang Linux bisa diperoleh dari distribusi-distribusi yang umum digunakan,
misalnya RedHat, Debian, Slackware, Caldera, Stampede Linux, TurboLinux dan lain-lain. Kernel yang digunakan adalah sama-sama Linux,
sedangkan perbedaannya hanyalah paket-paket aplikasi yang disertakan, sistem penyusunan direktori, init style, dll.

Mana yang lebih baik? Semua sama baiknya, tergantung selera. Jika diperdebatkan kelebihan dan kekurangan masing-masing, tidak akan pernah ada habisnya.

Linux dulunya adalah proyek hobi yang dikerjakan oleh Linus Torvalds yang memperoleh inspirasi dari Minix. Minix adalah sistem UNIX kecil yang dikembangkan oleh Andy Tanenbaum. Linux versi 0.01 dikerjakan sekitar bulan Agustus 1991. Kemudian pada bulan Oktober 1991 tanggal 5, Linus mengumumkan versi resmi Linux, yaitu 0.02 yang hanya dapat menjalankan bash (GNU Bourne Again Shell) dan gcc (GNU C Compiler).

Sekarang Linux adalah sistem UNIX yang lengkap, bisa digunakan untuk jaringan (networking), pengembangan software, dan bahkan untuk sehari-hari. Linux sekarang merupakan alternatif OS yang jauh lebih murah jika dibandingkan dengan OS komersial, dengan kemampuan Linux yang setara bahkan lebih.

– Mengapa pakai Linux?

Lisensi

Linux, sering juga disebut GNU/Linux, adalah operating sistem yang kompatible dengan Unix, berisi kernel Linux itu sendiri dan sekumpulan lengkap alat-alat dan program-program lain, yang kebanyakan di bawah naungan proyek GNU dari Free Software Foundation.
Tampilan grafis atau Graphical User Interface (GUI) disediakan oleh X Window System beserta kumpulan libraries dan alat-alatnya.

Semua software ini bisa didapat gratis berdasarkan lisensi GNU General Public License atau lisensi-lisensi lain yang mirip dengan itu.
Berdasarkan lisensi ini, siapa pun bisa mendapatkan program baik dalam bentuk source code (bisa dibaca manusia) mau pun binary (bisa dibaca mesin), sehingga program tersebut dapat diubah, diadaptasi, mau pun dikembangkan lebih lanjut oleh siapa saja.

Karena banyak sekali program-program maupun komponen software (biasanya tergabung dalam “paket”;) yang membentuk sebuah sistem Linux yang lengkap, dan kesemuanya itu diurus oleh banyak orang dan organisasi dalam jadwal yang berbeda-beda, maka beberapa perusahaan dan organisasi mengumpulkan paket-paket tersebut menjadi satu distribusi (distro). Tapi tidak itu saja, mereka juga melakukan tes-tes terhadap software di dalamnya,
mengembangkan program-program instalasi atau yang memudahkan instalasi, sebagian ada yang memberikan technical support, dan sebagainya. Ada distribusi komersial seperti Red Hat, Caldera, SuSE, dan ada juga distribusi yang non-komersial seperti Debian GNU/Linux.
Baik distribusi komersial mau pun non-komersial tersedia tanpa dipungut biaya di internet, dan juga di media seperti
CD-ROM (anda bayar ongkos media plus ongkos kirim tentunya). Perbedaan mendasar antara komersial dan non-komersial
adalah bahwa produk komersial didukung oleh perusahaan yang menyediakan technical support, dan mungkin juga menyediakan beberapa
software komersial lain yang tidak bisa didistribusikan secara gratis. Hal ini tentunya penting di lingkungan bisnis tertentu.

Sejarah

Walaupun Linux bukanlah sistem Unix yang resmi, Linux mempunyai dasar warisan, budaya, arsitektur dan pengalaman operating sistem Unix selama 28 tahun lebih. Sejak munculnya Linux source code (tahun 1991) kernel Linux telah diteliti (review) dan disempurnakan oleh (minimal) puluhan ribu programmer di seluruh dunia. Sebagian besar program-program GNU dan X Window System telah ada lebih lama dari Linux dan telah diteliti lebih seksama.

Source code dari operating system saingan, seperti Windows 95 dan Windows NT, tidak tersedia untuk umum, sehingga tidak bisa diteliti oleh khalayak ramai. Desain dari sistem yang demikian tidak menikmati perkembangan sejarah dari sistem-sistem Unix.

Pengguna Linux

Linux diperkirakan mempunyai kurang lebih 7.500.000 pengguna, dan angka itu bertambah terus setiap harinya dengan sangat pesat.

Interaksi dengan OS lain
Linux bisa berinteraksi dengan operating sistem lain melalui tiga cara: kompatibilitas file dan filesystem, kompatibilitas network,
dan emulasi (simulasi) operating sistem.

Linux bisa menggunakan file-file dari operating sistem lain, dalam artian bisa membaca dan menulis format file tersebut. Sehingga (hard)disk
maupun disket-disket dari OS/2, NT, DOS/Windows, Apple Macintosh, Unix, dan sistem-sistem lain, bisa dibaca (dalam banyak hal juga ditulis) dengan mudah oleh Linux. Hampir semua format file standar industri didukung oleh aplikasi-aplikasi Linux, kecuali beberapa format yang spesifik vendor atau produk.
Di tingkat networking, Linux bisa bekerja sama dengan baik sekali dengan operating sistem lainnya. Linux mempunyai dukungan TCP/IP yang sangat bagus, dan juga mempunyai dukungan SMB untuk Microsoft file sharing and printing melalui paket Samba, Apple file and printer sharing lewat netatalk, dan IPX/SPX (Novell) file sharing lewat paket Mars NWE (dan paket komersial dari Caldera).

Dalam lingkungan campuran Windows/Linux, menggunakan Samba server dan sistem smbclient, komputer Linux akan tampil di Network Neighborhood dari sistem Windows, hampir tidak bisa dibedakan dengan NT. Komputer Linux juga akan mempunyai akses penuh ke file dan printer yang di-share dari WFWG, Windows 95, maupun Windows NT.

Administrasi Linux Menggunakan Webmin


Salah satu kelebihan windows dibandingkan dengan linux ialah bahwa windows di dalam mengadministrasi sistemnya menggunakan GUI atau grafik mode sehingga membuat user lebih mudah berinteraksi di dalam mengadministrasi sistem windows itu sendiri. Berbeda dengan linux. Sebagian besar user linux menggunakan text mode untuk mengadministrasi sistem di linux dibandingkan dengan grafik mode. Hal ini dikarenakan text mode lebih cepat dieksekusi dan tidak memakan resource yang banyak jika dibandingkan dengan menggunakan grafik mode. Bagi user yang terbiasa dengan text mode tentu hal ini sudah terbiasa. Namun, bagaimana dengan user-user linux yang masih pemula untuk mempelajari sistem linux? Tentunya akan membutuhkan waktu yang cukup lama untuk mempelajarinya apalagi jika user-user tersebut berasal dari user windows yang terbiasa menggunakan grafik mode dibandingkan dengan text mode. Di dalam tutorial ini, akan dibahas aplikasi webmin yang merupakan aplikasi yang digunakan untuk administrasi sistem berdasarkan web-based. Tutorial ini menggunakan Distro Linux Centos 5.3 sebagai Operating sistemnya.

II. Instalasi Paket

1. Download Paket

Download paket webmin di sini dan pilihlah aplikasi webmin yang sesuai dengan distro anda. Karena tutorial ini menggunakan distro Centos, maka penulis mendownloadnya dari sini. disarankan untuk download versi terbaru.

2. Instalasi Webmin

Karena penulis menggunakan paket rpm, maka penulis mengetikkan perintah berikut:

3. Tes Webmin

Jika webmin sudah berhasil diinstal di sistem kita, maka untuk melihat aplikasi webmin, bukalah browser dan ketikkan:

 http://alamat_ip:10000/

atau

 http://hostname:10000/

Maka akan terlihat seperti berikut:

Masukkan username dan password untuk root dan tekan tombol Login maka akan terlihat gambar seperti berikut:

Subversion (SVN)


Pengertian
Subversion adalah aplikasi untuk mengontrol versioning dokumen (version control system), yang dapat menjadi medium kolaborasi project serta mengelola dokumen project beserta segala perubahan yang terjadi atas dokumen tersebut.
Version Control adalah suatu system manajemen perubahan pada kode program, dokumen dan informasi informasi lain yg disimpan dalam bentuk file komputer, dimana biasanya digunakan untuk memudahkan user dalam mengontrol perubahan-perubahan yg terjadi pada file atau program yang sedang dikerjakan. Fungsi – fungsi dasarnya adalah sbb :
•    mencatat perubahan code yang terjadi dan pembuat perubahan
•    fungsi undo, sehingga  bisa mengembalikan kondisi program kekeadaan sebelum terjadi error
•    melihat riwayat code
•    fungsi kolaburasi yg memungkinkan penulisan code yg dikerjakan secara bersamaan dengan team lain tanpa ada resiko tertimpa nya hasil pekerjaan user A oleh user B.  Fungsi ini juga yg membuat subversion sangat cocok untuk digunakan pada proyek2 open source dimana dikerjakan secara bersama sama dan biasaya tidak mempunyai domisili yg sama.
Subversion merupakan aplikasi stand alone. Dengan kata lain SVN ini tidak memerlukan aplikasi lain. Tidak memerlukan Apache maupun aplikasi lain ketika melakukan instalasi. Apache dibutuhkan ketika SVN diakses melalui web (Protokol HTTP). Pada environment Windows, command prompt (console DOS) diperlukan untuk berbagai kebutuhan administrasi atau menejemen user, misalkan untuk membuat repository baru. Notepad, jEdit atau text editor. Manajemen user Subversion compatible dengan Apache, yakni menggunakan flat-file seperti htpasswd untuk autentikasi user. Beberapa aplikasi berbasis web untuk manajemen Subversion adalah USVN dan SVNManager.

Beberapa keunggulan dari Subversion adalah :
1.    Dapat melakukan mangement user beserta Policy-nya.
2.    Source code yang kita bangun dari awal di-record dengan baik, sehingga memudahkan, apabila terjadi kesalah dalam code atau terhapus bisa dikembalikan dengan baik.
3.    Pencocokan code pada tiap dokumen source code berdasarkan history.
4.    History account sampai history code, sehingga bisa menampilakan, siapa saja yang melakukan edit code mulai dari waktu project dibangun.
Lisensi
Subversion ini dirilis oleh CollabNet inc  dalam lisensi open source. CollabNet membuat subversion sebagai pengganti langsung dari CVS yang sudah tidak dapat mendukung model pengembangan software dewasa ini. CVS mempunyai beberapa kekurangan , antara lain :
1.    Tidak mendukung atomic commit
2.    Tidak mendukung penyimpanan file binary
3.    Tidak mendukung rename file atau folder
4.    Tidak dapat menyimpan perubahan pada file yang sudah didelete
5.    Ijin akses tidak dapat diatur per folder
Selain mengatasi kekurangan dari CVS, subversion juga mempunyai banyak keunggulan dibandingkan dengan CVS, antar lain :
1.    Dapat dijalankan dalam beberapa protokol, antara lain: HTTP, file, svn dan svn+ssh.
2.    Dapat melakukan otentikasi user melalui protokol LDAP
Pengguna
subversion sudah menjadi standard de facto version control di dunia opensource. Misalnya, situs kolaborasi terbesar di dunia sourceforge.net sudah bermigrasi ke Subversion begitu juga situs dev.java.net sudah bermigrasi ke subversion. Proyek-proyek yang menggunakan Subversion antara lain mencakup Apache Software Foundation, KDE, GNOME, GCC, Python, Samba, Mono, MediaWiki, dll. SourceForge.net juga telah menyediakan hosting Subversion untuk proyek-proyek sumber terbukanya. Selain itu, Telah banyak developer yang membuat plugin atau bundle installer yang mengintegrasikan Subversion dengan berbagai aplikasi lain, seperti Subversion untuk Desktop (terintegrasi dengan shell Windows Explorer), plugin untuk Microsoft Office dan Visual Studio.
Fitur – Fitur
Pembuatan versi direktori
Subversion mengimplementasikan sistem file berversi “virtual” yang melacak perubahan ke seluruh susunan direktori terus menerus. File dan direktori diversikan.
Komit atomis
Komit atomis adalah Komit ke repositori sepenuhnya, atau tidak sama sekali. Hal ini membolehkan para pengembang untu mengkonstruksi dan mengkomit perubahan sebagai potongan logikal.
Metadata berversi
Setiap file dan direktori mempunyai set “properti” tidak terlihat yang dilampirkan. Sehingga bisa menciptakan dan menyimpan setiap pasangan kunci/nilai yang diinginkan. Properti diversi ini bersifat terus menerus, seperti halnya isi file.
Pilihan lapisan jaringan
Subversion mempunyai pengertian abstrak dari akses repositori, membuatnya mudah bagi orang untuk mengimplementasikan mekanisme jaringan baru. Server jaringan “tingkat lanjut” Subversion adalah modul untuk server web Apache, yang berbicara varian HTTP yang disebut WebDAV/DeltaV. Ini memberikan keuntungan besar untuk Subversion dalam stabilitas dan interoperabilitas, dan menyediakan berbagai fitur kunci bebas: otentikasi, otorisasi, kompresi sambungan, dan melihat repositori, sebagai contoh. Proses server Subversion sendiri yang lebih kecil juga tersedia. Server ini menggunakan protokol bebas yang bisa dilintasi dengan mudah melalui ssh.
Penanganan data konsisten
Subversion memperlihatkan perbedaan file menggunakan algoritma pembedaan biner, yang bekerja secara identik pada file teks (bisa dibaca-manusia) dan biner (tidak bisa dibaca-manusia). Kedua tipe file disimpan secara sama dipadatkan dalam repositori, dan perbedaan dikirimkan dalam kedua arah melintasi jaringan.
Pembuatan cabang dan tag secara efisien
Subversion membuat cabang dan tag dengan cukup mengcopy proyek, sehinggan Biaya pencabangan dan tag tidak perlu proporsional pada besarnya proyek. Dengan menggunakan mekanisme mirip dengan link-kasar. Operasi ini hanya memerlukan waktu hanya sebentar, dan ruang sangat kecil dalam repositori.
Kemampuan di-hack
Subversion tidak mempunyai bagasi historis. SVN diimplementasikan sebagai kumpulan dari librari C berbagi dengan API yang didefinisikan-baik. Hal ini menjadikan Subversion bisa dipelihara secara ekstrim dan berguna bagi bahasa dan aplikasi lainnya.

 

INSTALL SVN di Linux Centos 5.5

Install module svn (untuk apache) :

[root@svn]# yum install mod_dav_svn subversion

Edit file httpd.conf :

LoadModule dav_svn_module     modules/mod_dav_svn.so
LoadModule authz_svn_module   modules/mod_authz_svn.so

Edit file subversion.conf :

<Location /batavia>
        DAV svn
        SVNPath /var/www/svn/repos
        AuthType Basic
        AuthName "Subversion repos"
        AuthUserFile /etc/svn-auth-conf
        Require valid-user
</Location>

Membuat user svn :

[root@svn]# htpasswd -cm /etc/svn-auth-conf yourusername
New password:
Re-type new password:
Adding password for user yourusername
[root@svn]# htpasswd -m /etc/svn-auth-conf anotherusername
New password:
Re-type new password:
Adding password for user anotherusername

Configure repository :

[root@svn]# cd /var/www/ -- Or wherever you placed your path above
[root@svn]# mkdir svn
[root@svn]# cd svn
[root@svn]# svnadmin create repos
[root@svn]# chown -R apache.apache repos

Penggunaan repository SVN :

[root@svn]# cd /tmp
[root@svn]# mkdir mytestproj
[root@svn]# cd mytestproj
[root@svn]# mkdir configurations options main
[root@svn]# vim configurations/testconf1.cfg -- Add whatever you want to these files.
[root@svn]# vim options/testopts1.cfg
[root@svn]# vim main/mainfile1.cfg

Import SVN :

[root@svn]# svn import /tmp/mytestproj/ file:///var/www/svn/repos/mytestproj -m "Initial repository layout for mytestproj"
Adding         /tmp/mytestproj/main
Adding         /tmp/mytestproj/main/mainfile1.cfg
Adding         /tmp/mytestproj/configurations
Adding         /tmp/mytestproj/configurations/testconf1.cfg
Adding         /tmp/mytestproj/options
Adding         /tmp/mytestproj/options/testopts1.cfg

Check out :

[root@svn]# cd /tmp
[root@svn]# svn co http://yoursvnserver/repos/mytestproj
Authentication realm: http://yoursvnserver:80; Subversion repos
Password for 'youruser':
A    mytestproj/main
A    mytestproj/main/mainfile1.cfg
A    mytestproj/configurations
A    mytestproj/configurations/testconf1.cfg
A    mytestproj/options
A    mytestproj/options/testopts1.cfg
Checked out revision 1.

Make something changes and Commit SVN :

[root@svn]# cd mytestproj
[root@svn]# vim configurations/testconf1.cfg -- Add or delete something and save.
[root@svn]# svn commit -m "Added a line to testconf1.cfg."
Sending        configurations/testconf1.cfg
Transmitting file data .
Committed revision 2.

Install SVN Notify post-commit (send automaticly email after commit)

Log into perl shell :

#perl -MCPAN -e shell

Change to the repo local :

cpan> o conf urllist push ftp://cermin.lipi.go.id/pub/CPAN/

Installation modul notify :


cpan[1]> install SVN::Notify
cpan[2]> install HTML::Entities

Download file commit-email.pl (searching by google)  and then put this file at /usr/bin, and do not forget to edit that file :

uncomment $sendmail = "/usr/sbin/sendmail";
give commentar #$smtp_server = "127.0.0.1";

Copy and paste file, change the email destinationand give comment out for (#) log-commit :

cp /var/www/svn/batavia/hooks/post-commit.tmpl /var/www/svn/batavia/hooks/post-commit

Testing :

# cd /tmp
# mkdir svntester
# cd svntester
# svn co http://192.99.99.122/svn/batavia    --> http://192.99.99.122/svn/batavia adalah alamat repo svn.
# edit file yang sudah ada misalkan coba.txt
# svn ci coba.txt -m "pesan yang ingin disampaikan"