rbenv / ruby-build

A tool to download, compile, and install Ruby on Unix-like systems.
https://rbenv.org/man/ruby-build.1
MIT License
3.89k stars 784 forks source link

Unable to install Ruby 2.0.0-p648 on ubuntu 16.04 #1153

Closed camerontweedle closed 5 years ago

camerontweedle commented 6 years ago

background: I HAD 2.0.0-p648 installed just fine, but then I think my openssl got updated or something and I was getting bundler errors re: SSL all of a sudden

So, after trying a number of other options, I decided to uninstall and install ruby fresh. Haven't been able to reinstall ever since.

I've tried just about everything from the wiki, including patches. I've tried it BOTH with libssl-dev AND with libssl1.0.0 and just about every combination of those options. The closest I can get to "progress" is a different error message when I try without a patch

Here's my install command: RUBY_CONFIGURE_OPTS=--with-openssl-dir=/opt/openssl PKG_CONFIG_PATH=/opt/openssl/lib/pkgconfig rbenv install 2.0.0-p648

And here's the log:

/tmp/ruby-build.20171114171946.9142/ruby-2.0.0-p648 /tmp/ruby-build.20171114171946.9142 ~/Development/LIFT-API
configure: WARNING: unrecognized options: --with-openssl-dir
checking build system type... x86_64-unknown-linux-gnu
checking host system type... x86_64-unknown-linux-gnu
checking target system type... x86_64-unknown-linux-gnu
checking for gcc... gcc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables... 
checking whether we are cross compiling... no
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 for ld... ld
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 for nm... nm
checking whether ln -s works... yes
checking whether make sets $(MAKE)... yes
checking for a BSD-compatible install... /usr/bin/install -c
checking for a thread-safe mkdir -p... /bin/mkdir -p
checking for dtrace... no
checking for dot... no
checking for doxygen... no
checking for pkg-config... pkg-config
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 cd using physical directory... cd -P
checking whether -Wno-unused-parameter is accepted as CFLAGS... yes
checking whether -Wno-parentheses is accepted as CFLAGS... yes
checking whether -Wno-long-long is accepted as CFLAGS... yes
checking whether -Wno-missing-field-initializers is accepted as CFLAGS... yes
checking whether -Wunused-variable is accepted as CFLAGS... yes
checking whether -Wpointer-arith is accepted as CFLAGS... yes
checking whether -Wwrite-strings is accepted as CFLAGS... yes
checking whether -Wdeclaration-after-statement is accepted as CFLAGS... yes
checking whether -Wshorten-64-to-32 is accepted as CFLAGS... no
checking whether -Wimplicit-function-declaration is accepted as CFLAGS... yes
checking whether -Wall -Wextra is accepted as CFLAGS... yes
checking whether -ggdb3 is accepted as CFLAGS... yes
checking whether -D_FORTIFY_SOURCE=2 is accepted as CFLAGS... yes
checking whether -fstack-protector is accepted as CFLAGS... yes
checking whether -fstack-protector is accepted as LDFLAGS... yes
checking whether -ansi -std=iso9899:199409 is accepted as CFLAGS... yes
checking whether -fno-strict-overflow is accepted as CFLAGS... yes
checking whether -fvisibility=hidden is accepted as CFLAGS... yes
checking whether -fno-fast-math is accepted as CFLAGS... yes
checking for dirent.h that defines DIR... yes
checking for library containing opendir... none required
checking for stdbool.h that conforms to C99... yes
checking for _Bool... yes
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 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 net/socket.h usability... no
checking net/socket.h presence... no
checking for net/socket.h... no
checking sys/socket.h usability... yes
checking sys/socket.h presence... yes
checking for sys/socket.h... yes
checking process.h usability... no
checking process.h presence... no
checking for process.h... no
checking sys/prctl.h usability... yes
checking sys/prctl.h presence... yes
checking for sys/prctl.h... yes
checking atomic.h usability... no
checking atomic.h presence... no
checking for atomic.h... no
checking for special C compiler options needed for large files... no
checking for _FILE_OFFSET_BITS value needed for large files... no
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 for long long... yes
checking for off_t... yes
checking char bit... 8
checking size of int... 4
checking size of short... 2
checking size of long... 8
checking size of long long... 8
checking size of __int64... 0
checking size of off_t... 8
checking size of void*... 8
checking size of float... 4
checking size of double... 8
checking size of time_t... 8
checking for printf prefix for long long... ll
checking for pid_t... yes
checking for convertible type of pid_t... INT
checking for uid_t... yes
checking for convertible type of uid_t... UINT
checking for gid_t... yes
checking for convertible type of gid_t... UINT
checking for time_t... yes
checking for convertible type of time_t... LONG
checking for dev_t... yes
checking for convertible type of dev_t... ULONG
checking for mode_t... yes
checking for convertible type of mode_t... UINT
checking for rlim_t... yes
checking for convertible type of rlim_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... x
checking for cdecl function attribute... x
checking for fastcall function attribute... x
checking for function alias... alias
checking for __atomic builtins... yes
checking for __sync builtins... yes
checking for __builtin_unreachable... yes
checking for exported function attribute... __attribute__ ((visibility("default")))
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 size_t... yes
checking size of size_t... 8
checking size of ptrdiff_t... 8
checking for printf prefix for size_t... z
checking for printf prefix for ptrdiff_t... t
checking for struct stat.st_blksize... yes
checking for struct stat.st_blocks... yes
checking for struct stat.st_rdev... yes
checking size of struct stat.st_size... SIZEOF_LONG
checking size of struct stat.st_blocks... SIZEOF_LONG
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 timeval... yes
checking for struct timespec... yes
checking for struct timezone... yes
checking for clockid_t... yes
checking for fd_mask... yes
checking for int8_t... yes
checking size of int8_t... 1
checking for uint8_t... yes
checking size of uint8_t... 1
checking for int16_t... yes
checking size of int16_t... 2
checking for uint16_t... yes
checking size of uint16_t... 2
checking for int32_t... yes
checking size of int32_t... 4
checking for uint32_t... yes
checking size of uint32_t... 4
checking for int64_t... yes
checking size of int64_t... 8
checking for uint64_t... yes
checking size of uint64_t... 8
checking for int128_t... no
checking for uint128_t... no
checking for intptr_t... yes
checking size of intptr_t... 8
checking for uintptr_t... yes
checking size of uintptr_t... 8
checking for ssize_t... yes
checking size of ssize_t... 8
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 dynamic size alloca... ok
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 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 ffs... yes
checking for setproctitle... no
checking sys/pstat.h usability... no
checking sys/pstat.h presence... no
checking for sys/pstat.h... no
checking for signbit... yes
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 __syscall... no
checking for chroot... yes
checking for getcwd... yes
checking for eaccess... yes
checking for truncate... yes
checking for ftruncate... yes
checking for ftello... 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 truncate64... yes
checking for ftruncate64... yes
checking for ftello64... yes
checking for fseeko... yes
checking for fseeko64... yes
checking for link... yes
checking for symlink... yes
checking for readlink... yes
checking for readdir_r... yes
checking for fsync... yes
checking for fdatasync... yes
checking for fchown... yes
checking for posix_fadvise... yes
checking for setitimer... yes
checking for setruid... no
checking for seteuid... yes
checking for setreuid... yes
checking for setresuid... yes
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 close... yes
checking for getpwnam_r... yes
checking for getgrnam_r... 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 getsid... 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 llabs... yes
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 poll... yes
checking for ppoll... yes
checking for pread... yes
checking for sendfile... yes
checking for shutdown... yes
checking for sigaltstack... yes
checking for dl_iterate_phdr... yes
checking for dup... yes
checking for dup3... yes
checking for pipe2... yes
checking for posix_memalign... yes
checking for memalign... yes
checking for ioctl... yes
checking for isfinite... no
checking for unsetenv returns a value... 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 for localtime(3) overflow correctly... 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 size of struct stat.st_ino... SIZEOF_LONG
checking whether struct dirent.d_name is too small... no
checking whether _SC_CLK_TCK is supported... yes
checking stack growing direction on x86_64... -1
checking for pthread_kill in -lthr... no
checking for pthread_kill in -lpthread... yes
checking for pthread_np.h... no
checking for sched_yield... yes
checking for pthread_attr_setinheritsched... yes
checking for pthread_getattr_np... yes
checking for pthread_attr_get_np... no
checking for pthread_attr_getstack... yes
checking for pthread_get_stackaddr_np... no
checking for pthread_get_stacksize_np... no
checking for thr_stksegment... no
checking for pthread_stackseg_np... no
checking for pthread_getthrds_np... no
checking for pthread_cond_init... yes
checking for pthread_condattr_setclock... yes
checking for pthread_condattr_init... yes
checking for pthread_sigmask... yes
checking for pthread_attr_init... yes
checking for getcontext... yes
checking for setcontext... yes
checking if fork works with pthread... yes
checking whether ELF binaries are produced... yes
checking elf.h usability... yes
checking elf.h presence... yes
checking for elf.h... yes
checking elf_abi.h usability... no
checking elf_abi.h presence... no
checking for elf_abi.h... no
checking whether OS depend dynamic link works... yes
checking for backtrace... yes
checking valgrind/memcheck.h usability... no
checking valgrind/memcheck.h presence... no
checking for valgrind/memcheck.h... no
checking for strip... strip
checking whether -fPIE is accepted as CFLAGS... yes
checking whether -pie is accepted as LDFLAGS... yes
checking for prefix of external symbols... NONE
checking pthread.h usability... yes
checking pthread.h presence... yes
checking for pthread.h... yes
checking if make is GNU make... yes
checking for memmem... yes
checking for broken memmem... no
checking for nroff... /usr/bin/nroff
.ext/include/x86_64-linux/ruby/config.h updated
verconf.h updated
ruby library version = 2.0.0
configure: creating ./config.status
config.status: creating Makefile
config.status: creating ruby-2.0.pc
configure: WARNING: unrecognized options: --with-openssl-dir
    CC = gcc
    LD = ld
    LDSHARED = gcc -shared
    CFLAGS = -O3 -fno-fast-math -ggdb3 -Wall -Wextra -Wno-unused-parameter -Wno-parentheses -Wno-long-long -Wno-missing-field-initializers -Wunused-variable -Wpointer-arith -Wwrite-strings -Wdeclaration-after-statement -Wimplicit-function-declaration -ansi -std=iso9899:199409 
    XCFLAGS = -include ruby/config.h -include ruby/missing.h -D_FORTIFY_SOURCE=2 -fstack-protector -fno-strict-overflow -fvisibility=hidden -DRUBY_EXPORT -fPIE
    CPPFLAGS = -I/home/cameron/.rbenv/versions/2.0.0-p648/include    -I. -I.ext/include/x86_64-linux -I./include -I.
    DLDFLAGS = -fstack-protector -pie  
    SOLIBS = 
