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 ๐
sampe prosesnya di pasang segala…
hihi, kan supaya LENGKAP ๐
hmm.. panjang bgt
ngk ngerti
ada tutorial Ruby yang bahasa Indonesia ga?
diatas bahasa indonesia ๐
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.
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.
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.
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.