This page contains various notes for myself and maybe something helpful for you.
Execute around, a way to use ruby blocks to execute boilerplate or helpful code without adding the code to a method. This helps when trying to log around a method without adding the logging code to the method itself.
RVM is plagued with various OS level issues so below are some fixes for OS X:
Autolibs is a feature built into RVM to allow you to automatically install dependencies on your system.From https://rvm.io/rvm/autolibs
» rvm install ruby-2.4.6 --with-openssl=/usr/local/opt/[email protected]/bin/openssl Warning, new version of rvm available '1.29.10-next', you are using older version '1.29.0'. You can disable this warning with: echo rvm_autoupdate_flag=0 >> ~/.rvmrc You can enable auto-update with: echo rvm_autoupdate_flag=2 >> ~/.rvmrc ruby-2.4.6 - #removing src/ruby-2.4.6 - please wait Checking requirements for rvm_pkg. Warning, you are using 'rvm autolibs rvm_pkg', this is rarely used and can produce errors, make sure to report any problems to https://github.com/rvm/rvm/issues Requirements installation successful. Installing Ruby from source to: /Users/muhammad/.rvm/rubies/ruby-2.4.6, this may take a while depending on your cpu(s)... ruby-2.4.6 - #downloading ruby-2.4.6, this may take a while depending on your connection... ruby-2.4.6 - #extracting ruby-2.4.6 to /Users/muhammad/.rvm/src/ruby-2.4.6 - please wait ruby-2.4.6 - #configuring - please wait ruby-2.4.6 - #post-configuration - please wait ruby-2.4.6 - #compiling - please wait Error running '__rvm_make -j 1', showing last 15 lines of /Users/muhammad/.rvm/log/1587154276_ruby-2.4.6/make.log ^ num2int.c:64:21: error: expected ')' sprintf(buf, "%"PRI_LL_PREFIX"u", NUM2ULL(num)); ^ num2int.c:64:5: note: to match this '(' sprintf(buf, "%"PRI_LL_PREFIX"u", NUM2ULL(num)); ^ /Library/Developer/CommandLineTools/SDKs/MacOSX10.15.sdk/usr/include/secure/_stdio.h:47:27: note: expanded from macro 'sprintf' __builtin___sprintf_chk (str, 0, __darwin_obsz(str), __VA_ARGS__) ^ 190 warnings and 2 errors generated. make: *** [num2int.o] Error 1 make: *** [ext/-test-/num2int/all] Error 2 make: *** [build-ext] Error 2 +__rvm_make:0> return 2 There has been an error while running make. Halting the installation.
This breaks if RVM is trying to use autolibs, fix this by first enforcing homebrew as the package manager:
rvm autolibs homebrew
Then use your installation command, in my version:
rvm install ruby-2.4.6 --with-openssl-dir=
brew --prefix openssl
Gem install issues
Rugged gem not install
Error below when install rugged 0.28.0
Using rugged 0.28.0 from https://github.com/xxxxxx/rugged.git (at [email protected]) Gem::Ext::BuildError: ERROR: Failed to build gem native extension. current directory: /Users/muhammad/.rvm/gems/ruby-2.4.6/bundler/gems/rugged-58fdb24b29e3/ext/rugged /Users/muhammad/.rvm/rubies/ruby-2.4.6/bin/ruby -r ./siteconf20200625-43198-ze19sj.rb extconf.rb checking for gmake... no checking for make... yes checking for cmake... yes checking for pkg-config... yes -- Checking prototype qsort_r for HAVE_QSORT_R_BSD - False -- Checking prototype qsort_r for HAVE_QSORT_R_GNU - False -- Could NOT find OpenSSL, try to set the path to OpenSSL root folder in the system variable OPENSSL_ROOT_DIR (missing: OPENSSL_INCLUDE_DIR) -- Found Security /System/Library/Frameworks/Security.framework -- Found CoreFoundation /System/Library/Frameworks/CoreFoundation.framework -- Could NOT find HTTP_Parser (missing: HTTP_PARSER_INCLUDE_DIR HTTP_PARSER_LIBRARY) -- http-parser version 2 was not found or disabled; using bundled 3rd-party sources. -- Checking for module 'libssh2' -- Package 'libssl', required by 'libssh2', not found -- LIBSSH2 not found. Set CMAKE_PREFIX_PATH if it is installed outside of the default search path. -- Found Iconv: -L/usr/lib -liconv -- Enabled features: * threadsafe, threadsafe support * HTTPS, using SecureTransport * SHA, using CollisionDetection * http-parser, http-parser support (bundled) * zlib, using system zlib * iconv, iconv encoding conversion support -- Disabled features: * debugpool, debug pool allocator * tracing, tracing support * SSH, SSH transport support * SPNEGO, SPNEGO authentication support -- Configuring done -- Generating done -- Build files have been written to: /Users/muhammad/.rvm/gems/ruby-2.4.6/bundler/gems/rugged-58fdb24b29e3/vendor/libgit2/build -- /usr/bin/make extconf.rb:22:in `sys': ERROR: '/usr/bin/make' failed (RuntimeError) from extconf.rb:105:in `block (2 levels) in <main>' from extconf.rb:101:in `chdir' from extconf.rb:101:in `block in <main>' from extconf.rb:98:in `chdir' from extconf.rb:98:in `<main>' To see why this extension failed to compile, please check the mkmf.log which can be found here: /Users/muhammad/.rvm/gems/ruby-2.4.6/bundler/gems/extensions/x86_64-darwin-19/2.4.0/rugged-58fdb24b29e3/mkmf.log extconf failed, exit code 1 Gem files will remain installed in /Users/muhammad/.rvm/gems/ruby-2.4.6/bundler/gems/rugged-58fdb24b29e3 for inspection. Results logged to /Users/muhammad/.rvm/gems/ruby-2.4.6/bundler/gems/extensions/x86_64-darwin-19/2.4.0/rugged-58fdb24b29e3/gem_make.out An error occurred while installing rugged (0.28.0), and Bundler cannot continue. In Gemfile: rugged