compiling main.c
compiling dmydln.c
compiling dmyencoding.c
compiling version.c
compiling miniprelude.c
copying dummy probes.h
compiling bignum.c
compiling class.c
compiling compar.c
compiling complex.c
compiling dir.c
compiling dln_find.c
compiling enum.c
compiling enumerator.c
compiling error.c
compiling eval.c
compiling load.c
In file included from eval.c:14:0:
eval_error.c: In function ‘error_print’:
eval_intern.h:123:23: warning: variable ‘_th’ might be clobbered by ‘longjmp’ or ‘vfork’ [-Wclobbered]
   rb_thread_t * const _th = (th); \
                       ^
eval_error.c:93:5: note: in expansion of macro ‘TH_PUSH_TAG’
     TH_PUSH_TAG(th);
     ^
compiling proc.c
compiling file.c
compiling gc.c
compiling hash.c
compiling inits.c
compiling io.c
compiling marshal.c
compiling math.c
compiling node.c
compiling numeric.c
compiling object.c
compiling pack.c
compiling parse.c
compiling process.c
compiling random.c
compiling range.c
compiling rational.c
compiling re.c
compiling regcomp.c
compiling regenc.c
compiling regerror.c
compiling regexec.c
compiling regparse.c
compiling regsyntax.c
compiling ruby.c
compiling safe.c
compiling signal.c
compiling sprintf.c
compiling st.c
compiling strftime.c
compiling string.c
compiling struct.c
compiling time.c
compiling transcode.c
compiling util.c
time.c: In function ‘localtimew’:
time.c:1820:19: warning: ‘tm.tm_isdst’ may be used uninitialized in this function [-Wmaybe-uninitialized]
     result->isdst = isdst;
                   ^
