TUTORIAL FILE
Memecah dan Menggabungkan File
M
emecah dan menggabungkan file adalah kegiatan yang umum dilakukan ketika kita bekerja dengan file berukuran besar. Di “Tutorial” ini, kita akan membahas tuntas bagaimana memecah dan menggabungkan file menggunakan berbagai tool di Linux. Sebagai tambahan, kita juga akan membuat tool sendiri.
Banyak tindakan bisa dikenakan pada suatu file, tergantung pada kebutuhan kita. Sebagai contoh, sebuah file bisa dikompres dengan harapan ukuran file menjadi lebih kecil sehingga storage device bisa menyimpan lebih banyak. Namun, apabila setelah dikompres ukuran file masih terlalu besar bagi kita (misal, untuk disimpan pada banyak disket atau ukuran file lebih besar dari storage device yang kita miliki), lebih baik file tersebut kita pecah-pecah menjadi beberapa bagian yang lebih kecil. Beberapa bagian yang lebih kecil tersebut kemudian kita simpan dalam storage device yang kita miliki. Sampai di tempat tujuan, pecahan-pecahan file tersebut kemudian kita gabungkan kembali. Memecah file adalah tindakan yang umum dilakukan bagi yang sering meng-copy file menggunakan disket ataupun USB flash disk. Memecah file harus dapat dilakukan tanpa tergantung pada platform, sehingga file bisa dipecah di Windows dan digabungkan kembali di Linux. Atau sebaliknya. Selain itu, tool yang digunakan untuk memecah dan menggabungkan file tentunya harus bisa diandalkan supaya tidak ada informasi yang hilang. Terdapat bermacam-macam format file di dunia ini. Ada yang tidak cerewet kehilangan satu atau dua byte, namun ada pula yang sangat cerewet. Memecah file tidak boleh merusak sedikit pun bagian dari file. “Tutorial” ini akan membahas tuntas segala yang diperlukan untuk memecah dan menggabungkan kembali pecahan file. Sistem yang digunakan adalah tulisan ini
52
08/2006 INFOLINUX
adalah Debian GNU/Linux 3.1, namun seharusnya bisa diterapkan tanpa masalah pada distro lain. Pembahasan akan kita mulai dari menggabungkan file.
Menggabungkan file dengan program cat Andaikata kita memiliki pecahan file dengan nama file.01, file.02, dan file.03 yang ingin kita gabungkan menjadi file, maka program cat bisa kita gunakan seperti pada contoh berikut. Pecahan file: $ ls -al file.0* -rw-r--r-- 1 nop nop 4587520 2006-03-22 18:50 file.01 -rw-r--r-- 1 nop nop 3670016 2006-03-22 18:50 file.02 -rw-r--r-- 1 nop nop 4063232 2006-03-22 18:50 file.03
Menggabungkan file: $ cat file.01 file.02 file.03 > file
Apapun file regular yang ingin kita gabungkan, kita tidak perlu khawatir menggunakan program cat karena program ini binary safe. Artinya, kita bisa menggabungkan pecahan program-program binary. Sebagai contoh adalah kita memiliki file tar.01, tar.02 dan tar.03 yang merupakan pecahan dari program tar, yang ingin kita gabungkan kembali.
Tar yang sesungguhnya: $ /bin/tar /bin/tar: You must specify one of the `-Acdtrux’ options Try `/bin/tar --help’ for more information.
Pecahan file: $ ls -al tar.* -rw-r--r-- 1 nop nop 60000 200603-22 18:56 tar.00 -rw-r--r-- 1 nop nop 60000 200603-22 18:56 tar.01 -rw-r--r-- 1 nop nop 43820 200603-22 18:56 tar.02
Menggabungkan file: $ cat tar.00 tar.01 tar.02 > tar. joined
Menguji file hasil penggabungan: $ ./tar.joined ./tar.joined: You must specify one of the `-Acdtrux’ options Try `./tar.joined --help’ for more information.
Apabila kita ragu akan file hasil penggabungan, kita bisa selalu menggunakan program md5sum untuk menguji . File besar yang di-download umumnya dilengkapi dengan md5sum sebagai pembanding. MD5SUM file asli: $ md5sum /bin/tar
www.infolinux.web.id
TUTORIAL FILE 96a1dd64ee6424a6cfa7839015d98d67 /bin/tar
MD5SUM file hasil penggabungan: $ md5sum tar.joined 96a1dd64ee6424a6cfa7839015d98d67 tar.joined
Bisa kita lihat bahwa file hasil penggabungan sama persis dengan file aslinya. Sebagai catatan, cat adalah bagian dari paket coreutils dan selalu tersedia di sistem.
Memecah file dengan program split Memecah file lebih kompleks dibandingkan dengan menggabungkan file. Untuk memecah file, kita bisa menggunakan program split, yang datang bersama paket coreutils, yang selalu tersedia di sistem. Program split ini juga binary safe, yang artinya bisa digunakan pula untuk memecah file binary seperti program dan lain sebagainya. File-file pecahan yang dihasilkan oleh program split bisa digabungkan kembali menggunakan program cat, seperti yang telah dibahas sebelumnya. Kita akan membahas berbagai contoh penggunaan program split, untuk memecah file.
Memecah secara default Untuk memecah file dengan pengaturan default, caranya sangatlah mudah. Apa yang perlu kita lakukan adalah melewatkan nama file sebagai parameter bagi program split. Sebagai contoh:
xab xbd xcf xdh xac xbe xcg xdi
xaf xbh xcj xdl xag xbi xck xdm
xaj xbl xcn xdp xak xbm xco xdq
Pada contoh memecah file sebelumnya, ukuran setiap pecahan adalah 2000 byte. Ini tentu tidak realistis kalau pecahan-pecahan file tersebut ingin kita bawa. Ukuran file asli yang digunakan sebagai contoh juga hanya 200.000 byte. Kita akan menggunakan contoh yang lebih realistis, yaitu file asli file2 yang berukuran 10.000.000 byte, yang akan kita pecah ke dalam sepuluh file berukuran masing-masing maksimal 1.000.000 byte. File asli: $ ls -al file2 -rw-r--r-- 1 nop nop 10000000 2006-03-22 19:18 file2
* xad xbf xch xdj xae xbg xci xdk
xah xbj xcl xdn xai xbk xcm xdo
xal xbn xcp xdr xam xbo xcq xds
www.infolinux.web.id
xap xbr xct xdv xaq xbs xcu
xat xax xbv xbz xcx xdb xau xay xbw xca xcy xdc
1000000 1000000 1000000
Bisa kita lihat bahwa akan terbentuk sepuluh file pecahan, yang masing-masing nama filenya diawali oleh karakter x dan diikuti dua huruf lainnya, yang berukuran maksimal 1.000.000 byte.
Mengubah ukuran pecahan dan prefix file pecahan Bisa kita lihat pada contoh sebelumnya bahwa prefix nama file pecahan yang dihasilkan tidaklah terlalu mencerminkan file pecahan. Pada contoh kali ini, kita tetap akan memecah file2 yang berukuran 10.000.000 byte menjadi sepuluh file pecahan yang masing-masing berukuran maksimal 1.000.000 byte, namun dengan prefix nama file yang lebih mudah diingat. File asli: $ ls -al file2 -rw-r--r-- 1 nop nop 10000000 2006-03-22 19:18 file2
Memecah file menjadi pecahan masingmasing 1.000.000 byte, dengan prefix nama file yang lebih baik: $ split -b 1000000 file2 file2.
$ split -b 1000000 file2
Perhatikan argumen terakhir yang diberikan (file2.; ada karakter titik), yang merupakan prefix nama file yang diinginkan.
$ ls -al * -rw-r--r-2006-03-22 -rw-r--r-2006-03-22 -rw-r--r-2006-03-22 -rw-r--r-2006-03-22 -rw-r--r-2006-03-22 -rw-r--r-2006-03-22 -rw-r--r-2006-03-22 -rw-r--r-2006-03-22
$ ls file xbb xcd xdf xaa xbc xce xdg
-rw-r--r-- 1 nop nop 2006-03-22 19:19 xah -rw-r--r-- 1 nop nop 2006-03-22 19:19 xai -rw-r--r-- 1 nop nop 2006-03-22 19:19 xaj
Memecah file menjadi pecahan masingmasing 1.000.000 byte:
Hasil pecahan:
Hasil pecahan:
xas xaw xba xbu xby xcc xcw xda xde
Memecah dengan ukuran tertentu
$ ls -al file -rw-r--r-- 1 nop nop 200000 200603-22 19:13 file
$ split file
xar xav xaz xbt xbx xcb xcv xcz xdd
Hasil pecahan adalah file-file yang nama filenya diawali oleh karakter x dan diikuti oleh dua huruf lainnya. Masing-masing file maksimal berukuran 2000 byte. File-file tersebut kemudian bisa dibawa dan digabungkan kembali dengan program cat.
File asli:
Memecah file:
xan xbp xcr xdt xao xbq xcs xdu
1 nop nop 10000000 19:18 file2 1 nop nop 1000000 19:19 xaa 1 nop nop 1000000 19:19 xab 1 nop nop 1000000 19:19 xac 1 nop nop 1000000 19:19 xad 1 nop nop 1000000 19:19 xae 1 nop nop 1000000 19:19 xaf 1 nop nop 1000000 19:19 xag
Hasil pecahan: $ ls -al * -rw-r--r-2006-03-22 -rw-r--r-2006-03-22 -rw-r--r-2006-03-22 -rw-r--r-2006-03-22 -rw-r--r-2006-03-22 -rw-r--r-2006-03-22 -rw-r--r-2006-03-22
1 nop nop 10000000 19:18 file2 1 nop nop 1000000 19:24 file2.aa 1 nop nop 1000000 19:24 file2.ab 1 nop nop 1000000 19:24 file2.ac 1 nop nop 1000000 19:24 file2.ad 1 nop nop 1000000 19:24 file2.ae 1 nop nop 1000000 19:24 file2.af
INFOLINUX 08/2006
53
TUTORIAL FILE -rw-r--r-2006-03-22 -rw-r--r-2006-03-22 -rw-r--r-2006-03-22 -rw-r--r-2006-03-22
1 nop nop 1000000 19:24 file2.ag 1 nop nop 1000000 19:24 file2.ah 1 nop nop 1000000 19:24 file2.ai 1 nop nop 1000000 19:24 file2.aj
Bisa kita lihat bahwa akan terbentuk sepuluh file pecahan, yang masing-masing nama filenya diawali oleh file2. (perhatikan karakter titik) dan diikuti dua huruf lainnya, yang berukuran maksimal 1.000.000 byte. Lebih mudah dimengerti sebagai pecahan file2 bukan?
Mengubah ukuran pecahan, prefix dan suffix nama file pecahan Masih tidak puas dengan nama file pecahan yang dihasilkan sebelumnya, di mana terdapat sepuluh file file2.* yang berukuran maksimal 1.000.000 masing-masingnya? Apabila suffix dua huruf yang secraa default digunakan dirasa tidak menyenangkan, kita selalu bisa menggantinya dengan suffix desimal. Cukup gunakan opsi -d. Perhatikanlah contoh berikut: File asli: $ ls -al file2 -rw-r--r-- 1 nop nop 10000000 2006-03-22 19:18 file2
Memecah file menjadi pecahan masingmasing 1.000.000 byte, dengan prefix nama file yang lebih baik serta suffix desimal: $ split -d -b 1000000 file2 file2.
Perhatikan argumen terakhir yang diberikan (file2.; ada karakter titik), yang merupakan prefix nama file yang diinginkan. Hasil pecahan: $ ls -al * -rw-r--r-2006-03-22 -rw-r--r-2006-03-22 -rw-r--r-2006-03-22 -rw-r--r-2006-03-22 -rw-r--r-2006-03-22
54
1 nop nop 10000000 19:18 file2 1 nop nop 1000000 19:28 file2.00 1 nop nop 1000000 19:28 file2.01 1 nop nop 1000000 19:28 file2.02 1 nop nop 1000000 19:28 file2.03
08/2006 INFOLINUX
-rw-r--r-2006-03-22 -rw-r--r-2006-03-22 -rw-r--r-2006-03-22 -rw-r--r-2006-03-22 -rw-r--r-2006-03-22 -rw-r--r-2006-03-22
1 nop nop 1000000 19:28 file2.04 1 nop nop 1000000 19:28 file2.05 1 nop nop 1000000 19:28 file2.06 1 nop nop 1000000 19:28 file2.07 1 nop nop 1000000 19:28 file2.08 1 nop nop 1000000 19:28 file2.09
Bisa kita lihat bahwa akan terbentuk sepuluh file pecahan, yang masing-masing nama filenya diawali oleh file2. (perhatikan karakter titik) dan diikuti dua angka desimal yang menunjukkan urutan. Masing-masing file pecahan akan berukuran maksimal 1.000.000 byte.
Mengubah panjang suffix Contoh sebelum ini harusnya sudah mencukupi dalam kegiatan memecah file. Namun, apabila jumlah pecahan mencapai ratusan, maka panjang suffix tidak lagi mencukupi. Sebagai contoh, kita akan memecah kembali file2 dengan pecahan yang diawali dengan file2., diakhiri dengan suffix angka desimal, namun dengan ukuran maksimal 50.000 byte setiap file-nya. $ split -d -b 50000 file2 file2. split: Output file suffixes exhausted
Pesan kesalahan tersebut akan ditampilkan apabila suffix yang tersedia sudah dipakai semua. Kita akan memiliki 200 file pecahan yang masing-masing berukuran maksimal 50.000 byte. Namun, suffix yang tersedia hanyalah dua digit desimal. Dua digit desimal tersebut tidak bisa digunakan untuk 200 file. Kita perlu membuatnya lebih panjang dengan menggunakan parameter -a. Sebagai contoh: $ split -a 3 -d -b 50000 file2 file2.
Perintah tersebut akan menghasilkan 200 file pecahan, yang masing-masing akan memiliki suffix tiga digit desimal. Sebagai contoh: $ ls file2.00* file2.10* file2.000 file2.002 file2.004 file2.006 file2.008 file2.100
file2.102 file2.108 file2.001 file2.007 file2.103 file2.109
file2.104
file2.106
file2.003 file2.009 file2.105
file2.005 file2.101 file2.107
Sampai di sini, kita sudah melihat bagaimana cara memecah dan menggabungkan file. Walaupun kedua program (cat dan split) dibuat oleh tokoh-tokoh free software dan sangat stabil, pastikan kita selalu memeriksa kembali file hasil penggabungan dengan menggunakan bantuan program md5sum.
Splitjo: split and join Selain split dan cat, kita juga bisa mempergunakan program splitjo untuk memecah dan menggabungkan file. Program splitjo (GPL) bisa di-download di http://www.noprianto.com/splitjo.php. Pada saat tulisan ini dibuat, splitjo masih berada pada versi 0.1a dan sudah memiliki beberapa fitur berikut: Memecah file Ukuran pecahan file bisa ditentukan (default adalah 5000 byte). Ekstensi nama file pecahan adalah desimal dengan panjang 5 digit (bisa diset di source code) dan diformat rapi (00001, 00002, dan seterusnya). Prefix file pecahan adalah basename dari file asli. Datang dengan informasi progress. Menggabungkan file Menggabungkan file dengan bantuan wildcard, seperti file.*. Nama file gabungan adalah nama file-file pecahan yang diberikan (tanpa wildcard-nya; apabila file-file yang ingin digabungkan adalah file.*, maka nama file gabungan adalah file; dimasa depan, opsi tambahan akan diberikan agar nama file gabungan bisa diset secara manual). Datang dengan informasi progress. Interface program Datang dengan aturan argumen GNU yang mudah digunakan.
Memecah file dengan pengaturan default Berikut ini, kita akan memecah file file3 (dengan ukuran 12345 byte) sesuai pengaturan default: $ ./splitjo --split --file=file3
www.infolinux.web.id
TUTORIAL FILE splitting file3 (size 12345) for each 5000 (3 pieces) creating file file3.00000... done. creating file file3.00001... done. creating file file3.00002... done.
Sebagai catatan, untuk memecah file, gunakan opsi –split. File yang ingin dipecah dapat diberikan melalui opsi –file. Apabila –file tidak diberikan, maka pesan kesalahan akan ditampilkan. $ ./splitjo --split ./splitjo: no filename/filename criteria given
Contoh pemecahan file tersebut akan menghasilkan file-file berikut: $ ls -al file3.* -rw-r--r-- 1 nop nop 5000 200603-22 20:52 file3.00000 -rw-r--r-- 1 nop nop 5000 200603-22 20:52 file3.00001 -rw-r--r-- 1 nop nop 2345 200603-22 20:52 file3.00002
Memecah file dan mengatur ukuran file pecahan Untuk memecah file dengan ukuran file pecahan tertentu, gunakanlah opsi –byte. Berikut ini adalah contohnya (masih dengan file asli file3): $ ./splitjo --split --file=file3 --byte=4321 splitting file3 (size 12345) for each 4321 (3 pieces) creating file file3.00000... done. creating file file3.00001... done. creating file file3.00002... done. $ ls -al file3.* -rw-r--r-- 1 nop nop 4321 200603-22 21:03 file3.00000 -rw-r--r-- 1 nop nop 4321 200603-22 21:03 file3.00001 -rw-r--r-- 1 nop nop 3703 200603-22 21:03 file3.00002
Menggabungkan file Untuk menggabungkan file, gunakanlah opsi –join dan berikanlah nama file yang ingin digabungkan sebagai nilai argumen –file. Nama file yang diberikan harus meng-
www.infolinux.web.id
gunakan bantuan wildcard. Sebagai contoh, kita akan menggabungkan file3.00000, file3.00001, file3.00002 yang dihasilkan sebelumnya.
#include
#include <string.h> #include
$ ./splitjo --join --file=file3.* joining file3.* (3 files) as file3 joining file file3.00000... done. joining file file3.00001... done. joining file file3.00002... done.
#define VERSION “0.1a” #define FN_LEN 256 #define DEC_LEN 5
Contoh penggabungan tersebut akan menghasilkan file file3.
Source code splitjo Program splitjo dibangun dengan bahasa C. Berikut ini adalah source code-nya. Pembahasan akan dilakukan setelah source code. /* * ** Copyright (C) 2006 Noprianto <[email protected]> * ** * ** This program is free software; you can redistribute it and/or * ** modify it under the terms of the GNU General Public License, * ** version 2, as published by the Free Software Foundation. * ** * ** This program is distributed in the hope that it will be useful, * ** but WITHOUT ANY WARRANTY; without even the implied warranty of * ** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * ** GNU General Public License for more details. * ** * ** You should have received a copy of the GNU General Public License * ** along with this program; if not, write to the Free Software * ** Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #include #include #include #include #include
<stdio.h> <stdlib.h> <sys/stat.h> <sys/types.h>
void print_usage (char * progname) { fprintf (stdout, “splitjo version %s\n”, VERSION); fprintf (stdout, “(c) Noprianto, 2006.\n”); fprintf (stdout, “http://www. noprianto.com/splitjo.php\n”); fprintf (stdout, “\n”); fprintf (stdout, “Usage: %s OPTION... FILE...\n”, progname); fprintf (stdout, fprintf (stdout, split file\n”); fprintf (stdout, join files\n”); fprintf (stdout, this screen\n”);
“Actions:\n”); “ -s, --split “
-j, --join
“
-h, --help
fprintf (stdout, “\n”); fprintf (stdout, “Options:\n”); fprintf (stdout, “ -b, -byte=NUM put NUM byte per output file (only for --split)\ n”); fprintf (stdout, “ -f, -file=FILE FILE to split or FILE criteria to JOIN\n”);
}
int split_file (char * files, long int bytes) { long int i; long int j; int c; char * b_files = (char *) malloc (FN_LEN * sizeof (char *)); char * c_files = (char *) malloc
INFOLINUX 08/2006
55
TUTORIAL FILE (FN_LEN * sizeof (char *)); char * fmt = (char *) malloc (FN_LEN * sizeof (char *));
pathv[i]); } return 0;
struct stat stat_t; int stat_ret = stat(files, &stat_t); if (!stat_ret) { long int file_size = stat_ t.st_size; long int pieces = file_size / bytes + 1; fprintf (stdout, “splitting %s (size %li) for each %li (%li pieces)\n”, files, file_size, bytes, pieces); b_files = basename (files); for (i = 0; i < pieces; i++) { sprintf(fmt, “%%s.%%.%dli”, DEC_LEN); sprintf(c_files, fmt, b_files, i);
} else { return stat_ret; } }
fclose (f2); int join_files (char * files) { glob_t globbuf; long int found; long int i; int c; int index; char * b_files = (char *) malloc (FN_LEN * sizeof (char *)); globbuf.gl_offs = 0; glob(files, GLOB_DOOFFS, NULL, &globbuf);
fprintf (stdout, “creating file %s... “, c_files); found = globbuf.gl_pathc; FILE *f = fopen(files, “rb”); FILE *f2 = fopen(c_files, “wb”); fseek (f, i * bytes SEEK_SET);
,
for (j=0; j< bytes; j++) { if (!feof(f)) { c = fgetc (f); if (c != EOF) fputc (c, f2);
for (i = 0; i < strlen(files); i++) { if (files[i] == ‘.’) { index = i; break; } } strncpy (b_files, files, index);
fprintf (stdout, “joining %s (%li files) as %s\n” , files, found, b_files);
} } fclose (f2); fclose (f); fprintf (stdout, “done.\ n”);
56
08/2006 INFOLINUX
FILE * f2 = fopen (globbuf. gl_pathv[i], “rb”); while (!feof (f2)) { c = fgetc (f2); if (c != EOF) fputc (c, f); }
FILE *f = fopen(b_files, “wb”); for (i = 0; i < found; i++) { fprintf (stdout, “joining file %s... “, globbuf.gl_
fprintf (stdout, “done.\n”); } fclose (f); return 0; } int main (int argc, char * argv[]) { int c; int option_index = 0; long int bytes = 5000; int byte_set = 0; char * files = (char *) malloc (FN_LEN * sizeof (char *)); int file_set = 0; static struct option long_ options[] = { {“split”, 0, 0, 0}, {“join”, 0, 0, 0}, {“help”, 0, 0, 0}, {“byte”, 1, 0, 0}, {“file”, 1, 0, 0}, {0, 0, 0, 0} };
enum what_t { NOT_SET, ERROR_MULTI, JOIN, SPLIT }; enum what_t what = NOT_SET;
www.infolinux.web.id
TUTORIAL FILE optarg); while ( (c = getopt_long (argc, argv, “sjhb:f:”, long_options, &option_index)) != -1) switch (c) { case 0: if (strcmp (long_ options[option_index].name, “help”) == 0) { print_usage (argv[0]); exit (0); break; } else if (strcmp (long_ options[option_index].name, “split”) == 0) { if (what == NOT_SET || what == SPLIT) what = SPLIT; else what = ERROR_MULTI; break; } else if (strcmp (long_ options[option_index].name, “join”) == 0) { if (what == NOT_SET || what == JOIN) what = JOIN; else what = ERROR_MULTI; break; } else if (strcmp (long_ options[option_index].name, “byte”) == 0) { bytes = atoi(optarg); byte_set = 1; break; } else if (strcmp (long_ options[option_index].name, “file”) == 0) { strcpy(files,
www.infolinux.web.id
file_set = 1; break; } break; case ‘h’: print_usage (argv[0]); exit (0); break; case ‘s’: if (what == NOT_SET || what == SPLIT) what = SPLIT; else what = ERROR_MULTI; break; case ‘j’: if (what == NOT_SET || what == JOIN) what = JOIN; else what = ERROR_MULTI; break; case ‘b’: bytes = atoi(optarg); byte_set = 1; break; case ‘f’: strcpy(files, optarg); file_set = 1; break; }
if (what == ERROR_MULTI) { fprintf(stderr, “%s: multiple actions are given, but only one allowed (try --help)\n”, argv[0]); exit(1); } else if (what == NOT_SET) { fprintf(stderr, “%s: no action specified (try --help)\n”, argv[0]); exit(2); } else if (what == JOIN && byte_set == 1) { fprintf(stderr, “%s: join
given, but --byte also set, ignoring...\n”, argv[0]); exit(3); }; if (file_set == 0) { fprintf(stderr, “%s: no filename/filename criteria given\ n”, argv[0]); exit(4); }
switch (what) { case SPLIT: return (split_file (files, bytes)); break; case JOIN: return (join_files(files)); } return 0; }
Penjelasan source code: Untuk melakukan kompilasi, berikanlah perintah berikut: $ gcc
-o splitjo splitjo.c
Untuk mengubah panjang suffix, gantilah nilai DEC_LEN. Inti dari split_file() adalah Cek ukuran file. Dapatkan jumlah pecahan dengan membagi ukuran file dengan variabel bytes. Untuk setiap file pecahan: Bacalah bagian yang bersesuaian dari file asli. Tulis ke file pecahan. Inti dari join_files() adalah: Dapatkan nama file gabungan. Dapatkan jumlah file pecahan. Untuk setiap file pecahan: Copy-kan isinya ke file gabungan. Demikianlah pembahasan kita tentang memecah dan menggabungkan file di Linux serta melakukannya dengan bahasa C. Selamat mencoba! Noprianto [[email protected]]
INFOLINUX 08/2006
57
TUTORIAL BACKUP
Back-up Sederhana di Linux
B
ack-up merupakan salah satu tugas penting yang harus selalu diperhatikan ketika bekerja dengan komputer. Di Linux, kita mengenal banyak tool standar yang dapat digunakan untuk membangun sistem back-up sendiri. Di tulisan ini, kita akan memanfaatkan tool-tool tersebut dan shell script sebagai alat bantu.
Mari kita ambil contoh sederhana. Katakanlah seorang penulis sedang menulis sebuah buku. Naskah buku tersebut disimpan dalam struktur direktori berikut:
58
Meng-copy file-file yang berubah saja dan tetap menyusun file history. Sayangnya, penulis tersebut sedikit paranoid. Takut software yang mendeteksi perubahan file salah mendeteksi. Membuat copy utuh naskah buku dan mem-back-up-nya secara keseluruhan, waktu demi waktu. Cara ini sedikit memakan ruang kosong harddisk maupun waktu backup. Namun, rupanya cara inilah yang disenangi oleh sang penulis: tidak terlalu rumit (karena hanya mengcopy-kan satu direktori utuh dengan nama lain—ditambah informasi tanggal dan waktu—ke direktori back-up) dan semua informasi akan tetap tersimpan (satu tree direktori di-copy-kan).
Buku bab0 image/ bab0.sxw bab1 image/ bab1.sxw bab2 image/ bab2.sxw bab3 image/ bab3.sxw bab4 image/ bab4.sxw lain-lain
Bagaimana sang penulis tersebut bisa membuat sistem back-up sesuai cara yang diinginkan (cara ketiga)? Berikut ini adalah langkah-langkahnya.
Hari demi hari, penulis tersebut menulis dan memperbaiki naskah bukunya. Namun, ketika sedang memperbaiki, apa yang diperbaiki hari ini tidaklah selalu lebih baik dari apa yang telah diperbaiki hari sebelumnya. Oleh karena itu, penulis tersebut tidak ingin perubahan yang baru menimpa semua perubahan sebelumnya. Apa yang bisa penulis tersebut lakukan? Berikut ini beberapa di antaranya: Menggunakan sistem versioning. Namun, ini terlalu rumit bagi penulis tersebut.
Pembuatan changelog.
08/2006 INFOLINUX
Langkah 1: Persiapan Persiapan yang dilakukan adalah persiapan struktur direktori. Kita akan menggunakan struktur direktori berikut: WORK Buku. Back-up. Direktori buku, yang struktur direktorinya telah disebutkan sebelumnya, adalah direktori naskah aktif. Penulis tersebut akan selalu bekerja pada file-file didirektori ini. Sementara, direktori back-up akan berisikan banyak file terkompres, yang masing-masingnya merupakan back-up dari direktori buku. Nama file back-up nantinya akan memiliki pola nama file berikut: buku-_<waktu: hh:mm:ss>.tar.bz2
Di dalam back-up naskah buku tersebut, secara otomatis akan ditambahkan sebuah
www.infolinux.web.id
TUTORIAL BACKUP file dengan nama changelog, yang akan berisikan perubahan historis sejak pertama kali melakukan back-up. Supaya lebih keren, ada baiknya kalau kita menambahkan symlink dengan nama:
echo “Press ENTER to write ChangeLog for backup $CURR_DIR_CMP (using $EDITOR)” read
LATEST
# get ChangeLog, accumulate it $EDITOR $TEMP echo “$DATE_INFO” >> $CHANGELOG_ FILE cat $TEMP >> $CHANGELOG_FILE echo >> $CHANGELOG_FILE echo >> $CHANGELOG_FILE
yang akan merujuk kepada backup terakhir yang dibuat. Dengan demikian, penulis tersebut akan mengetahui file backup mana saja yang merupakan back-up terakhir. Buatlah struktur direktori yang disebutkan sebelumnya dengan perintah-perintah berikut: $ mkdir -p WORK WORK/buku/ bab{0,1,2,3,4,5}/image WORK/buku/ lain-lain WORK/backup
# copy last ChangeLog cp $CHANGELOG_FILE $DIR_SRC # compressing... tar -cf - $DIR_SRC | bzip2 -v9 > $CURR_DIR_CMP
Sebagai catatan, File symlink dan changelog tidak perlu dibuat secara manual. Filefile tersebut akan dibuat secara otomatis oleh script.
# move to $DIR_BACKUP mv $CURR_DIR_CMP $DIR_BACKUP
Langkah 2: Pembuatan script
# creating LATEST-IS symlink ln -sf “$CURR_DIR_CMP” “$LINK_FILE” mv $LINK_FILE $DIR_BACKUP
Berikut ini adalah script simple_backup.sh. Simpanlah di dalam direktori WORK. #!/bin/sh # # # #
simple_backup.sh (c) Noprianto, May 2006 v0.1 BSD
### configuration DATE_FORMAT=”+%d-%m-%Y_%T” DIR_SRC=buku DIR_BACKUP=backup TEMP=/tmp/$$.temp CHANGELOG_FILE=ChangeLog EDITOR=nano ### end of configuration ### DATE_INFO=`date “$DATE_FORMAT”` CURR_DIR=”$DIR_SRC-$DATE_INFO” CURR_DIR_CMP=”$CURR_DIR.tar.bz2” LINK_FILE=”LATEST” # menu, add ChangeLog echo echo “simple_backup.sh v0.1, (c) Noprianto.”
www.infolinux.web.id
echo DONE. echo rm -rf $TEMP
Cara penggunaan: Program back-up sederhana ini bisa digunakan oleh siapa saja; tidak hanya untuk keperluan sang penulis. Pastikan pengguna telah mengatur variabel pada seksi configuration, apabila ingin digunakan pada lingkungan kerja lain. Script ini sebaiknya—apabila dimungkinkan—disimpan pada direktori kerja (dalam hal ini WORK), yang menyimpan direktori yang ingin di-back-up. Script ini tidak membutuhkan parameter apapun. Untuk menjalankan, cukup panggil saja simple_backup.sh. Begitu script ini dijalankan, pengguna akan diminta untuk menekan tombol ENTER, yang akan membawa pengguna ke editor yang telah ditentukan (nama editor bisa diset pada variabel EDITOR di seksi configuration). Pengguna bisa memasukkan changelog tanpa harus menuliskan tanggal dan waktu. Informasi tanggal dan waktu akan ditambahkan otomatis.
INFOLINUX 08/2006
59
TUTORIAL BACKUP Secara default, file ChangeLog kita simpan dengan nama ChangeLog (bisa diubah pada variabel $CHANGELOG_FILE). Pertama-tama, ketika user menekan tombol ENTER, editor yang telah ditentukan akan mengedit sebuah file sementara ($TEMP). Setelah proses pengeditan selesai, kita akan melakukan aksi-aksi berikut: Memasukkan informasi waktu ke file ChangeLog. Memasukkan isi file sementara yang diedit oleh user ke file ChangeLog. Menuliskan dua baris kosong ke file ChangeLog. Blok kode berikut ini mengerjakan backup yang sesungguhnya: Meng-copy-kan file ChangeLog ke direktori yang ingin dibackup (DIR_ SRC)
Daftar backup, plus symlink.
Setelah changelog dibuat, keluarlah dari editor. Secara default, changelog akan diupdate dan dikopikan ke direktori yang ingin di-back-up (DIR_SRC). Direktori yang ingin di-back-up (DIR_ SRC) tersebut pun kemudian akan dikompress dan setelahnya, file terkompresi akan dipindahkan ke direktori tempat menyimpan back-up (DIR_BACKUP). Sebuah symlink (di dalam direktori backup dengan default nama LATEST) secara otomatis akan merujuk kepada back-up terakhir yang dibuat.
Untuk variabel DATE_FORMAT, dapatkan kode pemformatan dari manual program date. Berikut ini adalah beberapa contoh penggunaan format untuk program date. Jangan lupa memberikan tanda + sebelum kode pemformatan.
Penjelasan source code: Agar lebih general, kita membuat seksi configuration. Semua variabel yang mungkin akan diubah oleh user ditempatkan di sini. Berikut ini adalah seksi configuration:
$ date “+%nSekarang adalah tanggal:%n%t %D%ndan jam:%n%t%T%n”
$ date +%c Tue 23 May 2006 04:57:19 PM WIT $ date “+Sekarang adalah tanggal dan jam: %c” Sekarang adalah tanggal dan jam: Tue 23 May 2006 04:58:04 PM WIT
# copy last ChangeLog cp $CHANGELOG_FILE $DIR_SRC
Mengompres direktori yang ingin diback-up (DIR_SRC) # compressing... tar -cf - $DIR_SRC | bzip2 -v9 > $CURR_DIR_CMP
Memindahkan file terkompres ke direktori back-up (DIR_BACKUP) # move to $DIR_BACKUP mv $CURR_DIR_CMP $DIR_BACKUP
Terakhir, kita membuat symlink:
### configuration DATE_FORMAT=”+%d-%m-%Y_%T” DIR_SRC=buku DIR_BACKUP=backup TEMP=/tmp/$$.temp CHANGELOG_FILE=ChangeLog EDITOR=nano ### end of configuration
Sebagai catatan, untuk EDITOR, apabila editor tidak tersimpan dalam $PATH, maka user perlu menyebutkan path lengkap ke program editor tersebut.
60
08/2006 INFOLINUX
Sekarang adalah tanggal: 05/23/06 dan jam: 17:01:04 $ date “+%d-%m-%Y_%T” 23-05-2006_17:02:19
Perhatikan blok berikut ini untuk memanipulasi ChangeLog: # get ChangeLog, accumulate it $EDITOR $TEMP echo “$DATE_INFO” >> $CHANGELOG_ FILE cat $TEMP >> $CHANGELOG_FILE echo >> $CHANGELOG_FILE echo >> $CHANGELOG_FILE
# creating LATEST-IS symlink ln -sf “$CURR_DIR_CMP” “$LINK_ FILE” mv $LINK_FILE $DIR_BACKUP
Sebagai catatan: kita membuat symlink di direktori aktif terlebih dahulu, setelah itu, barulah kita memindahkannya ke direktori back-up (DIR_BACKUP). Setelah script tersebut selesai, sang penulis tadi pun bisa bekerja dengan tenang. Dengan sedikit modifikasi, sang penulis tadi menjadikannya lebih sederhana (tidak ada pembuatan changelog), dan menjadikannya sebagai salah satu dari sekian banyak cronjob yang dimiliki. Backup pun dilakukan secara otomatis. Sampai di sini dulu pembahasan kita. Silakan ubah script yang dibahas sesuai kebutuhan Anda. Selamat mencoba! Noprianto [[email protected]]
www.infolinux.web.id
TUTORIAL LAPTOP
Mengoperasikan Linux di Notebook Centrino Duo
T
utorial ini ditulis Onno W. Purbo berdasarkan pengalamannya menginstal Linux Fedora Core 5 di notebook Centrino Duo dari Axioo kelas NS. Kang Onno menunjukkan cara kompilasi kernel, instalasi dan konfigurasi driver Gigabit Ethernet, kartu wireless IEEE 802.11a/b/g, serta kartu suara AC97.
Setelah bertahun-tahun menggunakan IBM Thinkpad T20, akhirnya saya memutuskan untuk menggunakan Notebook Centrino Duo dari Axioo kelas NS. Tampaknya Axioo membundel semua produknya dengan Linux turunan dari Mandriva yang sangat user-friendly mirip dengan XP desktop-nya. Untuk notebook Axioo centrino duo NS yang relatif baru teknologinya dengan 2 processor, WiFi di 2.4 GHz & 5.8 GHz, dan Gigabit Ethernet, urusan driver peripheral jaringan menjadi seru. Sebagian besar driver-nya masih belum ada di distro termasuk
distro Fedora Core 5 yang saya pakai, jadi harus compile sendiri dari scratch. Tulisan ini mendokumentasikan proses instalasi berbagai driver dalam usaha menggunakan notebook dengan teknologi Centrino Duo yang dua-core. Kalau dicek di informasi system monitor memang ada 2 prosesor. Paling asik kalau kita melihat beban prosesor pada saat melakukan compile kernel. Lihat Gambar 1. Saya menggunakan Fedora Core 5, tidak menggunakan Linux bawaan dari Axioo seri NS karena kebutuhan saya tidak seperti end
user biasa. Saya akan menggunakan notebook Axioo ini untuk melakukan demodemo server, compile software, dan lainlain. Instalasi Fedora Core relatif sederhana, tidak berbeda jauh dengan teknik instalasi yang normal dan biasanya akan langsung jalan.
Kompilasi kernel Karena saya perlu meng-compile berbagai driver dari scratch, maka saya perlu mengcompile kernel Linux. Saya kebetulan membeli Fedora Core 5 dari Gudang Linux tanpa source, jadi saya mengambil source kernel yang fresh dari http://www.kernel.org. Pada saat tulisan ini di tulis kernel yang terbaru adalah linux-2.6.16.20.tar.bz2 pada alamat http://www.kernel.org/pub/linux/kernel/ v2.6/linux-2.6.16.20.tar.bz2. Copy-kan kernel ke /usr/src dan buka atau ekstrak denga perintah tar: # cp linux-2.6.16.20.tar.bz2 /usr/ src # cd /usr/src # tar xlvf linux-2.6.16.20.tar.bz2
Setelah dibuka kita harus mengonfigurasi kernel untuk di-compile. # cd /usr/src/linux-2.6.16.20 # make clean # make menuconfig
Gambar 1. System Monitor di dektop GNOME Fedora Core 5.
62
08/2006 INFOLINUX
Setelah menuconfig selesai di-compile, kita akan disuguhi menu untuk memilih modul di kernel. Untuk pemula, kita tidak
www.infolinux.web.id
TUTORIAL LAPTOP rootnoverify (hd0,0) chainloader +1 configure GRUB
Isi dalam folder /boot kira-kira sebagai berikut:
Gambar 2. Tampilan menuconfig.
perlu memilih-milih konfigurasi, cukup keluar melalui exit. Bagi mereka yang ingin mengoptimasi kernel untuk keperluannya dapat memilih lebih spesifik modul-modul driver yang ingin diinstal. Compile kernel, harus berurut mengikuti urutan # make dep (sekarang tidak terlalu diperlukan lagi) # make # make bzImage # make modules # make install # make modules_install
Selesai sudah proses compile dan instalasi kernel. Kita perlu melihat isi /etc/grub. conf atau /boot/grub/grub.conf untuk menset kernel yang di-booting default ke versi 2.6.16.20 atau yang lain. Pilihan tertinggi mulai dari 0 bukan 1. # grub.conf generated by anaconda #boot=/dev/hda default=1 timeout=5 splashimage=(hd0,6)/boot/grub/ splash.xpm.gz hiddenmenu title Fedora Core (2.6.16.20) root (hd0,6) kernel /boot/vmlinuz-2.6.16.20 ro root=LABEL=/ rhgb quiet initrd /boot/initrd-2.6.16.20. img title Fedora Core (2.6.15-1.2054_ FC5smp) root (hd0,6) kernel /boot/vmlinuz-2.6.151.2054_FC5smp ro root=LABEL=/ rhgb quiet initrd /boot/initrd-2.6.151.2054_FC5smp.img title Other
www.infolinux.web.id
[root@localhost boot]# cd /boot [root@localhost boot]# ls -l total 8868 -rw-r--r-- 1 root root 63847 Mar 15 04:19 config-2.6.15-1.2054_ FC5smp drwxr-xr-x 2 root root 4096 Jun 11 22:31 grub -rw-r--r-- 1 root root 923254 Jun 11 20:49 initrd-2.6.15-1.2054_ FC5smp.img -rw-r--r-- 1 root root 836519 Jun 11 22:31 initrd-2.6.16.20.img lrwxrwxrwx 1 root root 20 Jun 11 22:31 System.map -> System.map2.6.16.20 -rw-r--r-- 1 root root 831559 Mar 15 04:19 System.map-2.6.15-1.2054_ FC5smp -rw-r--r-- 1 root root 818127 Jun 11 22:31 System.map-2.6.16.20 -rw-r--r-- 1 root root 818127 Jun 11 22:27 System.map-2.6.16.20.old lrwxrwxrwx 1 root root 17 Jun 11 22:31 vmlinuz -> vmlinuz2.6.16.20 -rw-r--r-- 1 root root 1564844 Mar 15 04:19 vmlinuz-2.6.15-1.2054_ FC5smp -rw-r--r-- 1 root root 1570083 Jun 11 22:31 vmlinuz-2.6.16.20 -rw-r--r-- 1 root root 1570083 Jun 11 22:27 vmlinuz-2.6.16.20.old [root@localhost boot]#
Kalau kita perhatikan baik-baik, maka tidak ada file config untuk versi kernel yang kita gunakan. Untuk membuat file config tersebut, caranya sangat mudah sebagai berikut. # cp /usr/src/linux-2.6.16.20/. config config-2.6.16.20
Notebook dapat di-boot dan yakinkan bahwa notebook berhasil booting dengan baik. Sering kali booting ke kernel yang baru gagal. Jika gagal booting, ulangi lagi proses compile kernel di atas dan booting lagi sampai berhasil dengan baik.
Download driver network dan sound Ada beberapa driver yang harus dicari khusus untuk notebook Axioo seri NS ini. Tiga (3) I/O peripheral yang saya lihat rewel waktu instalasinya adalah: Gigabit Ethernet RTL8168/RTL8111. AC97 driver untuk High Definition audio. Intel PRO/Wireless 3945ABG Network. Driver Gigabit Ethernet RTL8168/ RTL8111 berhasil saya peroleh dari http:// www.realtek.com.tw/downloads/downloads1-3.aspx?Keyword=RTL8168 dan dapat diambil dari beberapa situs web, yaitu: f t p : / / 1 5 2 . 1 0 4 . 2 3 8 . 1 9 4 / c n / n i c/ rtl8111brtl8168b/r1000-8111b(102). zip f t p : / / 2 0 2 . 6 5 . 1 9 4 . 1 8 / c n / n i c/ rtl8111brtl8168b/r1000-8111b(102). zip f t p : / / 6 1 . 5 6 . 8 6 . 1 2 2 / c n / n i c/ rtl8111brtl8168b/r1000-8111b(102). zip Driver AC97 untuk High Definition audio dapat diambil dari http://www.realtek. com.tw. Tepatnya di http://www.realtek.com. tw/downloads/dlac97-2.aspx?lineid=5&famid =12&series=8&Software=True. Lokasi tepatnya dari file yang akan diambil ada di: ftp://152.104.238.194/pc/ac97/ alc650/realtek-linux-audiopack-3.56b.tar.bz2 ftp://61.56.86.122/pc/ac97/alc650/realtek-linux-audiopack-3.5-6b.tar.bz2 ftp://202.65.194.18/pc/ac97/alc650/ realtek-linux-audiopack-3.5-6b.tar.bz2 Driver untuk WiFi Intel PRO/Wireless 3945ABG Network dapat diambil di Web Intel http://www.intel.com|Support & Downloads|Download Center|Wireless| Wireless LAN Products|Intel PRO/Wireless 3945ABG Network|Select your Operating System|Linux* Khusus untuk Wi-Fi, kita perlu mendownload driver IEEE 802.11 yang baru dari http://ieee80211.sourceforge.net/ #downloads. Pada saat “Tutorial” ini ditulis, file terbaru adalah ieee80211-1.1.13.tgz.
Instalasi driver gigabit ethernet Teknik instalasi driver Gigabit Ethernet RTL8168/RTL8111 sangat mudah, yaitu:
INFOLINUX 08/2006
63
TUTORIAL LAPTOP # cp rtl8168/r1000-8111b\(102\). zip /usr/local/src/ # cd /usr/local/src # unzip r1000-8111b\(102\).zip # cd r1000 # make # make install # depmod
Setelah driver telah terinstal, boot notebook dan cek apakah eth0 sudah dikenali melalui perintah: # ifconfig eth0
Akan keluar informasi kira-kira sebagai berikut: eth0 Link encap:Ethernet HWaddr 00:13:D3:F1:37:8E BROADCAST MULTICAST MTU:1500 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:0 (0.0 b) TX bytes:0 (0.0 b) Interrupt:17 Base address:0xc800
Edit file konfigurasi interface eth0 di /etc/sysconfig/network-script/ifcfg-eth0. Pastikan isinya minimal sebagai berikut.
# tar zxvf ieee80211-1.1.13.tgz # cd /usr/local/src/ieee802111.1.13
Compile driver IEEE 802.11 dengan perintah make: # make
Jawab pertanyaan berikutnya seperti di bawah ini:
Booting notebook, dan cek apakah eth1 wireless Internet sudah dikenali. Kadang kala kita harus menjalankan secara manual modul driver IPW3945 melalui perintah berikut:
Instal IEEE 802.11 menggunakan perintah:
# cd /usr/local/src/intel-ipw39451.0.0/ipw3945-1.0.0 # ./load debug=0
# make install
Compile driver dan instal IPW3945 melalui perintah: # cp ipw3945-linux-1.0.0.tgz /usr/ local/src # cd /usr/local/src # tar zxvf ipw3945-linux-1.0.0.tgz # cd intel-ipw3945-1.0.0/ # tar zxvf ipw3945-1.0.0.tgz # cd /usr/local/src/intel-ipw39451.0.0/ipw3945-1.0.0 # make # make install
Setelah selesai, maka akan keluar informasi dari IPW yang isinya kira-kira sebagai berikut:
Tentunya bagi anda yang ingin menggunakan IP static, isinya menjadi lain. Aktifkan DHCP client untuk meminta IP address ke server di jaringan melalui perintah:
Don’t forget to copy microcode to your hotplug’s firmware directory and have the hotplug tools in place. See INSTALL for more information.
# dhclient eth0
64
Akan keluar message kira-kira seperti di bawah ini dan pastikan keluar kata-kata .. done. Unloaded: ipw3945 ieee80211 ieee80211_crypt Loaded: ieee80211 ipw3945 Loading ipw3945d.ipw3945d regulatory daemon Copyright (C) 2005-2006 Intel Corporation. All rights reserved. version: 1.7.18 Intel PRO/Wireless 3945ABG Network Connection found at: /sys/bus/pci/drivers/ ipw3945/0000:03:00.0 Daemon launched as pid 2774. Exiting. ..done.
Dengan menggunakan perintah iwlist, kita dapat melakukan scanning frekuensi, dan kira-kira akan menghasilkan pesanpesan berikut ini:
Lakukan instalasi microcode IPW3945 menggunakan perintah-perintah berikut ini:
Selanjutnya menyiapkan driver Wireless IPW3945ABG yang merupakan generasi terbaru wireless untuk Centrino Duo yang mampu bekerja pada mode IEEE 802.11a/ b/g pada frekuensi 2.4 GHz dan 5.8 GHz pada kecepatan 11 Mbps bahkan sampai 54 Mbps. Langkah yang perlu dilakukan adalah:
# cd /usr/local/src/intel-ipw39451.0.0 # tar zxvf ipw3945-ucode-1.13.tgz # cd /usr/local/src/intel-ipw39451.0.0/ipw3945-ucode-1.13 # cp ipw3945.ucode /lib/firmware/ # mkdir /etc/hotplug
# cp ieee80211-1.1.13.tgz /usr/ local/src # cd /usr/local/src
Buat file /etc/hotplug/firmware.agent dan isikan satu baris berikut:
08/2006 INFOLINUX
# cd /usr/local/src/intel-ipw39451.0.0 # tar zxvf ipw3945d-1.7.18.tgz # cd /usr/local/src/intel-ipw39451.0.0/ipw3945d-1.7.18 # cp x86/ipw3945d /sbin # depmod
Above files found. Remove? [y],n -> y Above definitions found. Comment out? [y], n -> y
DEVICE=eth0 ONBOOT=yes BOOTPROTO=dhcp
Instalasi driver wireless
Selanjutnya instal IPW3945D melalui perintah-perintah:
FIRMWARE_DIR=/lib/firmware
Gambar 3. Tampilan pertama konfigurasi sound card ALSA.
www.infolinux.web.id
TUTORIAL LAPTOP Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0 Tx excessive retries:0 Invalid misc:2 Missed beacon:0
Edit file konfigurasi /etc/sysconfig/network-scripts/ifcfg-eth1 agar WiFi dapat secara otomatis mendapat IP addres melalui server DHCP. Pastikan isinya sebagai berikut: Gambar 4. Konfigurasi ALSA menemukan sound card.
# wlist scanning eth1 Scan completed : Cell 01 - Address: 00:02: B3:35:42:71 ESSID:”SWADAYA-JAHT” Protocol:IEEE 802.11bg Mode:Master Channel:1 Encryption key:off Bit Rates:1 Mb/s; 2 Mb/s; 5.5 Mb/s; 11 Mb/s; 6 Mb/s 9 Mb/s; 12 Mb/ s; 18 Mb/s; 24 Mb/s; 36 Mb/s 48 Mb/s; 54 Mb/s Quality=88/100 Signal level=-41 dBm Extra: Last beacon: 228ms ago
DEVICE=eth1 ONBOOT=yes BOOTPROTO=dhcp
Untuk memaksa DHCP Client memperoleh IP address dari server dapat digunakan perintah dhclient: # dhclient eth1
Instalasi driver sound AC97 Terakhir adalah menginstalasi driver audio agar suara yang dihasilkan baik, langkah yang perlu dilakukan adalah: # cp realtek-linux-audiopack-4.02. tar.bz2 /usr/local/src # cd /usr/local/src # tar xlvf realtek-linuxaudiopack-4.02.tar.bz2 # cd /usr/local/src/realtek-linux-
audiopack-4.02 # ./install
Nanti akan keluar beberapa tampilan, antara lain seperti Gambar 3 dan 4. Tekan “OK” saat diberitahukan bahwa script konfigurasi akan mengkonfigurasi ALSA driver. Selanjutnya software konfigurasi akan membantu menemukan chipset audio yang digunakan. Kebetulan Axioo NS menggunakan chip terbaru dari Intel 82801G untuk High Definition Audio. Pilih chip tersebut dan tekan OK. Lihat Gambar 4. Tekan tombol ‘’Yes’’ saat ditanya apakah kita ingin supaya /etc/modprobe.d/sound atau /etc/modprobe.conf diubah saat konfigurasi snd-hna-intel. Selesai sudah proses konfigurasi, dan Anda akan memperoleh informasi sebagai berikut: Now ALSA is ready to use. For adjustment of volumes, use your favorite mixer. Have a lot of fun!
Sekarang notebook dual-core Anda dapat digunakan dengan nyaman di Linux Fedora Core 5. Onno W. Purbo [[email protected]]
Konfigurasi Wi-Fi agar berasosiasi ke Access Point yang kita inginkan, misalnya SWADAYA-JAHT, dengan menggunakan perintah iwconfig. # iwconfig eth1 essid SWADAYA-JAHT
Cek apakah sudah berasosiasi, dengan menggunakan perintah iwconfig juga. # iwconfig eth1 eth1 IEEE 802.11g ESSID:”SWADAYAJAHT” Mode:Managed Frequency:2.412 GHz Access Point: 00:02: B3:35:42:71 Bit Rate=54 Mb/s TxPower:15 dBm Retry limit:15 RTS thr:off Fragment thr:off Encryption key:off Power Management:off Link Quality=86/100 Signal level=-47 dBm
www.infolinux.web.id
INFOLINUX 08/2006
65
TUTORIAL RDIFF-BACKUP
Back-up Incremental Otomatis dengan Rdiff-Backup
K
ebutuhan akan back-up data telah menjadi prioritas sendiri dalam dunia komputasi. Salah satu aplikasi back-up berbasis software free dan open source adalah rdiff-backup, yang dapat digunakan secara lokal maupun remote melalui ssh. Back-up juga dapat dilakukan secara otomatis dan berulang kontinyu dengan program penjadwalan proses bernama cron.
Kehilangan data karena kegagalan sistem, kesalahan penghapusan data atau dari faktor lain dapat sewaktu-waktu terjadi terhadap data, baik milik pribadi, orang lain, maupun perusahaan. Jika data yang hilang atau terhapus adalah data yang tidak penting mungkin tidak begitu masalah, namun jika yang hilang adalah data orang lain ataupun data perusahaan yang sangat penting tentunya akan menjadi “sangat bermasalah”. Banyak software back-up yang dapat digunakan untuk melakukan aktivitas backup, baik yang bersifat komersial maupun yang free. Beberapa contoh adalah Amanda, Bacula, BackupEDGE dan RecoverEDGE, Arkeia, dan lain-lain (Lihat kembali InfoLINUX edisi 04/2005). Tentunya pemilihan software tersebut disesuaikan dengan kebutuhan kita sendiri apakah kita perlu untuk membeli software komersial untuk back-up, atau cukup menggunakan software yang free untuk solusi hemat namun tetap andal. “Tutorial” ini akan membahas penggunaan salah satu software back-up alternatif yang bersifat free dengan kemampuannya untuk back-up data melalui jaringan. Kemampuan back-up ini dapat dikombinasi dengan remote access melalui ssh dan backup incremental, dan tentunya isu utama yang diusung dalam tutorial ini adalah kemudahan penggunaan untuk back-up maupun untuk recovery data. Software yang dimaksud adalah rdiff-backup (http://www.nongnu. org/rdiff-backup).
66
08/2006 INFOLINUX
Rdiff-Backup Rdiff-backup adalah program yang dapat digunakan untuk melakukan aktivitas backup data dari satu direktori ke direktori yang lain, dan memungkinkan juga proses backup melalui jaringan komputer. Ide utama dari program rdiff-backup adalah mengombinasikan fitur mirroring dengan incremental back-up. Dengan rdiff-backup memungkinkan hasil back-up sama persis dengan sumber backup dan ketika dilakukan backup lagi yang di-back-up adalah perubahanperubahannya saja, tidak secara keseluruhan sehingga akan menghemat waktu dan bandwidth. Berikut ini ringkasan fitur-fitur yang ditawarkan rdiff-backup: 1. Incremental back-up. 2. Mirroring back-up. 3. Back-up local dan via jaringan. 4. Dengan kombinasi ssh proses back-uprelatif aman karena data dienkripsi. 5. Dapat mem-back-up direktori dan subdirektori, hard link, dev file, menjaga kepemilikan dan permission file, uid/gid file, waktu modifikasi, dan atribut-atribut file yang lain, seperti acl dan fork sumber. 6. Dapat beroperasi pada jaringan dengan bandwidth rendah. 7. Mudah dipergunakan.
Download Rdiff-backup Rdiff-backup adalah software free, rdiffbackup versi stabil terbaru (saat tulisan ini dibuat) adalah rilis 1.0.4 dan dapat di-download di http://savannah.nongnu.org/down-
load/rdiff-backup/rdiff-backup-1.0.4.tar.gz. Anda dapat pula men-download rdiff-backup versi binary untuk distro tertentu seperti rpm (untuk redhat dan fedora serta turunannya, mandriva atau suse), deb (untuk debian dan turunannya seperti Ubuntu, knoppix dan lain-lain) selain itu rdiff-backup tersedia juga untuk versi BSD, SUN, dan MacOS.
Kebutuhan Rdiff-Backup Agar dapat diinstal dan beroperasi dengan baik rdiff-backup memerlukan softwaresoftware berikut: 1. POSIX Operating System seperti Linux dan MacOS. 2. Python versi 2.2 atau sesudahnya. 3. librsync versi 0.9.7 atau sesudahnya. 4. ssh untuk backup via jaringan. 5. Module phyton pylibacl untuk dukungan terhadap acl (opsional). 6. Module phyton pylibattr untuk dukungan terhadap atribut-atribut file extended (opsional).
Installasi Rdiff-Backup Pada “Tutorial” ini penulis menggunakan Linux distro Ubuntu “Breezy Bagder” 5.10 untuk tujuan back-up data dan distro Fedora Core 3 untuk sumber data yang akan di-back-up (catatan: kedua komputer baik sumber maupun tujuan backup harus diinstal rdiff-backup). Cara termudah untuk instalasi rdiff-backup adalah dengan menggunakan apt-get untuk distro berbasis Debian seperti Ubuntu, dan yum jika Anda meng-
www.infolinux.web.id
TUTORIAL RDIFF-BACKUP gunakan Fedora Core. Langkah instalasinya adalah sebagai berikut: Pada komputer dengan distro Ubuntu: $ sudo apt-get install rdiffbackup
Pada komputer dengan distro Fedora: # yum install rdiff-backup
Sebelumnya Anda harus melakukan fetch update pada repository untuk masingmasing distro tersebut. Jika Anda tidak memiliki koneksi Internet setiap saat, download source rdiff-backup atau file binarinya (deb atau rpm), kemudian lakukan instalasi secara manual. Instalasi dari source: 1. Ekstrak file rdiff-backup-1.0.4.tar.gz dengan perintah: $ tar -zxf rdiff-backup1.0.4.tar.gz
2. Masuk ke direktori hasil ekstraksi kemudian jalankan perintah: $ cd rdiff-backup-1.0.4 $ su password : <masukkan password user Anda> # python setup.py install
Instalasi dari binary rpm atau deb: 1. Untuk binary rpm # rpm -ivh rdiffbackup.1.0.4.rpm
2. Untuk binary deb # dpkg -i rdiff-backup.1.0.4.deb
Back-up file lokal Contoh kasus paling sederhana dari aktivitas back-up adalah mem-back-up data dari satu direktori ke direktori yang lain dalam satu komputer, pada partisi yang sama atau pada partisi yang berbeda. Secara umum perintah untuk melakukan backup data lokal adalah sebagai berikut: rdiff-backup direktori_sumber direktori_tujuan
Berikut ini contoh perintah backup direktori data1 ke direktori data2:
tujuan belum ada, maka secara otomatis rdiffbackup akan membuat direktori tersebut. Isi file pada direktori data2 akan sama persis dengan direktori data1, namun pada direktori data2 ada tambahan direktori rdiff-backupdata yang berisikan data file increment yaitu data perubahan file yang terjadi pada direktori data1 disertai dengan log file, dan lain-lain. Jika sewaktu-waktu dilakukan perintah yang sama maka proses back-up yang dilakukan akan lebih cepat karena yang di-back-up adalah perubahan pada direktori data1 saja.
Remote back-up Selain back-up lokal, rdiff-backup juga mendukung back-up via jaringan, misalnya untuk mem-back-up data yang ada di file server ke komputer lain yang dikhususkan untuk back-up data dalam satu jaringan. Secara umum perintah untuk back-up data via jaringan adalah sebagai berikut: Perintah untuk mem-back-up direktori lokal dengan tujuan back-up adalah komputer lain dalam suatu jaringan. rdiff-backup /direktori/lokal nama_host::/direktori/remote
Perintah untuk mem-back-up direktori dari komputer lain dalam suatu jaringan dengan tujuan back-up adalah direktori pada komputer lokal. rdiff-backup nama_host::/ direktori/remote /direktori/ lokal
Dengan rdiff backup dimungkinkan juga melakukan back-up di mana sumber dan tujuan backup berada pada komputer yang berbeda dalam suatu jaringan. rdiff-backup nama_host_1::/ direktori/remote_1 nama_host_ 2::/direktori/remote_2
Catatan: agar mendukung back-up secara remote, rdiff-backup memerlukan ssh untuk koneksi antarkomputer sumber dan tujuan back-up. Contoh penggunaan perintah remote backup:
$ rdiff-backup data1 data2
$ rdiff-backup abubakar.mary. com::/home/edp /home/backup/edp
Perintah tersebut akan mem-back-up direktori data1 ke direktori data2. Jika direktori
Perintah tersebut akan mem-back-up direktori /home/edp pada remote host kom-
www.infolinux.web.id
puter dengan nama abubakar.mary.com ke direktori komputer lokal pada path /home/ edp/backup/edp. Ketika dilakukan backup tersebut, Anda akan ditanya password untuk melakukan koneksi via ssh.
Pemilihan file dengan opsi include dan exclude Adakalanya Anda melakukan back-up suatu direktori dengan tidak menyertakan subdirektori tertentu, atau Anda mem-back-up suatu sistem secara penuh dengan tanpa menyertakan file-file yang tidak perlu untuk di-back-up. Sebagai contoh Anda akan mem-back-up direktori / pada suatu sistem tapi tanpa menyertakan subdirektori /tmp, /dev dan /proc yang mungkin tidak perlu untuk dibackup. Untuk kasus tersebut terdapat opsi—nclude dan—exclude yang dapat digunakan. Berikut ini contoh-contoh penggunaan dari kedua opsi tersebut: $ rdiff-backup --exclude /tmp --exclude /dev --exclude /proc utsman.mary.com:/ /home/backup/ utsman
Perintah di bawah ini akan melakukan backup direktori /home pada host abubakar. mary.com dengan menyertakan direktori /home/Documents_EDP/data tapi tidak menyertakan direktori /home/Documents_ EDP, /homeICRAM, dan /home/wiyana ke direktori tujuan /home/edp/backup/abubakar pada komputer lokal. $ rdiff-backup -- include /home/ Documents_EDP/data --exclude /home/Documents_EDP --exclude /home/ICRAM --exclude /home/wiyana abubakar.mary.com:/home/ /home/ backup/abubakar
Otomatisasi back-up Proses back-up secara manual bisa saja dilakukan jika frekuensi back-up tidak sering dan Anda punya banyak waktu untuk melakukannya. Namun jika proses back-up harus secara rutin dilakukan dan berkala misalnya back-up data di perusahaan yang dilakukan tiap hari jam 17.01 setelah karyawan pulang kantor, masihkah Anda (dalam hal ini Anda dipercaya sebagai penanggung jawab backup di kantor) punya waktu dan bersedia tiap hari melakukan back-up secara manual? Bagaimana kalau Anda sedang keluar kota
INFOLINUX 08/2006
67
TUTORIAL RDIFF-BACKUP untuk urusan lain, apakah Anda harus datang ke kantor jam 17.01 hanya untuk melakukan back-up? Pasti Anda tidak mau dipusingkan dan direpotkan dengan urusan seperti itu apalagi jadwal Anda sangat padat. Oleh karena itu, proses otomatisasi back-up perlu dilakukan, Yup...cron adalah salah satu jawabannya untuk otomatisasi terjadwal. Namun harap diperhatikan rdiff-backup menggunakan ssh untuk koneksi antarkomputer yang akan memerlukan password untuk tiap kali memulai koneksi. Sampai di sini masih terdapat kendala, misalkan kita masukkan perintah remote backup dengan rdiff-backup seperti contoh di atas pada crontab, masih saja diperlukan campur tangan manusia dalam memasukkan password untuk koneksi ssh. Tapi jangan berputus asa, masih ada cara untuk menyiasati hal tersebut. Solusinya adalah penggunaan public key dengan ssh. Berikut ini akan dijelaskan langkah demi langkah bagaimana pembuatan public key dengan ssh dan pengaturannya dengan rdiff-backup dan cron agar dapat berjalan secara otomatis.
Asumsi Penulis menggunakan dua komputer, yaitu file server dengan distro Fedora Core 3 yang selanjutnya disebut abubakar.mary.com sebagai sumber data yang akan di-backup dan komputer back-up dengan distro Ubuntu 5.10 yang selanjutnya disebut backup.mary. com sebagai tujuan back-up data. Langkah 1: Buat key pada host backup. mary.com Sebelumnya buat user dan group untuk melakukan back-up dalam contoh ini user yang digunakan adalah edp: $ sudo groupadd -g 1000 edp $ sudo useradd -u 1000 -d /home/ backup -s /bin/false -m -c “User Backup” -g edp edp $ sudo mkdir /home/backup $ sudo chown edp.edp /home/backup
Sesuaikan perintah di atas dengan kebutuhan Anda. Untuk lebih jelasnya mengenai perintah groupadd dan useradd, lihat man groupadd dan useradd. Kemudian jalankan perintah: $ sudo su -m edp
68
08/2006 INFOLINUX
$ cd /home/backup $ ssh-keygen -t rsa
Tempat penyimpanan key secara default di /home/backup/.ssh/id_rsa. Pada pertanyaan setelah menjalankan perintah di atas Anda tinggal tekan enter saja, kecuali Anda akan mengubah tempat penyimpanan key. Jika Anda ditanya tentang passphrase, kosongi saja dan kemudian tekan enter. Jangan memasukkan passphrase apapun atau nantinya backup otomatis tidak bisa berjalan, kecuali ada campur tangan manusia untuk memasukkan passphrase. Langkah selanjutnya adalah membuat file /home/backup/.ssh/config dengan langkah sebagai berikut: $ vi .ssh/config
Kemudian tekan tombol i atau insert untuk memasuki mode edit pada editor vi, lalu tuliskan baris-baris berikut ini: host server_mary hostname abubakar.mary.com user root identityfile /home/backup/.ssh/ id_rsa compression yes cipher blowfish protocol 2
Langkah 2: Edit public key pada host abubakar.mary.com Login sebagai root pada host abubakar. mary.com, kemudian tambahkan baris berikut pada file /root/.ssh/authorized_keys pada awal baris yang sudah ada sehingga menjadi: command=”rdiff-backup -server –restrict-read-only /”,from=”backup.mary.com”,no-portforwarding,no-X11-forwarding,nopty ssh-rsa AAAAB3Nza[...]W1go9M= edp@backup
Penting: Penambahan baris yang dicetak tebal di atas harus satu baris dengan baris yang sudah ada pada file authorized_keys (baris yang diawali dengan ssh-rsa ...) dan dipisahkan dengan spasi. Kemudian jalankan perintah berikut: # chmod -R go-rwx /root/.ssh
Pastikan pada file /etc/ssh/sshd_config terdapat baris berikut ini: RSAAuthentication yes PubkeyAuthentication yes
Kemudian restart ssh daemon dengan perintah: # /etc/init.d/ssh restart
Setelah selesai penulisan kemudian tekan tombol Esc diikuti dengan tombol : wq untuk menyimpan dan keluar dari editor vi. Nilai setelah baris host digunakan untuk memulai backup nantinya. Nilai ini dapat diisi sembarang sebagai pengidentifikasi saat back-up. Kemudian jalankan perintah untuk mengubah permisi dari file tersebut: $ chmod -R go-rwx /home/backup/. ssh
Copy-kan public key yang baru saja dibuat ke abubakar.mary.com $ ssh-copy-id -i /home/backup/. ssh/id_rsa.pub [email protected]. com
Masukkan password root dari host abubakar.mary.com, selanjutnya dengan perintah ini maka akan dilakukan pengcopyan public key dari user edp ke file /root/.ssh/ authorized_keys pada komputer abubakar. mary.com.
Langkah 3: Test back-up dari backup. mary.com Lakukan pengujian backup dari host backup.mary.com, dengan perintah: $ rdiff-backup server_mary::/home/ edp /home/backup/edp
Perhatikan setelah perintah rdiffbackup terdapat string server_mary, yaitu string yang kita tambahkan setelah baris host pada file /home/backup/.ssh/config. Jika dengan perintah ini rdiff-backup dapat berjalan dengan terbentuknya copy-an data pada direktori /home/backup/edp pada komputer backup.mary.com tanpa meminta password, maka Anda telah berhasil mensiasati kendala untuk proses back-up otomatis. Langkah 4: Konfigurasi cron Buat script sederhana untuk menjalankan rdiff-backup dengan tujuan agar lebih mudah mengelola jika terdapat penambahan
www.infolinux.web.id
TUTORIAL RDIFF-BACKUP atau pengurangan file-file yang dibackup. Gunakan editor vi. Jalankan perintah berikut: $ mkdir /home/scripts $ sudo chown edp.edp /home/scripts $ vi /home/scripts/backup_ abubakar.sh
Tambahkan baris berikut: #!/bin/sh rdiff-backup --exclude /home/ info_edp --exclude /home/tmp_file --exclude /home/icram server_ mary::/home/ /home/backup/abubakar rdiff-backup server_mary::/etc/ /home/backup/etc_abubakar
Setelah pembuatan script selesai kemudian jalankan perintah: $ chmod -R go-rwx /home/scripts/ backup_abubakar.sh
Langkah selanjutnya adalah pembuatan cron job, dengan perintah: $ crontab -e
Tambahkan baris berikut ini pada editor yang yang muncul: 1 17 * * * /home/scripts/backup_ abubakar.sh
Baris di atas akan menjalankan script backup_abubakar.sh tiap hari pada jam 17:01. Sampai di sini backup otomatis dengan rdiff-backup selesai dibuat.
Restore file Restore file merupakan salah satu isu utama yang perlu diperhatikan untuk software back-up. Apa guna software backup jika tidak bisa melakukan restore file? Dengan rdiff-backup proses restore file dapat dilakukan dengan mudah. Secara umum perintah untuk restore file dengan rdiffbackup adalah sebagai berikut:
rdiff-backup -l /home/backup Found 3 increments: increments.2006-0220T17:01:00Z.dir Mon Feb 17:01:00 2006 increments.2005-0221T17:01:00Z.dir Tue Feb 17:01:00 2006 Current mirror: Wed Feb 22 17:01:00 2006
20
21
Terdapat 3 increament, backup terakhir adalah tanggal 22 Februari 2006, namun terdapat juga back-up pada tanggal 20 dan 21 Februari 2006. Sebagai contoh, melakukan restore file ke host abubakar.mary.com: rdiff-backup -r now /home/backup/ rekam_medis/record_pasien_0206.ods abubakar.mary.com::/home/rekam_ medis/record_pasien_0206.ods
Perintah di atas akan me-restore file record_pasien_0206.ods pada direktori /home/backup/rekam_medis ke direktori /home/rekam_medis pada file server, dengan waktu yang digunakan adalah saat ini (now). Perintah di bawah ini adalah melakukan restore file dua hari yang lalu, rdiff-backup -r 2D /home/backup/ jasa_medis/jasa_ambulance.ods abubakar.mary.com::/home/jasa_ medis/jasa_ambulance.ods
Meskipun rdiff-backup meng-copy hanya perubahan file saja, tapi penyimpanan file-file incremental pada direktori tujuan backup dapat menghabiskan ruang harddisk. Oleh karena itu, perlu dilakukan pembersihan filefile lama yang sekiranya sudah tidak berguna lagi opsi yang dapat digunakan adalah—remove-older-than diikuti dengan waktu dan direktori back-up. Sebagai contoh: rdiff-backup --remove-older-than 3D /home/backup
Setelah perintah ini dijalankan, maka file yang dihapus lebih dari atau sama dengan tiga hari yang lalu tidak dapat dikembalikan lagi, karena file increment sudah dihapus melalui perintah ini.
Penutup Perintah dan opsi yang lebih lengkap rdiffbackup dapat Anda lihat di manual programnya atau pada contoh penggunaan perintah yang disertakan di website atau di direktori source program rdiff-backup. Rdiff-backup dapat dijadikan software alternatif untuk backup dengan kemudahan pemakaian dan perintah yang digunakan. Catatan: Program back-up dengan rdiffbackup ini sudah diimplementasikan dan diuji di lingkungan Rumah Sakit Mary Cileungsi Hijau, selama lebih kurang tiga bulan. Selama ini dapat berjalan dengan baik dan tidak terdapat kendala yang berarti. Sri Wiyana [[email protected]]
Perintah berikut ini me-restore file pada tanggal tertentu: rdiff-backup -r 20-02-2006 /home/ backup/jasa_medis/jasa_kamar.ods abubakar.mary.com::/home/jasa_ medis/jasa_kamar.ods
Untuk me-restore direktori dapat digunakan perintah berikut ini: rdiff-backup -r 21-02-2006 /home/ backup/Humas/ abubakar.mary. com::/home/Humas/recovery_21022006
rdiff-backup -r (waktu) / direktori/backup/nama_file / direktori/restore/nama_file
Anda dapat pula me-restore file incremental dengan perintah berikut:
Sebelum merestore file ada baiknya Anda melihat list file increment yang ada pada direktori back-up dengan perintah:
rdiff-backup /home/backup/rdiffbackup-data/increments/file.200620-06T17:01:00-19:00.diff.gz abubakar.mary.com::/home/recovery
www.infolinux.web.id
Menghapus file lama
INFOLINUX 08/2006
69
TUTORIAL FESTIVAL
Text to Speech dengan Festival
F
asilitas text to speech dapat membantu kita dalam banyak hal. Mulai dari belajar bahasa, belajar Linux, peningkatan aksesibilitas, sampai pengaturan sistem. Fasilitas text to speech ini bisa ditemukan dengan mudah di Linux. Salah satunya adalah Festival, yang dapat kita gunakan dengan gratis.
Festival adalah salah satu program text to speech populer yang dapat berjalan pada berbagai platform. Festival menawarkan diri sebagai framework umum untuk membangun speech systhesis system. Program ini dibangun oleh Alan W. Black (Carnegie Mellon), Rob Clark (University of Edinburgh) dan tim. Festival dapat di-download di http://www.cstr.ed.ac.uk/projects/festival/, walaupun, cukup banyak pembuat distribusi Linux yang telah memaketkan festival ke dalam produknya. Saat tulisan ini dibuat, Festival telah mencapai versi 2.0 beta. Banyak hal yang bisa kita lakukan dengan text to speech seperti disebutkan sebelumnya. Di tulisan ini, kita akan melihat bagaimana Festival bisa membantu kita membacakan teks, untuk: Membantu kita belajar mendengarkan dalam bahasa inggris (yang mana dapat digunakan pula untuk membacakan berbagai ebook berbahasa Inggris untuk kita). Membacakan pesan dari instant messenger.
The following extra packages will be installed: festlex-cmu festlexposlex festvox-kallpc16k libestools1.2c102 The following NEW packages will be installed: festival festlex-cmu festlexposlex festvox-kallpc16k libestools1.2c102 0 upgraded, 5 newly installed, 0
to remove and 0 not upgraded. Need to get 0B/7543kB of archives. After unpacking 20.5MB of additional disk space will be used. Do you want to continue? [Y/n]
Mode TTS (Text To Speech) Setelah Festival terinstal, kita dapat menjalankan festival dalam mode TTS untuk meminta festival membacakan teks untuk
Tutorial singkat ini ditulis di atas Debian GNU/Linux 3.1 (yang mana telah datang dengan Festival versi 1.4.3), namun seharusnya dapat diterapkan pada sistem lain. Pada sistem Debian GNU/Linux, instalasi Festival dapat dilakukan dengan perintah: # apt-get install festival Reading Package Lists... Done Building Dependency Tree... Done
70
08/2006 INFOLINUX
Website Festival.
www.infolinux.web.id
TUTORIAL FESTIVAL file, untuk dapat dieksekusi nantinya. Dengan cara seperti ini, kita bisa membangun solusi custom berbasis Festival. Sebagai contoh, simpanlah dua baris perintah berikut di dalam file test.scm:
kita. Untuk itu, jalankanlah festival dengan opsi –tts. Sebagai contoh, kita memiliki file test. txt dengan isi berikut ini:
you today?”) # festival>
Festival is a general purpose text-to-speech system.
Intro Membacakan pesan perkenalan Festival Contoh:
(SayText “Hello, how are you?”)
As well as simply rendering text as speech it can be used in an interactive command mode for testing and developing various aspects of speech synthesis technology.
festival> (intro) nil festival>
(quit)
Untuk membaca teks tersebut, berikanlah perintah berikut: $ festival --tts test.txt
voice.list Menampilkan suara yang terinstal. festival> (voice.list) Contoh: (kal_diphone) festival>
Pada mode TTS ini, festival juga dapat menerima input dari stdin. Berikut ini adalah contoh perintahnya:
Tts
$ echo “Hello, how are you today?” | festival –tts
festival> (tts “test.txt” nil)
Mode command Festival dapat berjalan pada dua mode: TTS dan command. Mode TTS, seperti pada dibahas sebelumnya, input akan di-render sebagai speech. Pada mode command, input akan diterjemahkan dan dievaluasi oleh command interpreter. Mode command utamanya digunakan untuk pengujian atau digunakan untuk membangun solusi custom berbasiskan festival. Kita akan membahas beberapa perintah yang dapat digunakan untuk bekerja pada mode command. Untuk memasuki mode command, jalankanlah festival tanpa argumen apapun:
Membaca dari file. Contoh:
nil festival>
Quit Keluar dari command interpreter. Perintahperintah tersebut bisa kita simpan dalam
File tersebut dapat dievaluasi dengan memanggil command interpreter festival dengan parameter berupa nama file tersebut: $ festival test.scm
Bahasa yang digunakan adalah bahasa Scheme. Terdapat cukup banyak perintah, baik yang datang dari Festival, ataupun builtin dari scheme, yang dapat digunakan untuk membangun solusi custom.
Menyimpan speech ke file WAV Untuk menyimpan speech festival ke file WAV, gunakanlah program text2wave yang datang bersama distribusi festival. Sebagai contoh, kita akan meminta festival untuk menyimpan speech file test.txt ke file test.wav: $ text2wave -o test.wav
test.txt
$ festival Festival Speech Synthesis System 1.4.3:release Jan 2003 Copyright (C) University of Edinburgh, 1996-2003. All rights reserved. For details type `(festival_ warranty)’ festival>
SayText Perintah pertama yang akan kita bahas adalah SayText. Perintah ini dapat digunakan untuk merender teks menjadi speech. Berikut ini adalah contoh penggunaannya: festival> (SayText “Hello, how are
www.infolinux.web.id
INFOLINUX 08/2006
71
TUTORIAL FESTIVAL festival-gaim.sourceforge.net/, kemudian kompilasi dan installah Festival-GAIM ke tempat yang dapat ditemukan oleh GAIM sebagai plugin (penulis menginstal plugin ini ke gaim/lib/). Bukalah GAIM, kemudian pilihlah Preferences. Pada bagian Plugins, berikan tanda centang pada plugin Festival. Untuk pengaturan lebih lanjut, jalankanlah GAIM dan akseslah Preferences|Plugi ns|Festival.
Plugin festival untuk GAIM.
File WAV yang dihasilkan kemudian dapat dikonversi ke format lain menggunakan berbagai konverter audio yang tersedia. Sebagai contoh, penulis menggunakan program sox untuk mengonversi test.wav ke test.ogg. $ sox test.wav test.ogg
bacakan instant message GAIM. Caranya adalah: Siapkan instalasi GAIM yang telah berfungsi penuh (penulis menggunakan GAIM 1.5.0). GAIM yang penulis gunakan dikompilasi dari source code. Download-lah Festival-GAIM dari http://
Festival-gaim adalah plugin GAIM yang ditujukan untuk menambah kenikmatan kita berkomunikasi instan dengan GAIM dengan meng-interface program festival. Festival-gaim akan melakukan piping pesan instan yang diterima ke Festival, dan dalam waktu singkat, bentuk suara dari pesan yang diterima akan terdengar. Sampai pada versi 1.1 (dirilis 25 Januari 2005) yang digunakan dalam tulisan ini, bahasa yang didukung adalah bahasa Inggris, Spanyol, dan Portugis. Apabila plugin telah diaktifkan, secara otomatis, pesan akan dibacakan untuk kita. Menarik, bukan? Penulis sangat menikmati fasilitas yang satu ini. Sampai di sini dulu pembahasan kita. Selamat mencoba! Noprianto [[email protected]]
Dengan memanfaatkan text2wave, berbagai text dari ebook yang tersedia bisa disimpan ke file WAV dan akan menjadi buku bersuara. File yang dihasilkan, ketika dikonversi ke format MP3 misalnya, dapat dibawa bersama MP3 player portable yang dapat kita bawa ke mana-mana.
Membesarkan volume suara Festival Apabila Festival bersuara cukup pelan, kita bisa membesarkan volume suaranya dengan cara berikut. Untuk suara kal_diphone, editlah file /usr/share/festival/voices/english/kal_diphone/festvox/kal_diphone.scm, kemudian gantilah baris berikut: (utt.wave.rescale utt 2.6)))
menjadi (utt.wave.rescale utt 1 t)))
Plugin untuk GAIM Festival dapat pula digunakan untuk mem-
72
08/2006 INFOLINUX
Konfigurasi plugin Festival GAIM.
www.infolinux.web.id
TUTORIAL UBUNTU
Tip dan Trik Ubuntu 6.06 (Dapper Drake)
U
buntu kini menjadi distro Linux paling populer bagi banyak pengguna yang baru mencoba Linux. Ubuntu sangat mudah diinstal, mudah digunakan, dan dapat digunakan untuk bekerja. Untuk lebih memaksimalkan penggunaan Ubuntu, kali ini InfoLINUX akan menjelaskan beberapa tip dan trik pada distro Ubuntu.
Pada bonus DVD majalah InfoLINUX edisi ini, disertakan distro Ubuntu 6.06 (Dapper Drake) sebagai pilihan bonus distronya. Saat ini, distro Ubuntu banyak digunakan oleh para pengguna Linux karena alasan kemudahannya. Pada rilis terbarunya ini, Ubuntu 6.06 (Dapper Drake) dibagi menjadi dua versi, yaitu Ubuntu versi dekstop dan Ubuntu versi server. Sebagai distro yang memegang teguh prinsip FSF (Free Software Foundation), Ubuntu hanya memaketkan paket aplikasi free software di dalam distronya. Karena itulah, terkadang Ubuntu tidak dapat menjalankan format suatu file, dikarenakan keformat pembuka file tersebut merupakan format proprietary yang tidak disertakan oleh pihak Ubuntu. Ketika menemukan permasalahan tersebut, Anda tidak perlu memikirkan untuk mengganti distro Ubuntu yang baru saja Anda install dengan distro lain. Pada situs dokumentasi Ubuntu, sudah terdapat beberapa pemecahan masalah yang berkenaan dengan format proprietary seperti, plugins mp3, codec DVD, plugin Flash, dan beberapa yang lainnya. Pada tutorial ini, InfoLINUX akan menjelaskan beberapa tip dan trik yang dapat berguna bagi para pembaca InfoLINUX yang baru saja menginstallasi Ubuntu 6.06 (Dapper Drake) versi desktop di dalam komputernya. Dengan ini diharapkan penggunaan desktop Ubuntu akan semakin menarik untuk Anda gunakan.
www.infolinux.web.id
Beberapa Tip & Trik Ubuntu Dibawah ini terdapat beberapa tip yang dapat digunakan oleh para pengguna Ubuntu. Hanya saja untuk menjalankan berbagai macam tip yang dijabarkan di bawah ini, Anda harus terkoneksi ke jaringan Internet terlebih dahulu. Hal ini bertujuan untuk mengambil paket-paket yang akan diinstal, pada repository Ubuntu yang akan kita gunakan. Untuk itu, diasumsikan saat ini Anda sudah terkoneksi ke Internet saat mengikuti langkah-langkah dalam pembahasan ini.
positori yang diperlukan terlebih dahulu di Ubuntu. Ada dua cara yang dapat Anda gunakan untuk menambah repositori di Ubuntu. Pertama lewat command line, dan kedua melalui aplikasi Software Preferences. Melalui perintah command line Untuk melakukan hal ini, buka terlebih dahulu aplikasi Terminal yang terdapat pada menu Applications -> Accessories -> Terminal. Setelah itu, edit file /etc/apt/ sources.list. $ sudo vim /etc/apt/sources.list
1. Menambah repositori di Ubuntu Sebelum melakukan instalasi paket yang diperlukan, kita perlu menambahkan re-
Hilangkan tanda (#), pada repository universe dan repositori backport yang
Cukup gunakan Software Preferences untuk memilih repository Ubuntu yang ingin Anda gunakan.
INFOLINUX 08/2006
73
TUTORIAL UBUNTU terdapat pada file sources.list tersebut. # deb http://au.archive.ubuntu. com/ubuntu/ dapper universe # deb http://au.archive.ubuntu. com/ubuntu/ dapper-backports main restricted universe multiverse # deb http://security.ubuntu. com/ubuntu dapper-security universe
menjadi : deb http://au.archive.ubuntu. com/ubuntu/ dapper universe deb http://au.archive.ubuntu. com/ubuntu/ dapper-backports main restricted universe multiverse deb http://security.ubuntu.com/ ubuntu dapper-security universe
Setelah itu, update database list-nya dengan perintah apt-get update. $ sudo apt-get update
Melalui aplikasi Software Preferences Selain dari command line, ada cara yang lebih mudah dengan menggunakan tool Software Preferences. Caranya, jalankan tersebut dari menu System -> Administration -> Software Properties. Setelah tampil halaman Software Preferences, check pilihan repositori berikut : Ubuntu 6.06 LTS (binary) Community maintenained (Universe) Ubuntu 6.06 Backports (binary) Officially supported Restricted copyright Community maintenained (Universe) Non-free (Multiverse) Ubuntu 6.06 LTS Security Updates (binary) Community maintenained (Universe) Setelah itu klik tombol Close, maka sistem akan langsung meng-update database aplikasi yang terdapat pada repository tersebut. Menambahkan repository lain Selain dari repository default yang telah terdapat pada file sources.list, kita juga perlu menambahkan sebuah repository yang ada di http://mirror3.ubuntulinux.
74
08/2006 INFOLINUX
Menambah suatu repository lain yang tidak terdapat dalam daftar repository Ubuntu.
nl, ke dalam daftar repositori, untuk dapat menginstal paket-paket multimedia. Caranya, tambahkan baris berikut pada file /etc/apt/sources.list. deb http://mirror3.ubuntulinux. nl/ dapper-seveas freenx
Instalasi plugins MP3 Bermain komputer akan terasa hambar tanpa mendengarkan MP3. Untuk dapat menjalankan format MP3 di Ubuntu, Anda dapat menginstalasi paket gstreamer0.10-plugins-ugly. Jalankan perintah di bawah ini dari Terminal.
Berikutnya, import file gpg dari repository tersebut dan lakukan update daftar paket.
$ sudo apt-get install gstreamer0.10-plugins-ugly
$ wget http://mirror3. ubuntulinux.nl/1135D466.gpg -O- | sudo apt-key add $ sudo apt-get update
Setelah itu, Anda dapat mengujinya dengan menjalankan salah satu file MP3 yang Anda miliki dengan aplikasi Rhytmbox Music Player maupun XMMS.
2. Instalasi beragam aplikasi multimedia Secara default, Ubuntu hanya menyertakan aplikasi berbasiskan free software. Hal ini berdampak tidak disertakannya beberapa format multimedia dalam distronya, seperti MP3, DVD, dan sebagainya. Hal ini jelas membuat penggunaan Ubuntu menjadi tidak nyaman. Namun Ubuntu memiliki alasan yang baik untuk tidak memberikan dukungan untuk format proprietary. Selain berkaitan dengan dengan masalah legal, hal ini dilakukan untuk menghindari terjadinya beberapa permasalahan berupa bugs atau celah keamanan yang mungkin terjadi. Jika Anda pengguna biasa yang tidak terlalu peduli dengan masalah keamanan, Anda tidak perlu khawatir akan hal itu. Di bawah ini terdapat beberapa langkah untuk mengatasi permasalahan beberapa keterbatasan format multimedia di Ubuntu.
Menambah plugins Windows Codecs (w32codecs) Untuk dapat memutar file video yang berformat WMV, RealMedia dan lainnya, kita harus menginstalasikan paket w32codecs terlebih dahulu di Ubuntu. Caranya, download terlebih dahulu paket w32codec yang terdapat di http:// www.debian-multimedia.org/pool/main/ w/w32codecs. $ wget -c http://www.debianmultimedia.org/pool/main/w/ w32codecs/w32codecs_200606110.0_i386.deb $ sudo dpkg -i w32codecs_ 20060611-0.0_i386.deb
Setelah terinstalasi, sekarang kita sudah memiliki beragam codec multimedia yang terdapat di Windows.
www.infolinux.web.id
TUTORIAL UBUNTU Menjalankan film DVD Setelah menginstalasi plugins Windows Codecs, berikutnya kita akan menginstalasi totem-xine. Secara default, totem menggunakan totem-gstreamer sebagai framework mutimedianya. Sayangnya, beberapa format video tidak dapat dibuka dengan baik menggunakan totem-gstreamer. Untuk itu, kita akan mengganti framework-nya dengan totem-xine. Installasikan paket totem-xine dengan menjalankan perintah berikut: $ sudo apt-get install totemxine
Setelah terinstalasi, sekarang kita dapat menonton beragam format video dengan menggunakan totem. Alternatif lain dari totem, Anda dapat menggunakan video player xine atau gxine. Untuk menginstalasi gxine player, jalankan perintah berikut: $ sudo apt-get install gxine
Menjalankan format Real Media Pada saat browsing ke suatu situs tertentu yang menyediakan format Real Player, Anda dapat tetap dapat membukanya di Ubuntu. Sebagai solusinya, Anda dapat menginstalasikan paket Helix Player di sistem Ubuntu. $ sudo apt-get install helixplayer
Agar browser Mozilla Firefox dapat secara otomatis menjalankan format RealPlayer dari browser, instalasikan juga paket mozilla-helix-player.
belum, pada url browser Mozilla Firefox anda, cukup ketikkan about:plugins. Menginstalasi Aplikasi CD/DVD Burning K3B Secara default, Ubuntu belum menyediakan aplikasi K3B yang dapat kita gunakan untuk memburning CD/DVD. Untuk menginstalasi K3B, jalankan perintah dibawah ini dari Terminal. $ sudo apt-get install k3b
3. Instalasi Nvidia Driver Jika komputer Anda menggunakan graphic card Nvidia, biasanya Ubuntu hanya menggunakan driver Nvidia generic dari X.Org, sehingga tidak memiliki fitur 3D yang optimal. Akibatnya untuk menjalankan game yang membutuhkan fitur 3D, tampilan gambarnya nampak agak patah. Untuk mengatasinya, Anda dapat menginstalasikan driver Nvidia pada sistem Ubuntu. Ketikkan perintah dibawah ini untuk mulai menginstalasi driver Nvida. Pindah ke terminal 1, dengan menekan tombol Ctrl+Alt+F1. Setelah login, ketikkan perintah berikut untuk mematikan X, kemudian memulai instalasi. $ sudo init 3 $ sudo apt-get install nvidia-glx nvidia-kernel-common $ sudo nvidia-glx-config enable
Untuk melihat apakah Nvidia driver sudah terinstalasi dengan baik atau belum di-
sistem Anda, coba lihat apakah logo Nvidia akan muncul setelah Anda mengetikkan perintah dibawah ini untuk masuk kembali ke lingkungan X. $ sudo init 5
4. Mengubah default aplikasi. Ubuntu datang dengan sejumlah aplikasi default yang mungkin sesuai atau tidak sesuai dengan keinginan Anda. Sebagai contoh, aplikasi teks editor di Ubuntu secara default menggunakan nano, yang mungkin tidak optimal jika Anda terbiasa menggunakan editor vim. Cara termudah untuk merubah default aplikasi tersebut adalah dengan menggunakan program update-alternatives, yang memaintanance symbolic links di dalam / etc/alternatives. Dalam file tersebut, berisi konfigurasi aplikasi default yang akan digunakan pada suatu sistem Ubuntu. Sebagai latihan, kita akan merubah default editor di Ubuntu dari nano menjadi vim. Untuk itu, jalankan perintah berikut dari Terminal. $ sudo update-alternatives -config editor There are 3 alternatives which provide `editor’. Selection Alternative ----------------------------1 /usr/bin/vim 2 /bin/ed *+ 3 /bin/nano
$ sudo apt-get install mozillahelix-player
Menginstal plugin Flash di Firefox. Saat browsing menggunakan Mozilla Firefox di Ubuntu, terkadang kita akan menemukan suatu situs yang menggunakan animasi Flash tidak dapat ditampilkan dengan baik di Ubuntu. Supaya Mozilla Firefox dapat menjalankan situs yang mengandung content Flash, cukup kita instalasikan paket libflash-mozplugin. $ sudo apt-get install libflashmozplugin
Untuk mengecek apakah plugins tersebut sudah dapat terinstalasi dengan baik atau
www.infolinux.web.id
Menonton trailer film menggunakan Totem movie player.
INFOLINUX 08/2006
75
TUTORIAL UBUNTU Press enter to keep the default[*], or type selection number: 1 Using `/usr/bin/vim’ to provide `editor’.
Sekarang default editor Anda sudah berubah dari nano menjadi vim.
5. Manajemen paket di Ubuntu Gunakan aplikasi manajemen paket seperti Synaptic, Adept, Automatix, Easy Ubuntu, GDebi, maupun yang lainnya untuk mempermudah manajemen paket instalasi di Ubuntu. Secara default, Ubuntu sudah menyertakan synaptic, apt-get, dan adept sebagai aplikasi paket manajemennya. Paket manajemen berbasis grafis ini, sudah lebih dari cukup untuk melakukan berbagai instalasi software di Ubuntu. Namun jika tetap ingin menggunakan perintah command line, Anda dapat menggunakan perintah dpkg atau apt-get. Cukup jalankan perintah berikut untuk melakukan instalasi: $ sudo dpkg -i <packagename.deb>
atau $ sudo apt-get install <packagename>
6. Sudo dan gksudo Berbeda dengan distro kebanyakan, Ubuntu tidak datang dengan set up root user untuk
Memberikan akses ke suatu user agar dapat menjalankan perintah sudo.
administrasi sistemnya. User root tetap ada, hanya saja menggunakan password yang random. Sebagai gantinya, Ubuntu menggunakan sudo dan gksudo untuk memanajemen tugas yang harus dilakukan oleh user root. Jika Anda tetap ingin login sebagai user root, cukup ketikkan perintah berikut dari terminal: $ sudo su -
Setelah masuk sebagai login root, Anda dapat memberikan default password untuk user root dengan menggunakan perintah passwd: # passwd
7. Menambah user ke sudo. Ketika men-setup Ubuntu, secara otomatis akan ditambahkan user pertama ke dalam group sudo, yang membolehkan user tersebut dapat melakukan perubahan seperti yang boleh dilakukan oleh user root. Jika Anda ingin menambah user lainnya ke dalam group sudo, Anda dapat memanfaatkan perintah usermod -G admin username. Misal kita ingin menambahkan user bernama supriyanto ke dalam group sudo, cukup jalankan perintah berikut: $ sudo usermod -G admin supriyanto
Atau dari lingkungan GUI, klik System > Administration -> Users and Group. Pilih user yang ingin Anda tambahkan ke sudo, dan klik Properties. Di dalam User privileges tab, check box yang bertuliskan “Executing system administration task”, maka user tersebut akan ditambahkan ke dalam group sudo.
8. Menambah sebuah desktop baru
Beberapa tambahan plugins yang sudah terinstalasi di Mozilla Firefox.
76
08/2006 INFOLINUX
Distro Ubuntu hadir dengan desktop GNOME yang begitu indah. Namun banyak pengguna Ubuntu yang juga ingin menginstallasi windows manager lain seperti KDE dan XFCE ke dalam sistem Ubuntu-nya. Untuk menginstalasi kedua windows manager tersebut caranya sangat mudah. Cukup ketikkan baris perintah di bawah ini dari terminal. Perintah untuk menginstal desktop Kubuntu:
www.infolinux.web.id
TUTORIAL UBUNTU $ sudo apt-get install kubuntudesktop
Perintah untuk menginstal desktop Xubuntu. $ sudo apt-get install xubuntudesktop
Setelah mengetikkan perintah di atas, maka dalam beberapa menit, sistem Ubuntu Anda sudah memiliki windows manager KDE dan XFCE. Pilih dari menu GDM untuk berpindah antar-windows manager tersebut.
9. Konfigurasi X.org
menu System -> Administration -> Login Window. Pada halaman Login Window Preferences, pilih tab Security dan check pilihan Enable Automatic Login.
dah manajemen paket yang akan Anda install. Pertama instalasi check-install terlebih dahulu.
11. Kompilasi paket dari source
Pada instalasi paket source, biasanya Anda cukup menjalankan perintah ./configure; make dan make install. Setelah langkah pada proses make berhasil, jangan jalankan perintah make install. Gunakan perintah checkinstall untuk membuat paket tersebut menjadi paket binary dalam bentuk Deb.
Terkadang ada saja suatu paket yang ingin Anda instal tidak terdapat pada repositori Ubuntu. Entah paket tersebut merupakan paket dengan versi terbaru, maupun memang paket tersebut memang belum terdapat paket Deb-nya. Untuk mengatasinya, Anda dapat menginstalasi dari paket source. Jika ingin menginstalasi paket dari source, Anda dapat menggunakan beberapa langkah dibawah ini. Jalankan perintah di bawah ini untuk menginstalasi paket GCC, linux kernel header, GNU Make, dan beberapa paket lainnya yang dibutuhkan.
Terkadang Ubuntu tidak dapat mendeteksi secara baik konfigurasi video card dan monitor yang Anda miliki secara baik. Kemungkinan ini bisa disebabkan karena Anda baru saja mengganti monitor atau mengganti video card setelah menginstalasi Ubuntu. Jika hal ini terjadi, cukup konfigurasi ulang saja xserver-xorg yang sudah ada di sistem Ubuntu sebelumnya. Caranya, jalankan perintah berikut pada Terminal:
Berikutnya, jalankan perintah dibawah ini untuk mencari dependecies paket yang dibutuhkan untuk instalasi paket source tersebut.
$ sudo dpkg-reconfigure xserverxorg
$ sudo apt-get build-dep packagename
10. Login secara otomatis
Terakhir, jangan gunakan perintah make install untuk menginstal binary paket yang sudah berhasil di-build. Gunakan perintah checkinstall untuk mengubah hasil buid yang telah dilakukan menjadi paket Debian Installer (Deb). Hal ini untuk mempermu-
Secara default, Ubuntu akan menampilkan login screen GDM sebelum Anda masuk ke dalam X session. Jika Anda menginginkan agar Ubuntu dapat secara langsung login ke dalam X session Anda, cukup masuk ke
$ sudo apt-get install buildessential
Setelah diinstalasi plugins-nya, kini aplikasi audio Rhytmbox sudah dapat memutar file MP3 dengan baik.
www.infolinux.web.id
$ sudo apt-get check-install
$ sudo checkinstall
Setelah menjadi bentuk Deb, Anda dapat menginstalasi dengan mudah paket tersebut dengan menggunakan perintah dpkg. $ sudo dpkg -i <packagename.deb>
12. Tentang kernel Secara default, Ubuntu akan menginstalasi i386 kernel untuk komputer berasitektur x86, yang mungkin tidak sesuai dengan apa yang Anda peroleh pada komputer Pentium II atau yang lebih tinggi. Untuk mengoptimalkan penggunaan resource komputer Anda, instalasikan kernel yang sesuai dengan arsitektur Anda dengan menggunakan synaptic maupun apt-get. Jika komputer Anda menggunakan processor AMD64, akan lebih baik menggunakan installer Ubuntu untuk versi AMD64, daripada menggunakan versi x86 yang juga dapat berjalan pada sistem berbasis AMD64. Ubuntu merupakan distro yang memiliki banyak kelebihan sehingga menarik untuk digunakan. Beragam aplikasi sudah tersedia dari berbagai macam repository yang terdapat di Ubuntu. Jika masih kurang, terdapat puluhan repository tambahan yang disediakan oleh pihak ketiga. Tapi semua kemudahan tersebut, hanya dapat kita nikmati jika kita terkoneksi ke Internet. Perlu perjuangan lebih jika ingin menggunakannya di jaringan lokal. Selain dengan cara men-download dan diletakkan ke jaringan lokal, juga dapat diakali dengan cara membeli membeli 5 keping DVD Ubuntu yang tersedia di sebuah online store di Internet. Secara umum, Ubuntu merupakan distro yang hebat untuk para komunitas pengguna Linux. Akhir kata, selamat mencoba dan mempelajari Ubuntu! Supriyanto [[email protected]]
INFOLINUX 08/2006
77