Belajar Ruby {2} Menginstall Ruby di Ubuntu


artikel sebelumnya saya telah membahas tentang intro ruby, sekarang saya akan bahas tentang cara instalasi Ruby secara manual di Ubuntu (bisa juga dipraktekin di turunan ubuntu seperti LinuxMint). kenapa instalasi nya di Ubuntu (Linux)? gak di windows? kalo di windows, cara installnya cukup download file ruby nya trus dobel klik, dan selesai ๐Ÿ˜€

sebenarnya ada juga cara gampang menggunakan ubuntu, cukup ketik :

sudo apt-get install ruby

di terminal, selesai deh ๐Ÿ˜€ hanya kadang instalasi cara manual lebih baik dari pada otomatis :D, dengna instalasi secara manual, kita bisa mengubah konfigurasi sesuai dengan yang kita mau ๐Ÿ˜€

ok, sebelumnya download dulu file untuk ruby untuk linux, saat ditulis artikel ini, verti terakhir adalah ruby 1.9, jadi saya download file ruby yang berextensi tar.gz (atau pada bagian Ruby Source dihalaman Ruby Download : http://www.ruby-lang.org/en/downloads/)

setelah download, extrak file tar.gz tersebut melalui terminal dengan perintah :

tar xvf ruby-1.9.1-p243.tar.gz

setelah itu masuk ke folder hasil extrasi tersebut, lalu ketik di terminal :

./configure –prefix=/home/echo/app/ruby19/

argumen –prefix merupakan argumen untuk menentukan lokasi tempat instal ruby, contohnya saya mau menginstall ruby di folder /home/echo/app/ruby19/ setelah itu ENTER dan tunggu hingga proses configurasinya selesai :

echo@echo-laptop ~/app/ruby-1.9.1-p129 $ ./configure --prefix=/home/echo/app/ruby19/checking build system type... i686-pc-linux-gnu
checking host system type... i686-pc-linux-gnu
checking target system type... i686-pc-linux-gnu
checking for gcc... gcc
checking for C compiler default output file name... a.out
checking whether the C compiler works... yes
checking whether we are cross compiling... no
checking for suffix of executables... 
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ISO C89... none needed
checking for g++... g++
checking whether we are using the GNU C++ compiler... yes
checking whether g++ accepts -g... yes
checking how to run the C preprocessor... gcc -E
checking for grep that handles long lines and -e... /bin/grep
checking for egrep... /bin/grep -E
checking whether gcc needs -traditional... no
checking whether the linker is GNU ld... yes
checking whether gcc -E accepts -o... yes
checking for ranlib... ranlib
checking for ar... ar
checking for as... as
checking for objdump... objdump
checking for objcopy... objcopy
checking whether ln -s works... yes
checking whether make sets $(MAKE)... yes
checking for a BSD-compatible install... /usr/bin/install -c
checking for ANSI C header files... yes
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking minix/config.h usability... no
checking minix/config.h presence... no
checking for minix/config.h... no
checking whether it is safe to define __EXTENSIONS__... yes
checking for special C compiler options needed for large files... no
checking for _FILE_OFFSET_BITS value needed for large files... 64
checking for long long... yes
checking for off_t... yes
checking size of int... 4
checking size of short... 2
checking size of long... 4
checking size of long long... 8
checking size of __int64... 0
checking size of off_t... 8
checking size of void*... 4
checking size of float... 4
checking size of double... 8
checking size of time_t... 4
checking for pid_t... yes
checking for convertible type of pid_t... LONG
checking for uid_t... yes
checking for convertible type of uid_t... ULONG
checking for gid_t... yes
checking for convertible type of gid_t... ULONG
checking for prototypes... yes
checking token paste string... ansi
checking stringization... #expr
checking string literal concatenation... yes
checking for variable length prototypes and stdarg.h... yes
checking for variable length macro... yes
checking for noreturn function attribute... __attribute__ ((noreturn)) x
checking for deprecated function attribute... __attribute__ ((deprecated)) x
checking for noinline function attribute... __attribute__ ((noinline)) x
checking for stdcall function attribute... __attribute__ ((stdcall)) x
checking for cdecl function attribute... __attribute__ ((cdecl)) x
checking for fastcall function attribute... __attribute__ ((fastcall)) x
checking for function alias... alias
checking for RUBY_EXTERN... no
checking whether sys_nerr is declared... yes
checking for crypt in -lcrypt... yes
checking for dlopen in -ldl... yes
checking for shl_load in -ldld... no
checking for socketpair in -lsocket... no
checking for clock_gettime in -lrt... yes
checking for dirent.h that defines DIR... yes
checking for library containing opendir... none required
checking for sys/wait.h that is POSIX.1 compatible... yes
checking limits.h usability... yes
checking limits.h presence... yes
checking for limits.h... yes
checking sys/file.h usability... yes
checking sys/file.h presence... yes
checking for sys/file.h... yes
checking sys/ioctl.h usability... yes
checking sys/ioctl.h presence... yes
checking for sys/ioctl.h... yes
checking sys/syscall.h usability... yes
checking sys/syscall.h presence... yes
checking for sys/syscall.h... yes
checking fcntl.h usability... yes
checking fcntl.h presence... yes
checking for fcntl.h... yes
checking sys/fcntl.h usability... yes
checking sys/fcntl.h presence... yes
checking for sys/fcntl.h... yes
checking sys/select.h usability... yes
checking sys/select.h presence... yes
checking for sys/select.h... yes
checking sys/time.h usability... yes
checking sys/time.h presence... yes
checking for sys/time.h... yes
checking sys/times.h usability... yes
checking sys/times.h presence... yes
checking for sys/times.h... yes
checking sys/param.h usability... yes
checking sys/param.h presence... yes
checking for sys/param.h... yes
checking syscall.h usability... yes
checking syscall.h presence... yes
checking for syscall.h... yes
checking pwd.h usability... yes
checking pwd.h presence... yes
checking for pwd.h... yes
checking grp.h usability... yes
checking grp.h presence... yes
checking for grp.h... yes
checking a.out.h usability... yes
checking a.out.h presence... yes
checking for a.out.h... yes
checking utime.h usability... yes
checking utime.h presence... yes
checking for utime.h... yes
checking direct.h usability... no
checking direct.h presence... no
checking for direct.h... no
checking sys/resource.h usability... yes
checking sys/resource.h presence... yes
checking for sys/resource.h... yes
checking sys/mkdev.h usability... no
checking sys/mkdev.h presence... no
checking for sys/mkdev.h... no
checking sys/utime.h usability... no
checking sys/utime.h presence... no
checking for sys/utime.h... no
checking xti.h usability... no
checking xti.h presence... no
checking for xti.h... no
checking netinet/in_systm.h usability... yes
checking netinet/in_systm.h presence... yes
checking for netinet/in_systm.h... yes
checking float.h usability... yes
checking float.h presence... yes
checking for float.h... yes
checking ieeefp.h usability... no
checking ieeefp.h presence... no
checking for ieeefp.h... no
checking pthread.h usability... yes
checking pthread.h presence... yes
checking for pthread.h... yes
checking ucontext.h usability... yes
checking ucontext.h presence... yes
checking for ucontext.h... yes
checking intrinsics.h usability... no
checking intrinsics.h presence... no
checking for intrinsics.h... no
checking langinfo.h usability... yes
checking langinfo.h presence... yes
checking for langinfo.h... yes
checking locale.h usability... yes
checking locale.h presence... yes
checking for locale.h... yes
checking sys/sendfile.h usability... yes
checking sys/sendfile.h presence... yes
checking for sys/sendfile.h... yes
checking time.h usability... yes
checking time.h presence... yes
checking for time.h... yes
checking for net/socket.h... (cached) no
checking for sys/socket.h... (cached) yes
checking size of rlim_t... 8
checking for size_t... yes
checking size of size_t... 4
checking size of ptrdiff_t... 4
checking for struct stat.st_blksize... yes
checking for struct stat.st_blocks... yes
checking for struct stat.st_rdev... yes
checking for struct stat.st_atim... yes
checking for struct stat.st_atimespec... no
checking for struct stat.st_atimensec... no
checking for struct stat.st_mtim... yes
checking for struct stat.st_mtimespec... no
checking for struct stat.st_mtimensec... no
checking for struct stat.st_ctim... yes
checking for struct stat.st_ctimespec... no
checking for struct stat.st_ctimensec... no
checking for struct timespec... yes
checking for fd_mask... yes
checking for int8_t... yes
checking for uint8_t... yes
checking for int16_t... yes
checking for uint16_t... yes
checking for int32_t... yes
checking for uint32_t... yes
checking for int64_t... yes
checking for uint64_t... yes
checking for int128_t... no
checking for uint128_t... no
checking for intptr_t... yes
checking for uintptr_t... yes
checking for ssize_t... yes
checking for stack end address... __libc_stack_end
checking for uid_t in sys/types.h... (cached) yes
checking type of array argument to getgroups... gid_t
checking return type of signal handlers... void
checking for working alloca.h... yes
checking for alloca... yes
checking for working memcmp... yes
checking for broken erfc of glibc-2.3.6 on IA64... no
checking for dup2... yes
checking for memmove... yes
checking for strerror... yes
checking for strchr... yes
checking for strstr... yes
checking for crypt... yes
checking for flock... yes
checking for vsnprintf... yes
checking for isnan... yes
checking for finite... yes
checking for isinf... yes
checking for hypot... yes
checking for acosh... yes
checking for erf... yes
checking for tgamma... yes
checking for lgamma_r... yes
checking for cbrt... yes
checking for strlcpy... no
checking for strlcat... no
checking for fmod... yes
checking for killpg... yes
checking for wait4... yes
checking for waitpid... yes
checking for fork... yes
checking for spawnv... no
checking for syscall... yes
checking for chroot... yes
checking for fsync... yes
checking for getcwd... yes
checking for eaccess... yes
checking for truncate... yes
checking for ftruncate... yes
checking for chsize... no
checking for times... yes
checking for utimes... yes
checking for utimensat... yes
checking for fcntl... yes
checking for lockf... yes
checking for lstat... yes
checking for link... yes
checking for symlink... yes
checking for readlink... yes
checking for setitimer... yes
checking for setruid... no
checking for seteuid... yes
checking for setreuid... yes
checking for setresuid... yes
checking for setproctitle... no
checking for socketpair... yes
checking for setrgid... no
checking for setegid... yes
checking for setregid... yes
checking for setresgid... yes
checking for issetugid... no
checking for pause... yes
checking for lchown... yes
checking for lchmod... no
checking for getpgrp... yes
checking for setpgrp... yes
checking for getpgid... yes
checking for setpgid... yes
checking for initgroups... yes
checking for getgroups... yes
checking for setgroups... yes
checking for getpriority... yes
checking for getrlimit... yes
checking for setrlimit... yes
checking for sysconf... yes
checking for group_member... yes
checking for dlopen... yes
checking for sigprocmask... yes
checking for sigaction... yes
checking for sigsetjmp... no
checking for _setjmp... yes
checking for _longjmp... yes
checking for snprintf... yes
checking for setsid... yes
checking for telldir... yes
checking for seekdir... yes
checking for fchmod... yes
checking for cosh... yes
checking for sinh... yes
checking for tanh... yes
checking for log2... yes
checking for round... yes
checking for signbit... no
checking for setuid... yes
checking for setgid... yes
checking for daemon... (cached) no
checking for select_large_fdset... no
checking for setenv... yes
checking for unsetenv... yes
checking for mktime... yes
checking for timegm... yes
checking for gmtime_r... yes
checking for clock_gettime... yes
checking for gettimeofday... yes
checking for pread... yes
checking for sendfile... yes
checking for shutdown... yes
checking for sigaltstack... yes
checking for __builtin_setjmp... no
checking for setjmp type... _setjmp
checking whether struct tm is in sys/time.h or time.h... time.h
checking for struct tm.tm_zone... yes
checking for struct tm.tm_gmtoff... yes
checking for external int daylight... yes
checking for external timezone... long
checking for external altzone... no
checking for timezone... yes
checking whether timezone requires zero arguments... yes
checking for negative time_t for gmtime(3)... yes
checking whether getpgrp requires zero arguments... yes
checking whether setpgrp takes no argument... yes
checking whether byte ordering is bigendian... no
checking for an ANSI C-conforming const... yes
checking whether char is unsigned... no
checking for inline... inline
checking for working volatile... yes
checking whether right shift preserve sign bit... yes
checking read count field in FILE structures... not found(OK if using GNU libc)
checking read buffer ptr field in FILE structures... _IO_read_ptr
checking read buffer end field in FILE structures... _IO_read_end
checking whether st_ino is huge... yes
checking whether _SC_CLK_TCK is supported... yes
checking stack growing direction... (cached) -1
checking for pthread_kill in -lthr... no
checking for pthread_kill in -lpthread... yes
checking for nanosleep... yes
checking for sched_yield... yes
checking for pthread_attr_setinheritsched... yes
checking for getcontext... yes
checking for setcontext... yes
checking if fork works with pthread... yes
checking for backtrace... yes
checking whether ELF binaries are produced... yes
checking whether OS depend dynamic link works... yes
checking for if make is GNU make... yes
checking for nroff... /usr/bin/nroff
config.h unchanged
configure: creating ./config.status
config.status: creating Makefile
echo@echo-laptop ~/app/ruby-1.9.1-p129 $ 

trace diatas adalah hasil dari perintah ./configure sebelumnya, setelah proses itu selesai, gunakan perintah seperti dibawah ini :

make

tunggu sampai proses make selesai, dibawah ini adalah hasil trance dari proses make diatas :

echo@echo-laptop ~/app/ruby-1.9.1-p129 $ make
gcc -O2 -g -Wall -Wno-parentheses  -L.  -rdynamic -Wl,-export-dynamic   main.o dln.o dmyencoding.o miniprelude.o array.o bignum.o class.o compar.o complex.o dir.o enum.o enumerator.o error.o eval.o load.o proc.o file.o gc.o hash.o inits.o io.o marshal.o math.o numeric.o object.o pack.o parse.o process.o random.o range.o rational.o re.o regcomp.o regenc.o regerror.o regexec.o regparse.o regsyntax.o ruby.o safe.o signal.o sprintf.o st.o strftime.o string.o struct.o time.o transcode.o util.o variable.o version.o compile.o debug.o iseq.o vm.o vm_dump.o thread.o cont.o ascii.o us_ascii.o unicode.o utf_8.o newline.o strlcpy.o strlcat.o  dmyext.o  -lpthread -lrt -ldl -lcrypt -lm   -o miniruby
rbconfig.rb updated
./miniruby -I./lib -I.ext/common -I./- -r./ext/purelib.rb  ./enc/make_encmake.rb --builtin-encs="ascii.o us_ascii.o unicode.o utf_8.o" --builtin-transes="newline.o" enc.mk 
./miniruby -I./lib -I.ext/common -I./- -r./ext/purelib.rb  -I. -rrbconfig ./tool/compile_prelude.rb ./prelude.rb ./enc/prelude.rb ./gem_prelude.rb prelude.c
gcc -O2 -g -Wall -Wno-parentheses  -I. -I.ext/include/i686-linux -I./include -I.  -DRUBY_EXPORT   -o prelude.o -c prelude.c
ar rcu libruby-static.a dln.o encoding.o prelude.o array.o bignum.o class.o compar.o complex.o dir.o enum.o enumerator.o error.o eval.o load.o proc.o file.o gc.o hash.o inits.o io.o marshal.o math.o numeric.o object.o pack.o parse.o process.o random.o range.o rational.o re.o regcomp.o regenc.o regerror.o regexec.o regparse.o regsyntax.o ruby.o safe.o signal.o sprintf.o st.o strftime.o string.o struct.o time.o transcode.o util.o variable.o version.o compile.o debug.o iseq.o vm.o vm_dump.o thread.o cont.o ascii.o us_ascii.o unicode.o utf_8.o newline.o strlcpy.o strlcat.o  dmyext.o
./miniruby -I./lib -I.ext/common -I./- -r./ext/purelib.rb  ./tool/generic_erb.rb -c -o encdb.h ./template/encdb.h.tmpl ./enc enc
encdb.h unchanged
make -f enc.mk RUBY="./miniruby -I./lib -I.ext/common -I./- -r./ext/purelib.rb " MINIRUBY="./miniruby -I./lib -I.ext/common -I./- -r./ext/purelib.rb "  enc
make[1]: Entering directory `/home/echo/app/ruby-1.9.1-p129'
make[1]: Nothing to be done for `enc'.
make[1]: Leaving directory `/home/echo/app/ruby-1.9.1-p129'
make -f enc.mk RUBY="./miniruby -I./lib -I.ext/common -I./- -r./ext/purelib.rb " MINIRUBY="./miniruby -I./lib -I.ext/common -I./- -r./ext/purelib.rb "  srcs
make[1]: Entering directory `/home/echo/app/ruby-1.9.1-p129'
make[1]: Nothing to be done for `srcs'.
make[1]: Leaving directory `/home/echo/app/ruby-1.9.1-p129'
./miniruby -I./lib -I.ext/common -I./- -r./ext/purelib.rb  ./tool/generic_erb.rb -c -o transdb.h ./template/transdb.h.tmpl ./enc/trans enc/trans
transdb.h unchanged
make -f enc.mk RUBY="./miniruby -I./lib -I.ext/common -I./- -r./ext/purelib.rb " MINIRUBY="./miniruby -I./lib -I.ext/common -I./- -r./ext/purelib.rb "  trans
make[1]: Entering directory `/home/echo/app/ruby-1.9.1-p129'
make[1]: Nothing to be done for `./enc/trans'.
make[1]: Leaving directory `/home/echo/app/ruby-1.9.1-p129'
make -f enc.mk RUBY="./miniruby -I./lib -I.ext/common -I./- -r./ext/purelib.rb " MINIRUBY="./miniruby -I./lib -I.ext/common -I./- -r./ext/purelib.rb "  encs
make[1]: Entering directory `/home/echo/app/ruby-1.9.1-p129'
mkdir -p .ext/i686-linux/enc .ext/i686-linux/enc/trans enc enc/trans
make[1]: Leaving directory `/home/echo/app/ruby-1.9.1-p129'
compiling bigdecimal
make[1]: Entering directory `/home/echo/app/ruby-1.9.1-p129/ext/bigdecimal'
gcc -shared -o ../../.ext/i686-linux/bigdecimal.so bigdecimal.o -L. -L../.. -L.  -rdynamic -Wl,-export-dynamic    -lpthread -lrt -ldl -lcrypt -lm   -lc
make[1]: Leaving directory `/home/echo/app/ruby-1.9.1-p129/ext/bigdecimal'
compiling continuation
make[1]: Entering directory `/home/echo/app/ruby-1.9.1-p129/ext/continuation'
gcc -shared -o ../../.ext/i686-linux/continuation.so continuation.o -L. -L../.. -L.  -rdynamic -Wl,-export-dynamic    -lpthread -lrt -ldl -lcrypt -lm   -lc
make[1]: Leaving directory `/home/echo/app/ruby-1.9.1-p129/ext/continuation'
compiling coverage
make[1]: Entering directory `/home/echo/app/ruby-1.9.1-p129/ext/coverage'
gcc -shared -o ../../.ext/i686-linux/coverage.so coverage.o -L. -L../.. -L.  -rdynamic -Wl,-export-dynamic    -lpthread -lrt -ldl -lcrypt -lm   -lc
make[1]: Leaving directory `/home/echo/app/ruby-1.9.1-p129/ext/coverage'
compiling curses
make[1]: Entering directory `/home/echo/app/ruby-1.9.1-p129/ext/curses'
gcc -shared -o ../../.ext/i686-linux/curses.so curses.o -L. -L../.. -L.  -rdynamic -Wl,-export-dynamic    -lncurses -ltermcap  -lpthread -lrt -ldl -lcrypt -lm   -lc
make[1]: Leaving directory `/home/echo/app/ruby-1.9.1-p129/ext/curses'
compiling dbm
compiling digest
make[1]: Entering directory `/home/echo/app/ruby-1.9.1-p129/ext/digest'
gcc -shared -o ../../.ext/i686-linux/digest.so digest.o -L. -L../.. -L.  -rdynamic -Wl,-export-dynamic    -lpthread -lrt -ldl -lcrypt -lm   -lc
make[1]: Leaving directory `/home/echo/app/ruby-1.9.1-p129/ext/digest'
compiling digest/bubblebabble
make[1]: Entering directory `/home/echo/app/ruby-1.9.1-p129/ext/digest/bubblebabble'
gcc -shared -o ../../../.ext/i686-linux/digest/bubblebabble.so bubblebabble.o -L. -L../../.. -L.  -rdynamic -Wl,-export-dynamic    -lpthread -lrt -ldl -lcrypt -lm   -lc
make[1]: Leaving directory `/home/echo/app/ruby-1.9.1-p129/ext/digest/bubblebabble'
compiling digest/md5
make[1]: Entering directory `/home/echo/app/ruby-1.9.1-p129/ext/digest/md5'
gcc -shared -o ../../../.ext/i686-linux/digest/md5.so md5init.o md5ossl.o -L. -L../../.. -L.  -rdynamic -Wl,-export-dynamic    -lcrypto  -lpthread -lrt -ldl -lcrypt -lm   -lc
make[1]: Leaving directory `/home/echo/app/ruby-1.9.1-p129/ext/digest/md5'
compiling digest/rmd160
make[1]: Entering directory `/home/echo/app/ruby-1.9.1-p129/ext/digest/rmd160'
gcc -shared -o ../../../.ext/i686-linux/digest/rmd160.so rmd160init.o rmd160ossl.o -L. -L../../.. -L.  -rdynamic -Wl,-export-dynamic    -lcrypto  -lpthread -lrt -ldl -lcrypt -lm   -lc
make[1]: Leaving directory `/home/echo/app/ruby-1.9.1-p129/ext/digest/rmd160'
compiling digest/sha1
make[1]: Entering directory `/home/echo/app/ruby-1.9.1-p129/ext/digest/sha1'
gcc -shared -o ../../../.ext/i686-linux/digest/sha1.so sha1init.o sha1ossl.o -L. -L../../.. -L.  -rdynamic -Wl,-export-dynamic    -lcrypto  -lpthread -lrt -ldl -lcrypt -lm   -lc
make[1]: Leaving directory `/home/echo/app/ruby-1.9.1-p129/ext/digest/sha1'
compiling digest/sha2
make[1]: Entering directory `/home/echo/app/ruby-1.9.1-p129/ext/digest/sha2'
gcc -shared -o ../../../.ext/i686-linux/digest/sha2.so sha2.o sha2init.o -L. -L../../.. -L.  -rdynamic -Wl,-export-dynamic    -lpthread -lrt -ldl -lcrypt -lm   -lc
make[1]: Leaving directory `/home/echo/app/ruby-1.9.1-p129/ext/digest/sha2'
compiling dl
make[1]: Entering directory `/home/echo/app/ruby-1.9.1-p129/ext/dl'
gcc -shared -o ../../.ext/i686-linux/dl.so cfunc.o dl.o cptr.o handle.o callback-0.o callback-1.o callback-2.o callback-3.o callback-4.o callback-5.o callback-6.o callback-7.o callback-8.o -L. -L../.. -L.  -rdynamic -Wl,-export-dynamic    -ldl  -lpthread -lrt -ldl -lcrypt -lm   -lc
make[1]: Leaving directory `/home/echo/app/ruby-1.9.1-p129/ext/dl'
compiling dl/win32
compiling etc
make[1]: Entering directory `/home/echo/app/ruby-1.9.1-p129/ext/etc'
gcc -shared -o ../../.ext/i686-linux/etc.so etc.o -L. -L../.. -L.  -rdynamic -Wl,-export-dynamic    -lpthread -lrt -ldl -lcrypt -lm   -lc
make[1]: Leaving directory `/home/echo/app/ruby-1.9.1-p129/ext/etc'
compiling fcntl
make[1]: Entering directory `/home/echo/app/ruby-1.9.1-p129/ext/fcntl'
gcc -shared -o ../../.ext/i686-linux/fcntl.so fcntl.o -L. -L../.. -L.  -rdynamic -Wl,-export-dynamic    -lpthread -lrt -ldl -lcrypt -lm   -lc
make[1]: Leaving directory `/home/echo/app/ruby-1.9.1-p129/ext/fcntl'
compiling fiber
make[1]: Entering directory `/home/echo/app/ruby-1.9.1-p129/ext/fiber'
gcc -shared -o ../../.ext/i686-linux/fiber.so fiber.o -L. -L../.. -L.  -rdynamic -Wl,-export-dynamic    -lpthread -lrt -ldl -lcrypt -lm   -lc
make[1]: Leaving directory `/home/echo/app/ruby-1.9.1-p129/ext/fiber'
compiling gdbm
compiling iconv
make[1]: Entering directory `/home/echo/app/ruby-1.9.1-p129/ext/iconv'
gcc -shared -o ../../.ext/i686-linux/iconv.so iconv.o -L. -L../.. -L.  -rdynamic -Wl,-export-dynamic    -lpthread -lrt -ldl -lcrypt -lm   -lc
make[1]: Leaving directory `/home/echo/app/ruby-1.9.1-p129/ext/iconv'
compiling io/wait
make[1]: Entering directory `/home/echo/app/ruby-1.9.1-p129/ext/io/wait'
gcc -shared -o ../../../.ext/i686-linux/io/wait.so wait.o -L. -L../../.. -L.  -rdynamic -Wl,-export-dynamic    -lpthread -lrt -ldl -lcrypt -lm   -lc
make[1]: Leaving directory `/home/echo/app/ruby-1.9.1-p129/ext/io/wait'
compiling json
make[1]: Entering directory `/home/echo/app/ruby-1.9.1-p129/ext/json'
make[1]: Nothing to be done for `all'.
make[1]: Leaving directory `/home/echo/app/ruby-1.9.1-p129/ext/json'
compiling json/ext/generator
make[1]: Entering directory `/home/echo/app/ruby-1.9.1-p129/ext/json/ext/generator'
gcc -shared -o ../../../../.ext/i686-linux/json/ext/generator.so unicode.o generator.o -L. -L../../../.. -L.  -rdynamic -Wl,-export-dynamic    -lpthread -lrt -ldl -lcrypt -lm   -lc
make[1]: Leaving directory `/home/echo/app/ruby-1.9.1-p129/ext/json/ext/generator'
compiling json/ext/parser
make[1]: Entering directory `/home/echo/app/ruby-1.9.1-p129/ext/json/ext/parser'
gcc -shared -o ../../../../.ext/i686-linux/json/ext/parser.so parser.o unicode.o -L. -L../../../.. -L.  -rdynamic -Wl,-export-dynamic    -lpthread -lrt -ldl -lcrypt -lm   -lc
make[1]: Leaving directory `/home/echo/app/ruby-1.9.1-p129/ext/json/ext/parser'
compiling mathn/complex
make[1]: Entering directory `/home/echo/app/ruby-1.9.1-p129/ext/mathn/complex'
gcc -shared -o ../../../.ext/i686-linux/mathn/complex.so complex.o -L. -L../../.. -L.  -rdynamic -Wl,-export-dynamic    -lpthread -lrt -ldl -lcrypt -lm   -lc
make[1]: Leaving directory `/home/echo/app/ruby-1.9.1-p129/ext/mathn/complex'
compiling mathn/rational
make[1]: Entering directory `/home/echo/app/ruby-1.9.1-p129/ext/mathn/rational'
gcc -shared -o ../../../.ext/i686-linux/mathn/rational.so rational.o -L. -L../../.. -L.  -rdynamic -Wl,-export-dynamic    -lpthread -lrt -ldl -lcrypt -lm   -lc
make[1]: Leaving directory `/home/echo/app/ruby-1.9.1-p129/ext/mathn/rational'
compiling nkf
make[1]: Entering directory `/home/echo/app/ruby-1.9.1-p129/ext/nkf'
gcc -shared -o ../../.ext/i686-linux/nkf.so nkf.o -L. -L../.. -L.  -rdynamic -Wl,-export-dynamic    -lpthread -lrt -ldl -lcrypt -lm   -lc
make[1]: Leaving directory `/home/echo/app/ruby-1.9.1-p129/ext/nkf'
compiling openssl
make[1]: Entering directory `/home/echo/app/ruby-1.9.1-p129/ext/openssl'
gcc -shared -o ../../.ext/i686-linux/openssl.so ossl_x509crl.o ossl_hmac.o ossl_pkey_dsa.o ossl_x509revoked.o ossl_ocsp.o openssl_missing.o ossl_bn.o ossl_ssl.o ossl_x509.o ossl_rand.o ossl_pkey_ec.o ossl_asn1.o ossl_x509attr.o ossl_config.o ossl_pkey_dh.o ossl_pkcs12.o ossl_x509ext.o ossl_cipher.o ossl_x509cert.o ossl_pkey.o ossl_pkcs5.o ossl_ns_spki.o ossl.o ossl_ssl_session.o ossl_x509store.o ossl_pkcs7.o ossl_bio.o ossl_engine.o ossl_pkey_rsa.o ossl_digest.o ossl_x509name.o ossl_x509req.o -L. -L../.. -L.  -rdynamic -Wl,-export-dynamic    -lssl -lcrypto  -lpthread -lrt -ldl -lcrypt -lm   -lc
make[1]: Leaving directory `/home/echo/app/ruby-1.9.1-p129/ext/openssl'
compiling pty
make[1]: Entering directory `/home/echo/app/ruby-1.9.1-p129/ext/pty'
gcc -shared -o ../../.ext/i686-linux/pty.so pty.o -L. -L../.. -L.  -rdynamic -Wl,-export-dynamic    -lutil  -lpthread -lrt -ldl -lcrypt -lm   -lc
make[1]: Leaving directory `/home/echo/app/ruby-1.9.1-p129/ext/pty'
compiling racc/cparse
make[1]: Entering directory `/home/echo/app/ruby-1.9.1-p129/ext/racc/cparse'
gcc -shared -o ../../../.ext/i686-linux/racc/cparse.so cparse.o -L. -L../../.. -L.  -rdynamic -Wl,-export-dynamic    -lpthread -lrt -ldl -lcrypt -lm   -lc
make[1]: Leaving directory `/home/echo/app/ruby-1.9.1-p129/ext/racc/cparse'
compiling readline
compiling ripper
make[1]: Entering directory `/home/echo/app/ruby-1.9.1-p129/ext/ripper'
gcc -shared -o ../../.ext/i686-linux/ripper.so ripper.o -L. -L../.. -L.  -rdynamic -Wl,-export-dynamic    -lpthread -lrt -ldl -lcrypt -lm   -lc
../../miniruby -I'../..' -I'../.././lib' -I'../../.ext/i686-linux' -I'../../.ext/common' -I./- -I'../.././ext' -rpurelib.rb ../.././ext/ripper/tools/generate.rb --mode=check --ids1src=../.././parse.y --ids2src=../.././ext/ripper/eventids2.c
make[1]: Leaving directory `/home/echo/app/ruby-1.9.1-p129/ext/ripper'
compiling sdbm
make[1]: Entering directory `/home/echo/app/ruby-1.9.1-p129/ext/sdbm'
gcc -shared -o ../../.ext/i686-linux/sdbm.so init.o _sdbm.o -L. -L../.. -L.  -rdynamic -Wl,-export-dynamic    -lpthread -lrt -ldl -lcrypt -lm   -lc
make[1]: Leaving directory `/home/echo/app/ruby-1.9.1-p129/ext/sdbm'
compiling socket
make[1]: Entering directory `/home/echo/app/ruby-1.9.1-p129/ext/socket'
gcc -shared -o ../../.ext/i686-linux/socket.so socket.o -L. -L../.. -L.  -rdynamic -Wl,-export-dynamic    -lpthread -lrt -ldl -lcrypt -lm   -lc
make[1]: Leaving directory `/home/echo/app/ruby-1.9.1-p129/ext/socket'
compiling stringio
make[1]: Entering directory `/home/echo/app/ruby-1.9.1-p129/ext/stringio'
gcc -shared -o ../../.ext/i686-linux/stringio.so stringio.o -L. -L../.. -L.  -rdynamic -Wl,-export-dynamic    -lpthread -lrt -ldl -lcrypt -lm   -lc
make[1]: Leaving directory `/home/echo/app/ruby-1.9.1-p129/ext/stringio'
compiling strscan
make[1]: Entering directory `/home/echo/app/ruby-1.9.1-p129/ext/strscan'
gcc -shared -o ../../.ext/i686-linux/strscan.so strscan.o -L. -L../.. -L.  -rdynamic -Wl,-export-dynamic    -lpthread -lrt -ldl -lcrypt -lm   -lc
make[1]: Leaving directory `/home/echo/app/ruby-1.9.1-p129/ext/strscan'
compiling syck
make[1]: Entering directory `/home/echo/app/ruby-1.9.1-p129/ext/syck'
gcc -shared -o ../../.ext/i686-linux/syck.so bytecode.o handler.o yaml2byte.o emitter.o implicit.o node.o syck.o token.o gram.o rubyext.o -L. -L../.. -L.  -rdynamic -Wl,-export-dynamic    -lpthread -lrt -ldl -lcrypt -lm   -lc
make[1]: Leaving directory `/home/echo/app/ruby-1.9.1-p129/ext/syck'
compiling syslog
make[1]: Entering directory `/home/echo/app/ruby-1.9.1-p129/ext/syslog'
gcc -shared -o ../../.ext/i686-linux/syslog.so syslog.o -L. -L../.. -L.  -rdynamic -Wl,-export-dynamic    -lpthread -lrt -ldl -lcrypt -lm   -lc
make[1]: Leaving directory `/home/echo/app/ruby-1.9.1-p129/ext/syslog'
compiling tk
compiling tk/tkutil
compiling win32ole
compiling zlib
make[1]: Entering directory `/home/echo/app/ruby-1.9.1-p129/ext/zlib'
gcc -shared -o ../../.ext/i686-linux/zlib.so zlib.o -L. -L../.. -L.  -rdynamic -Wl,-export-dynamic    -lz  -lpthread -lrt -ldl -lcrypt -lm   -lc
make[1]: Leaving directory `/home/echo/app/ruby-1.9.1-p129/ext/zlib'
making ruby
make[1]: Entering directory `/home/echo/app/ruby-1.9.1-p129'
gcc -O2 -g -Wall -Wno-parentheses  -L.  -rdynamic -Wl,-export-dynamic   main.o  -Wl,-R -Wl,/home/echo/app/ruby19/lib -L/home/echo/app/ruby19/lib -lruby-static -lpthread -lrt -ldl -lcrypt -lm   -o ruby
make[1]: Leaving directory `/home/echo/app/ruby-1.9.1-p129'
echo@echo-laptop ~/app/ruby-1.9.1-p129 $ 

setelah itu gunakan perintah :

make install

perintah diatas digunakan untuk melakukan proses instalasi, dibawah ini adalah hasil dari proses diatas :

echo@echo-laptop ~/app/ruby-1.9.1-p129 $ make install
./miniruby -I./lib -I.ext/common -I./- -r./ext/purelib.rb  ./instruby.rb --make="make" --dest-dir="" --extout=".ext" --mflags="" --make-flags="" --data-mode=0644 --prog-mode=0755 --installed-list .installed.list --mantype="doc"
installing binary commands
installing command scripts
installing library scripts
installing headers
installing manpages
installing extension objects
installing extension scripts
Generating RDoc documentation
./miniruby -I./lib -I.ext/common -I./- -r./ext/purelib.rb  ./runruby.rb --extout=.ext  -- "./bin/rdoc" --all --ri --op ".ext/rdoc" "."

prelude.c: 
Generating RI...

Files:   1
Classes: 0
Modules: 0
Methods: 0
Elapsed: 0.3s
./miniruby -I./lib -I.ext/common -I./- -r./ext/purelib.rb  ./instruby.rb --make="make" --dest-dir="" --extout=".ext" --mflags="" --make-flags="" --data-mode=0644 --prog-mode=0755 --installed-list .installed.list --install=rdoc --rdoc-output=".ext/rdoc"
installing rdoc
echo@echo-laptop ~/app/ruby-1.9.1-p129 $ 

sekarang anda bisa lihat ruby telah terinstall di /home/echo/app/ruby19/ tergantung lokasi yang anda gunakan sebelumnya ๐Ÿ˜€

setelah itu masuk ke folder bin yang ada di folder hasil instalasi ruby lalu ketikan perintah :

./ruby -v

perintah tersebut digunakan untuk melihat versi ruby yang terinstall, hasil dari proses tersebut adalah seperti dibawah ini :

echo@echo-laptop ~/app/ruby19/bin $ ./ruby -v
ruby 1.9.1p129 (2009-05-12 revision 23412) [i686-linux]

hasilnya tergantung dengan versi ruby yang anda install. sekarang anda telah berhasil menginstall ruby, selanjutnya kita akan bahas tentang pemrograman ruby nya ๐Ÿ˜€

Iklan

10 pemikiran pada “Belajar Ruby {2} Menginstall Ruby di Ubuntu

  1. For my situation the best combo is just one a portion espresso to two components hot milk this will offer your an amazing cup of
    hot coffee with diluting the espresso however still leaving
    the cup of great powerful coffee. The purity of the brewing stuff,
    the standard of the coffee beans, exactly how long it has been because the beans happened to be roasted,
    exactly how very long it has been since the beans had been the quality and ground of the water utilized in brewing.

  2. There are two fundamental kinds of yeast problems which
    will most likely attack your very own pet if not treated properly; Candida albicans and
    is yeast found as part of their digestive track and Malassezia, and that is the yeast which attacks their skin and also ears.
    From time period to duration, the woman may encounter frustrating itching, discharge,
    or odor from the vagina, what, along with being uncomfortable, she might notice
    embarrassing. Candida treatment tend to be simple the whole goal is to stop the spread out
    and eliminate the bacteria candida that is thriving as part of the
    body.You may actually grab yourself some beneficial bacterium what assists harmony a person’s reduce of.The good bacterium support as part of breaking meals particles and also further assists within the process of digestion.

  3. Essentially anybody can do so, so the reason why not give it
    a shot. yourโ€™ll require to have access to the laptop as part of order
    to choose this particular type of class. The idea here, is actually
    to get the car that both does not have the engine. Really, itโ€™s a
    bit more complicated than that, but the concept is the same.

  4. I have been surfing online more than 3 hours as of
    late, but I never discovered any attention-grabbing article like yours.
    It’s lovely worth sufficient for me. In my opinion, if all website owners and bloggers made just right content as you did, the internet will likely be much more helpful than ever before.

Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s