compiling variable.c
compiling compile.c
compiling debug.c
compiling iseq.c
compiling vm.c
In file included from vm_core.h:25:0,
                 from eval_intern.h:5,
                 from iseq.c:14:
iseq.c: In function ‘iseq_load’:
iseq.c:536:54: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
  cached_map = ATOMIC_PTR_CAS(type_map_cache, (struct st_table *)0, type_map);
                                                      ^
ruby_atomic.h:13:36: note: in definition of macro ‘ATOMIC_CAS’
 ({ __typeof__(oldval) oldvaldup = (oldval); /* oldval should not be modified */ \
                                    ^
ruby_atomic.h:166:53: note: in expansion of macro ‘ATOMIC_SIZE_CAS’
 #   define ATOMIC_PTR_CAS(var, oldval, val) (void *)ATOMIC_SIZE_CAS(*(size_t *)&(var), (size_t)(oldval), (size_t)(val))
                                                     ^
iseq.c:536:15: note: in expansion of macro ‘ATOMIC_PTR_CAS’
  cached_map = ATOMIC_PTR_CAS(type_map_cache, (struct st_table *)0, type_map);
               ^
compiling vm_dump.c
compiling vm_backtrace.c
compiling vm_trace.c
compiling thread.c
thread.c: In function ‘exec_recursive’:
thread.c:4835:20: warning: implicit declaration of function ‘rb_frame_last_func’ [-Wimplicit-function-declaration]
     const ID mid = rb_frame_last_func();
                    ^
compiling cont.c
compiling ./enc/ascii.c
compiling ./enc/us_ascii.c
compiling ./enc/unicode.c
compiling ./enc/utf_8.c
compiling newline.c
compiling ./missing/strlcpy.c
compiling ./missing/strlcat.c
compiling ./missing/setproctitle.c
compiling addr2line.c
compiling dmyext.c
compiling dln.c
compiling encoding.c
compiling dmyversion.c
compiling array.c
vm.c: In function ‘vm_exec’:
vm.c:1264:12: warning: variable ‘escape_ep’ might be clobbered by ‘longjmp’ or ‘vfork’ [-Wclobbered]
     VALUE *escape_ep = NULL;
            ^
In file included from vm.c:82:0:
vm_eval.c: In function ‘rb_eval_cmd’:
vm_eval.c:1447:11: warning: variable ‘val’ might be clobbered by ‘longjmp’ or ‘vfork’ [-Wclobbered]
     VALUE val = Qnil;  /* OK */
           ^
linking miniruby
generating encdb.h
rbconfig.rb updated
generating enc.mk
generating prelude.c
compiling prelude.c
encdb.h unchanged
making srcs under enc
make[1]: Entering directory '/tmp/ruby-build.20171114171946.9142/ruby-2.0.0-p648'
make[1]: Nothing to be done for 'srcs'.
make[1]: Leaving directory '/tmp/ruby-build.20171114171946.9142/ruby-2.0.0-p648'
generating transdb.h
linking static-library libruby-static.a
ar: `u' modifier ignored since `D' is the default (see `U')
transdb.h unchanged
verifying static-library libruby-static.a
making trans
making enc
generating makefile exts.mk
make[1]: Entering directory '/tmp/ruby-build.20171114171946.9142/ruby-2.0.0-p648'
make[1]: Entering directory '/tmp/ruby-build.20171114171946.9142/ruby-2.0.0-p648'
compiling ./enc/trans/transdb.c
compiling ./enc/big5.c
compiling ./enc/encdb.c
configuring -test-/array/resize
configuring -test-/bug-3571
configuring -test-/bug-3662
compiling ./enc/cp949.c
configuring -test-/bug-5832
configuring -test-/debug
configuring -test-/exception
configuring -test-/fatal
compiling ./enc/trans/big5.c
configuring -test-/funcall
configuring -test-/iter
configuring -test-/load/dot.dot
configuring -test-/marshal/compat
configuring -test-/marshal/usr
configuring -test-/method
configuring -test-/num2int
configuring -test-/old_thread_select
compiling ./enc/emacs_mule.c
compiling ./enc/euc_jp.c
compiling ./enc/euc_kr.c
configuring -test-/path_to_class
configuring -test-/printf
configuring -test-/st/numhash
configuring -test-/st/update
configuring -test-/string
configuring -test-/struct
configuring -test-/symbol
configuring -test-/typeddata
configuring -test-/wait_for_single_fd
configuring -test-/win32/dln
Failed to configure -test-/win32/dln. It will not be installed.
configuring -test-/win32/fd_setsize
Failed to configure -test-/win32/fd_setsize. It will not be installed.
configuring bigdecimal
compiling ./enc/euc_tw.c
compiling ./enc/gb2312.c
compiling ./enc/gb18030.c
compiling ./enc/gbk.c
compiling ./enc/iso_8859_1.c
configuring continuation
configuring coverage
configuring curses
compiling ./enc/iso_8859_2.c
compiling ./enc/iso_8859_3.c
compiling ./enc/iso_8859_4.c
compiling ./enc/iso_8859_5.c
compiling ./enc/trans/chinese.c
compiling ./enc/iso_8859_6.c
compiling ./enc/iso_8859_7.c
compiling ./enc/iso_8859_8.c
compiling ./enc/iso_8859_9.c
compiling ./enc/iso_8859_10.c
compiling ./enc/iso_8859_11.c
compiling ./enc/iso_8859_13.c
header: ncurses.h
library: ncurses
compiling ./enc/iso_8859_14.c
compiling ./enc/iso_8859_15.c
compiling ./enc/iso_8859_16.c
compiling ./enc/koi8_r.c
compiling ./enc/trans/emoji.c
compiling ./enc/koi8_u.c
compiling ./enc/shift_jis.c
compiling ./enc/trans/emoji_iso2022_kddi.c
compiling ./enc/utf_16be.c
compiling ./enc/utf_16le.c
compiling ./enc/utf_32be.c
compiling ./enc/utf_32le.c
compiling ./enc/windows_31j.c
compiling ./enc/windows_1251.c
compiling ./enc/trans/emoji_sjis_docomo.c
linking encoding encdb.so
linking encoding big5.so
compiling ./enc/trans/emoji_sjis_kddi.c
linking encoding cp949.so
linking encoding emacs_mule.so
linking encoding euc_jp.so
linking encoding euc_kr.so
linking encoding euc_tw.so
linking encoding gb2312.so
linking encoding gb18030.so
linking encoding gbk.so
linking encoding iso_8859_1.so
linking encoding iso_8859_2.so
linking encoding iso_8859_3.so
linking encoding iso_8859_4.so
linking encoding iso_8859_5.so
compiling ./enc/trans/emoji_sjis_softbank.c
linking encoding iso_8859_6.so
compiling ./enc/trans/escape.c
linking encoding iso_8859_7.so
linking encoding iso_8859_8.so
compiling ./enc/trans/gb18030.c
linking encoding iso_8859_9.so
linking encoding iso_8859_10.so
linking encoding iso_8859_11.so
linking encoding iso_8859_13.so
linking encoding iso_8859_14.so
linking encoding iso_8859_15.so
linking encoding iso_8859_16.so
linking encoding koi8_r.so
linking encoding koi8_u.so
compiling ./enc/trans/gbk.c
linking encoding shift_jis.so
linking encoding utf_16be.so
linking encoding utf_16le.so
linking encoding utf_32be.so
linking encoding utf_32le.so
linking encoding windows_31j.so
linking encoding windows_1251.so
make[1]: Leaving directory '/tmp/ruby-build.20171114171946.9142/ruby-2.0.0-p648'
compiling ./enc/trans/iso2022.c
compiling ./enc/trans/japanese.c
compiling ./enc/trans/japanese_euc.c
compiling ./enc/trans/japanese_sjis.c
compiling ./enc/trans/korean.c
compiling ./enc/trans/single_byte.c
compiling ./enc/trans/utf8_mac.c
compiling ./enc/trans/utf_16_32.c
linking transcoder transdb.so
linking transcoder big5.so
linking transcoder chinese.so
linking transcoder emoji.so
linking transcoder emoji_iso2022_kddi.so
linking transcoder emoji_sjis_docomo.so
linking transcoder emoji_sjis_kddi.so
linking transcoder emoji_sjis_softbank.so
linking transcoder escape.so
linking transcoder gb18030.so
linking transcoder gbk.so
linking transcoder iso2022.so
linking transcoder japanese.so
linking transcoder japanese_euc.so
linking transcoder japanese_sjis.so
linking transcoder korean.so
linking transcoder single_byte.so
linking transcoder utf8_mac.so
linking transcoder utf_16_32.so
make[1]: Leaving directory '/tmp/ruby-build.20171114171946.9142/ruby-2.0.0-p648'
making encs
make[1]: Entering directory '/tmp/ruby-build.20171114171946.9142/ruby-2.0.0-p648'
make[1]: Leaving directory '/tmp/ruby-build.20171114171946.9142/ruby-2.0.0-p648'
configuring date
configuring dbm
header: gdbm-ndbm.h
library: gdbm_compat
configuring digest
configuring digest/bubblebabble
configuring digest/md5
configuring digest/rmd160
configuring digest/sha1
configuring digest/sha2
configuring dl
configuring dl/callback
configuring dl/win32
Failed to configure dl/win32. It will not be installed.
configuring etc
configuring fcntl
configuring fiber
configuring fiddle
configuring fiddle/win32
Failed to configure fiddle/win32. It will not be installed.
configuring gdbm
configuring io/console
configuring io/nonblock
configuring io/wait
configuring json
configuring json/generator
configuring json/parser
configuring mathn/complex
configuring mathn/rational
configuring nkf
configuring objspace
configuring openssl
configuring pathname
configuring psych
configuring pty
configuring racc/cparse
configuring readline
configuring ripper
configuring sdbm
configuring socket
configuring stringio
configuring strscan
configuring syslog
configuring tk
........
check struct members..
check libraries....
Use ActiveTcl libraries (if available).
Search tclConfig.sh and tkConfig.sh...............................
Fail to find [tclConfig.sh, tkConfig.sh]
Use X11 libraries (or use TK_XINCLUDES/TK_XLIBSW information on tkConfig.sh).

Search tcl.h..
Search tk.h..Search Tcl library..........
Search Tcl library..........
Warning:: cannot find Tcl library. tcltklib will not be compiled (tcltklib is disabled on your Ruby. That is, Ruby/Tk will not work). Please check configure options.

Can't find proper Tcl/Tk libraries. So, can't make tcltklib.so which is required by Ruby/Tk.
If you have Tcl/Tk libraries on your environment, you may be able to use them with configure options (see ext/tk/README.tcltklib).
At present, Tcl/Tk8.6 is not supported. Although you can try to use Tcl/Tk8.6 with configure options, it will not work correctly. I recommend you to use Tcl/Tk8.5 or 8.4.
Failed to configure tk. It will not be installed.
configuring tk/tkutil
Failed to configure tk/tkutil. It will not be installed.
configuring win32ole
Failed to configure win32ole. It will not be installed.
configuring zlib
make[1]: Entering directory '/tmp/ruby-build.20171114171946.9142/ruby-2.0.0-p648'
make[2]: Entering directory '/tmp/ruby-build.20171114171946.9142/ruby-2.0.0-p648/ext/-test-/bug-3571'
make[2]: Entering directory '/tmp/ruby-build.20171114171946.9142/ruby-2.0.0-p648/ext/-test-/array/resize'
make[2]: Entering directory '/tmp/ruby-build.20171114171946.9142/ruby-2.0.0-p648/ext/-test-/bug-3662'
make[2]: Entering directory '/tmp/ruby-build.20171114171946.9142/ruby-2.0.0-p648/ext/-test-/bug-5832'
compiling bug.c
compiling resize.c
compiling bug.c
compiling bug.c
installing default bug libraries
linking shared-object -test-/bug-3571/bug.so
installing default bug libraries
linking shared-object -test-/bug-3662/bug.so
installing default resize libraries
linking shared-object -test-/array/resize.so
installing default bug libraries
linking shared-object -test-/bug-5832/bug.so
make[2]: Leaving directory '/tmp/ruby-build.20171114171946.9142/ruby-2.0.0-p648/ext/-test-/bug-3571'
make[2]: Leaving directory '/tmp/ruby-build.20171114171946.9142/ruby-2.0.0-p648/ext/-test-/array/resize'
make[2]: Entering directory '/tmp/ruby-build.20171114171946.9142/ruby-2.0.0-p648/ext/-test-/debug'
compiling inspector.c
make[2]: Entering directory '/tmp/ruby-build.20171114171946.9142/ruby-2.0.0-p648/ext/-test-/exception'
compiling ensured.c
make[2]: Leaving directory '/tmp/ruby-build.20171114171946.9142/ruby-2.0.0-p648/ext/-test-/bug-3662'
make[2]: Entering directory '/tmp/ruby-build.20171114171946.9142/ruby-2.0.0-p648/ext/-test-/fatal'
make[2]: Leaving directory '/tmp/ruby-build.20171114171946.9142/ruby-2.0.0-p648/ext/-test-/bug-5832'
compiling rb_fatal.c
make[2]: Entering directory '/tmp/ruby-build.20171114171946.9142/ruby-2.0.0-p648/ext/-test-/funcall'
compiling passing_block.c
compiling enc_raise.c
compiling init.c
installing default rb_fatal libraries
linking shared-object -test-/fatal/rb_fatal.so
installing default funcall libraries
linking shared-object -test-/funcall/funcall.so
make[2]: Leaving directory '/tmp/ruby-build.20171114171946.9142/ruby-2.0.0-p648/ext/-test-/fatal'
make[2]: Entering directory '/tmp/ruby-build.20171114171946.9142/ruby-2.0.0-p648/ext/-test-/iter'
compiling break.c
make[2]: Leaving directory '/tmp/ruby-build.20171114171946.9142/ruby-2.0.0-p648/ext/-test-/funcall'
make[2]: Entering directory '/tmp/ruby-build.20171114171946.9142/ruby-2.0.0-p648/ext/-test-/load/dot.dot'
compiling dot.dot.c
compiling init.c
installing default dot.dot libraries
linking shared-object -test-/load/dot.dot/dot.dot.so
installing default debug libraries
linking shared-object -test-/debug.so
make[2]: Leaving directory '/tmp/ruby-build.20171114171946.9142/ruby-2.0.0-p648/ext/-test-/load/dot.dot'
make[2]: Entering directory '/tmp/ruby-build.20171114171946.9142/ruby-2.0.0-p648/ext/-test-/marshal/compat'
compiling usrcompat.c
installing default break libraries
linking shared-object -test-/iter/break.so
make[2]: Leaving directory '/tmp/ruby-build.20171114171946.9142/ruby-2.0.0-p648/ext/-test-/debug'
make[2]: Entering directory '/tmp/ruby-build.20171114171946.9142/ruby-2.0.0-p648/ext/-test-/marshal/usr'
compiling usrmarshal.c
make[2]: Leaving directory '/tmp/ruby-build.20171114171946.9142/ruby-2.0.0-p648/ext/-test-/iter'
make[2]: Entering directory '/tmp/ruby-build.20171114171946.9142/ruby-2.0.0-p648/ext/-test-/method'
compiling arity.c
installing default exception libraries
linking shared-object -test-/exception.so
installing default compat libraries
linking shared-object -test-/marshal/compat.so
installing default usr libraries
linking shared-object -test-/marshal/usr.so
make[2]: Leaving directory '/tmp/ruby-build.20171114171946.9142/ruby-2.0.0-p648/ext/-test-/exception'
make[2]: Entering directory '/tmp/ruby-build.20171114171946.9142/ruby-2.0.0-p648/ext/-test-/num2int'
compiling num2int.c
make[2]: Leaving directory '/tmp/ruby-build.20171114171946.9142/ruby-2.0.0-p648/ext/-test-/marshal/compat'
make[2]: Entering directory '/tmp/ruby-build.20171114171946.9142/ruby-2.0.0-p648/ext/-test-/old_thread_select'
compiling old_thread_select.c
compiling init.c
make[2]: Leaving directory '/tmp/ruby-build.20171114171946.9142/ruby-2.0.0-p648/ext/-test-/marshal/usr'
make[2]: Entering directory '/tmp/ruby-build.20171114171946.9142/ruby-2.0.0-p648/ext/-test-/path_to_class'
compiling path_to_class.c
installing default method libraries
linking shared-object -test-/method.so
installing default num2int libraries
linking shared-object -test-/num2int/num2int.so
installing default path_to_class libraries
linking shared-object -test-/path_to_class/path_to_class.so
make[2]: Leaving directory '/tmp/ruby-build.20171114171946.9142/ruby-2.0.0-p648/ext/-test-/method'
make[2]: Entering directory '/tmp/ruby-build.20171114171946.9142/ruby-2.0.0-p648/ext/-test-/printf'
compiling printf.c
installing default old_thread_select libraries
linking shared-object -test-/old_thread_select/old_thread_select.so
make[2]: Leaving directory '/tmp/ruby-build.20171114171946.9142/ruby-2.0.0-p648/ext/-test-/num2int'
make[2]: Entering directory '/tmp/ruby-build.20171114171946.9142/ruby-2.0.0-p648/ext/-test-/st/numhash'
make[2]: Leaving directory '/tmp/ruby-build.20171114171946.9142/ruby-2.0.0-p648/ext/-test-/path_to_class'
compiling numhash.c
make[2]: Entering directory '/tmp/ruby-build.20171114171946.9142/ruby-2.0.0-p648/ext/-test-/st/update'
compiling update.c
make[2]: Leaving directory '/tmp/ruby-build.20171114171946.9142/ruby-2.0.0-p648/ext/-test-/old_thread_select'
make[2]: Entering directory '/tmp/ruby-build.20171114171946.9142/ruby-2.0.0-p648/ext/-test-/string'
compiling enc_associate.c
printf.c: In function ‘printf_test_call’:
printf.c:93:9: warning: ‘s’ may be used uninitialized in this function [-Wmaybe-uninitialized]
  result = rb_enc_sprintf(rb_usascii_encoding(), format, s);
         ^
printf.c:96:9: warning: ‘n’ may be used uninitialized in this function [-Wmaybe-uninitialized]
  result = rb_enc_sprintf(rb_usascii_encoding(), format, n);
         ^
installing default update libraries
linking shared-object -test-/st/update.so
compiling coderange.c
installing default numhash libraries
linking shared-object -test-/st/numhash.so
installing default printf libraries
linking shared-object -test-/printf.so
make[2]: Leaving directory '/tmp/ruby-build.20171114171946.9142/ruby-2.0.0-p648/ext/-test-/st/update'
make[2]: Entering directory '/tmp/ruby-build.20171114171946.9142/ruby-2.0.0-p648/ext/-test-/struct'
compiling member.c
make[2]: Leaving directory '/tmp/ruby-build.20171114171946.9142/ruby-2.0.0-p648/ext/-test-/st/numhash'
make[2]: Entering directory '/tmp/ruby-build.20171114171946.9142/ruby-2.0.0-p648/ext/-test-/symbol'
compiling intern.c
make[2]: Leaving directory '/tmp/ruby-build.20171114171946.9142/ruby-2.0.0-p648/ext/-test-/printf'
make[2]: Entering directory '/tmp/ruby-build.20171114171946.9142/ruby-2.0.0-p648/ext/-test-/typeddata'
compiling typeddata.c
compiling cstr.c
compiling type.c
compiling init.c
installing default typeddata libraries
linking shared-object -test-/typeddata/typeddata.so
make[2]: Leaving directory '/tmp/ruby-build.20171114171946.9142/ruby-2.0.0-p648/ext/-test-/typeddata'
make[2]: Entering directory '/tmp/ruby-build.20171114171946.9142/ruby-2.0.0-p648/ext/-test-/wait_for_single_fd'
compiling wait_for_single_fd.c
compiling ellipsize.c
compiling init.c
installing default struct libraries
linking shared-object -test-/struct.so
compiling modify.c
make[2]: Leaving directory '/tmp/ruby-build.20171114171946.9142/ruby-2.0.0-p648/ext/-test-/struct'
make[2]: Entering directory '/tmp/ruby-build.20171114171946.9142/ruby-2.0.0-p648/ext/-test-/win32/dln'
make[2]: Nothing to be done for 'all'.
make[2]: Leaving directory '/tmp/ruby-build.20171114171946.9142/ruby-2.0.0-p648/ext/-test-/win32/dln'
make[2]: Entering directory '/tmp/ruby-build.20171114171946.9142/ruby-2.0.0-p648/ext/-test-/win32/fd_setsize'
make[2]: Nothing to be done for 'all'.
make[2]: Leaving directory '/tmp/ruby-build.20171114171946.9142/ruby-2.0.0-p648/ext/-test-/win32/fd_setsize'
installing default wait_for_single_fd libraries
make[2]: Entering directory '/tmp/ruby-build.20171114171946.9142/ruby-2.0.0-p648/ext/bigdecimal'
linking shared-object -test-/wait_for_single_fd/wait_for_single_fd.so
compiling bigdecimal.c
installing default symbol libraries
make[2]: Leaving directory '/tmp/ruby-build.20171114171946.9142/ruby-2.0.0-p648/ext/-test-/wait_for_single_fd'
linking shared-object -test-/symbol/symbol.so
make[2]: Entering directory '/tmp/ruby-build.20171114171946.9142/ruby-2.0.0-p648/ext/continuation'
compiling continuation.c
installing default continuation libraries
linking shared-object continuation.so
In file included from bigdecimal.c:20:0:
bigdecimal.c: In function ‘BigMath_s_exp’:
bigdecimal.h:276:49: warning: right-hand operand of comma expression has no effect [-Wunused-value]
 #define VpSetInf(a,s)   ( ((s)>0)?VpSetPosInf(a):VpSetNegInf(a) )
                                                 ^
bigdecimal.c:2699:6: note: in expansion of macro ‘VpSetInf’
      VpSetInf(vy, VP_SIGN_POSITIVE_INFINITE);
      ^
compiling enc_str_buf_cat.c
make[2]: Leaving directory '/tmp/ruby-build.20171114171946.9142/ruby-2.0.0-p648/ext/-test-/symbol'
make[2]: Entering directory '/tmp/ruby-build.20171114171946.9142/ruby-2.0.0-p648/ext/coverage'
compiling coverage.c
bigdecimal.c: In function ‘BigMath_s_log’:
bigdecimal.h:276:49: warning: right-hand operand of comma expression has no effect [-Wunused-value]
 #define VpSetInf(a,s)   ( ((s)>0)?VpSetPosInf(a):VpSetNegInf(a) )
                                                 ^
bigdecimal.c:2851:2: note: in expansion of macro ‘VpSetInf’
  VpSetInf(vy, VP_SIGN_POSITIVE_INFINITE);
  ^
bigdecimal.c: In function ‘VpAlloc’:
bigdecimal.h:263:50: warning: right-hand operand of comma expression has no effect [-Wunused-value]
 #define VpSetZero(a,s)  ( ((s)>0)?VpSetPosZero(a):VpSetNegZero(a) )
                                                  ^
bigdecimal.c:3828:8: note: in expansion of macro ‘VpSetZero’
        VpSetZero(vp,1);    /* initialize vp to zero. */
        ^
bigdecimal.c: In function ‘VpAddSub’:
bigdecimal.h:263:50: warning: right-hand operand of comma expression has no effect [-Wunused-value]
 #define VpSetZero(a,s)  ( ((s)>0)?VpSetPosZero(a):VpSetNegZero(a) )
                                                  ^
bigdecimal.c:4018:17: note: in expansion of macro ‘VpSetZero’
                 VpSetZero(c,-1);
                 ^
bigdecimal.h:263:50: warning: right-hand operand of comma expression has no effect [-Wunused-value]
 #define VpSetZero(a,s)  ( ((s)>0)?VpSetPosZero(a):VpSetNegZero(a) )
                                                  ^
bigdecimal.c:4020:17: note: in expansion of macro ‘VpSetZero’
                 VpSetZero(c,1);
                 ^
bigdecimal.h:263:50: warning: right-hand operand of comma expression has no effect [-Wunused-value]
 #define VpSetZero(a,s)  ( ((s)>0)?VpSetPosZero(a):VpSetNegZero(a) )
                                                  ^
bigdecimal.c:4072:13: note: in expansion of macro ‘VpSetZero’
             VpSetZero(c,1);        /* abs(a)=abs(b) and operation = '-'  */
             ^
bigdecimal.c: In function ‘VpDtoV’:
bigdecimal.h:263:50: warning: right-hand operand of comma expression has no effect [-Wunused-value]
 #define VpSetZero(a,s)  ( ((s)>0)?VpSetPosZero(a):VpSetNegZero(a) )
                                                  ^
bigdecimal.c:5444:9: note: in expansion of macro ‘VpSetZero’
         VpSetZero(m,1);
         ^
make[2]: Leaving directory '/tmp/ruby-build.20171114171946.9142/ruby-2.0.0-p648/ext/continuation'
make[2]: Entering directory '/tmp/ruby-build.20171114171946.9142/ruby-2.0.0-p648/ext/curses'
compiling curses.c
compiling init.c
installing default coverage libraries
linking shared-object coverage.so
make[2]: Leaving directory '/tmp/ruby-build.20171114171946.9142/ruby-2.0.0-p648/ext/coverage'
compiling qsort.c
make[2]: Entering directory '/tmp/ruby-build.20171114171946.9142/ruby-2.0.0-p648/ext/date'
compiling date_strftime.c
compiling set_len.c
installing default string libraries
linking shared-object -test-/string/string.so
make[2]: Leaving directory '/tmp/ruby-build.20171114171946.9142/ruby-2.0.0-p648/ext/-test-/string'
make[2]: Entering directory '/tmp/ruby-build.20171114171946.9142/ruby-2.0.0-p648/ext/dbm'
compiling dbm.c
compiling date_core.c
installing default dbm libraries
linking shared-object dbm.so
make[2]: Leaving directory '/tmp/ruby-build.20171114171946.9142/ruby-2.0.0-p648/ext/dbm'
make[2]: Entering directory '/tmp/ruby-build.20171114171946.9142/ruby-2.0.0-p648/ext/digest'
compiling digest.c
linking shared-object digest.so
installing default curses libraries
linking shared-object curses.so
installing digest libraries
installing default digest libraries
make[2]: Leaving directory '/tmp/ruby-build.20171114171946.9142/ruby-2.0.0-p648/ext/digest'
make[2]: Entering directory '/tmp/ruby-build.20171114171946.9142/ruby-2.0.0-p648/ext/digest/bubblebabble'
compiling bubblebabble.c
make[2]: Leaving directory '/tmp/ruby-build.20171114171946.9142/ruby-2.0.0-p648/ext/curses'
make[2]: Entering directory '/tmp/ruby-build.20171114171946.9142/ruby-2.0.0-p648/ext/digest/md5'
compiling md5init.c
compiling md5ossl.c
installing default md5 libraries
linking shared-object digest/md5.so
/usr/bin/ld: /opt/openssl/lib/libcrypto.a(cryptlib.o): relocation R_X86_64_32 against `.rodata.str1.1' can not be used when making a shared object; recompile with -fPIC
/opt/openssl/lib/libcrypto.a: error adding symbols: Bad value
collect2: error: ld returned 1 exit status
Makefile:235: recipe for target '../../../.ext/x86_64-linux/digest/md5.so' failed
make[2]: *** [../../../.ext/x86_64-linux/digest/md5.so] Error 1
make[2]: Leaving directory '/tmp/ruby-build.20171114171946.9142/ruby-2.0.0-p648/ext/digest/md5'
exts.mk:127: recipe for target 'ext/digest/md5/all' failed
make[1]: *** [ext/digest/md5/all] Error 2
make[1]: *** Waiting for unfinished jobs....
installing default bubblebabble libraries
linking shared-object digest/bubblebabble.so
compiling date_parse.c
make[2]: Leaving directory '/tmp/ruby-build.20171114171946.9142/ruby-2.0.0-p648/ext/digest/bubblebabble'
compiling date_strptime.c
installing default date_core libraries
installing default bigdecimal libraries
linking shared-object bigdecimal.so
make[2]: Leaving directory '/tmp/ruby-build.20171114171946.9142/ruby-2.0.0-p648/ext/bigdecimal'
linking shared-object date_core.so
make[2]: Leaving directory '/tmp/ruby-build.20171114171946.9142/ruby-2.0.0-p648/ext/date'
make[1]: Leaving directory '/tmp/ruby-build.20171114171946.9142/ruby-2.0.0-p648'
uncommon.mk:179: recipe for target 'build-ext' failed
make: *** [build-ext] Error 2

otherwise, I keep getting the /usr/include/openssl/asn1_mac.h:10:2: error: #error "This file is obsolete; please update your software." error.

Unfortunately, the ruby versioning is outside my control, so I'm forced to used this as well as a number of other, older ruby versions for work, so having a viable version switcher is a really key factor. If I don't get anywhere with this tomorrow, I'm afraid I'm going to have to drop rbenv and give RVM another kick at the can, and I'd really like to avoid that, as I appreciate rbenv's lighter footprint, so any assistance is appreciated.

Thanks

camerontweedle commented 6 years ago

Was able to finally get myself up and running using rvm - couldn't spend another day of not getting ANY work done.

2.0.0-p648 installed without issue for me on RVM, though, so my system can't be THAT messed up. Not sold on my RVM setup right now, though, so if someone would like to try and help debug this for me on rbenv/ruby-build, I'm still interested. Let me know what else you need

kubakrzempek commented 5 years ago

@camerontweedle what gcc version do you have? Older versions of ruby tend to fail when built with gcc in version greater than 6. Try to install gcc-6 and run CC=$(which gcc-6) rbenv install 'your_desired_version'.

EDIT: Oh, and I'd also try with libssl1.0-dev installed.

fisxoj commented 5 years ago

Chiming in out of the ether to say that I had the same problem, installing gcc-6 and libssl1.0-dev and running CC=$(which gcc-6) rbenv install -s worked for me! Thanks!

ifelere commented 5 years ago

Suggestions given worked for me too. Thank you very much guys.

mejiaro commented 5 years ago

The solution provided above still works, is there anything that needs to be done to close this issue?

vcoelho23 commented 4 years ago

work for me too on linux tina 19.2 thx. run install libdev, gcc6, execute command: CC=$(which gcc-6) and rbenv install rbenv install 2.0.0-p648

nicobrenner commented 2 years ago

Can confirm that gcc-6 + openssl@1.0 works (on MacOS BigSur 11.2.1, with homebrew):

brew install gcc@6
brew install rbenv/tap/openssl@1.0
RUBY_CONFIGURE_OPTS="--with-openssl-dir=$(brew --prefix openssl@1.0)" CC=$(which gcc-6) rbenv install 2.0.0-p647

Also had Xcode 12 installed and if the above command didn't work, was going to downgrade to 11 to try again.

It seems like people using rvm are having the same issue and they've come up with a slightly different solution of passing an extra compiler flag (export optflags="-Wno-error=implicit-function-declaration"), see here: https://stackoverflow.com/a/64829129/7724157

Spoke too soon. After installation, running gem install bundler (or any gem) gives me the following error:

ERROR:  Loading command: install (LoadError)
    cannot load such file -- socket
ERROR:  While executing gem ... (NoMethodError)

Doing some searching it seems it's an issue with openssl... 🥲 back to square one.

Finally, this worked:

export LDFLAGS="-L/usr/local/opt/openssl@1.0/lib"
export CPPFLAGS="-I/usr/local/opt/openssl@1.0/include"
CONFIGURE_OPTS="--with-openssl-dir=$(brew --prefix openssl@1.0)" RUBY_CONFIGURE_OPTS="--with-openssl-dir=$(brew --prefix openssl@1.0)" rbenv install 2.0.0-p647