Error installing linecache19 - ruby

I've been trying to run bundle install. What follows is a series of commands I entered and the relevant snippets of the error messages.
bundle update
An error occurred while installing linecache (0.46), and Bundler cannot continue.
Make sure that gem install linecache -v '0.46' succeeds before bundling.
gem install linecache -v '0.46'
Can't handle 1.9.x yet
gem install linecache19
checking for vm_core.h... no
and finally:
gem install linecache19 -- --with-ruby-include=/opt/t/rvm/src/ruby-1.9.3-p194
ERROR: Error installing linecache19:
ERROR: Failed to build gem native extension.
/opt/t/rvm/rubies/ruby-2.0.0-p0/bin/ruby extconf.rb --with-ruby-include=/opt/t/rvm/src/ruby-1.9.3-p194
checking for vm_core.h... yes
checking for version.h... yes
creating Makefile
make
compiling trace_nums.c
In file included from trace_nums.c:21:
/opt/t/rvm/src/ruby-1.9.3-p194/vm_core.h:311:5: error: unknown type name 'rb_event_hook_t'; did you mean 'rb_event_flag_t'?
rb_event_hook_t *event_hooks;
^~~~~~~~~~~~~~~
rb_event_flag_t
/opt/t/rvm/rubies/ruby-2.0.0-p0/include/ruby-2.0.0/ruby/ruby.h:1602:23: note: 'rb_event_flag_t' declared here
typedef unsigned long rb_event_flag_t;
^
In file included from trace_nums.c:21:
/opt/t/rvm/src/ruby-1.9.3-p194/vm_core.h:477:5: error: unknown type name 'rb_event_hook_t'; did you mean 'rb_event_flag_t'?
rb_event_hook_t *event_hooks;
^~~~~~~~~~~~~~~
rb_event_flag_t
/opt/t/rvm/rubies/ruby-2.0.0-p0/include/ruby-2.0.0/ruby/ruby.h:1602:23: note: 'rb_event_flag_t' declared here
typedef unsigned long rb_event_flag_t;
^
trace_nums.c:61:25: warning: implicit conversion loses integer precision: 'unsigned long' to 'int' [-Wshorten-64-to-32]
len = strlen(token) - 1;
~ ~~~~~~~~~~~~~~^~~
1 warning and 2 errors generated.
make: *** [trace_nums.o] Error 1
Gem files will remain installed in /opt/t/rvm/gems/ruby-2.0.0-p0/gems/linecache19-0.5.12 for inspection.
Results logged to /opt/t/rvm/gems/ruby-2.0.0-p0/gems/linecache19-0.5.12/ext/trace_nums/gem_make.out

force the Gemfile to use these version
gem 'linecache19', '0.5.13', :path => "~/.rvm/gems/ruby-1.9.3-p0/gems/linecache19-0.5.13/"
and then bundle install

Related

Ruby ./src/postgres/include/port/atomics.h:68:10: fatal error: 'port/atomics/arch-arm.h' file not found

Receiving this error when attempting to install pg_query -v '1.0.2 gem on ruby 2.6.6 on an M1 Mac.
Here's the full trace:
In file included from src/pg_query_json_plpgsql.c:2:
In file included from src/pg_query_json_plpgsql.h:5:
In file included from ./src/postgres/include/plpgsql.h:21:
In file included from ./src/postgres/include/commands/trigger.h:17:
In file included from ./src/postgres/include/nodes/execnodes.h:17:
In file included from ./src/postgres/include/access/genam.h:19:
In file included from ./src/postgres/include/nodes/tidbitmap.h:26:
In file included from ./src/postgres/include/utils/dsa.h:17:
./src/postgres/include/port/atomics.h:68:10: fatal error: 'port/atomics/arch-arm.h' file not found
#include "port/atomics/arch-arm.h"
^~~~~~~~~~~~~~~~~~~~~~~~~
1 error generated.
make: *** [src/pg_query_json_plpgsql.o] Error 1
cp: directory ./../../spec/files does not exist
creating Makefile
current directory: /Users/tonybeninate/.rvm/gems/ruby-2.6.6#ammoready-two-point-oh/gems/pg_query-1.0.2/ext/pg_query
make "DESTDIR=" clean
current directory: /Users/tonybeninate/.rvm/gems/ruby-2.6.6#ammoready-two-point-oh/gems/pg_query-1.0.2/ext/pg_query
make "DESTDIR="
compiling pg_query_ruby.c
pg_query_ruby.c:23:1: warning: function 'raise_ruby_parse_error' could be declared with attribute 'noreturn' [-Wmissing-noreturn]
{
^
pg_query_ruby.c:41:1: warning: function 'raise_ruby_normalize_error' could be declared with attribute 'noreturn' [-Wmissing-noreturn]
{
^
pg_query_ruby.c:59:1: warning: function 'raise_ruby_fingerprint_error' could be declared with attribute 'noreturn' [-Wmissing-noreturn]
{
^
3 warnings generated.
linking shared-object pg_query/pg_query.bundle
ld: library not found for -lpg_query
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make: *** [pg_query.bundle] Error 1
make failed, exit code 2
Gem files will remain installed in /Users/tonybeninate/.rvm/gems/ruby-2.6.6#ammoready-two-point-oh/gems/pg_query-1.0.2 for inspection.
Results logged to /Users/tonybeninate/.rvm/gems/ruby-2.6.6#ammoready-two-point-oh/extensions/-darwin-20/2.6.0/pg_query-1.0.2/gem_make.out
An error occurred while installing pg_query (1.0.2), and Bundler cannot continue.
Make sure that `gem install pg_query -v '1.0.2' --source 'https://rubygems.org/'` succeeds before bundling.
For posterity, I had to upgrade to pg_query 1.3.0 in order to get ARM support. https://github.com/pganalyze/pg_query/issues/210

Thin and Puma fail with similar issues - ERROR: Failed to build gem native extension on Mac with OpenSSL#1.1

Describe the bug
I have tried to do a gem install puma and gem install thin and get an error.
I have a brand new Mac that I am setting up: MacOS Catalina 10.15.6 (19G73)
I have worked out that any version <= 4.2.1 works fine on my computer
I am using asdf version manager
Works: gem install puma -v '4.2.1'
Fails: gem install puma -v '4.3.0' or gem install pumad
Error for Puma
I have tried each of these commands to get this to work
gem install puma
gem install puma -v '4.3.0' -- --with-ldflags=-L/usr/local/opt/openssl#1.1/lib --with-cppflags=-I/usr/local/opt/openssl#1.1/include
gem install puma -v '4.3.0' -- --with-ldflags=-L/usr/local/opt/openssl#1.1/lib --with-cppflags=-I/usr/local/opt/openssl#1.1/include --with-opt-dir=/usr/local/opt/openssl#1.1
Building native extensions. This could take a while...
ERROR: Error installing puma:
ERROR: Failed to build gem native extension.
current directory: /Users/myname/.asdf/installs/ruby/2.7.1/lib/ruby/gems/2.7.0/gems/puma-4.3.5/ext/puma_http11
/Users/myname/.asdf/installs/ruby/2.7.1/bin/ruby -I /Users/myname/.asdf/installs/ruby/2.7.1/lib/ruby/site_ruby/2.7.0 -r ./siteconf20200806-17963-1cqtelz.rb extconf.rb
checking for BIO_read() in -lcrypto... yes
checking for SSL_CTX_new() in -lssl... yes
checking for openssl/bio.h... yes
checking for DTLS_method() in openssl/ssl.h... yes
checking for TLS_server_method() in openssl/ssl.h... yes
checking for SSL_CTX_set_min_proto_version in openssl/ssl.h... yes
creating Makefile
current directory: /Users/myname/.asdf/installs/ruby/2.7.1/lib/ruby/gems/2.7.0/gems/puma-4.3.5/ext/puma_http11
make "DESTDIR=" clean
current directory: /Users/myname/.asdf/installs/ruby/2.7.1/lib/ruby/gems/2.7.0/gems/puma-4.3.5/ext/puma_http11
make "DESTDIR="
compiling http11_parser.c
ext/puma_http11/http11_parser.c:44:18: warning: unused variable 'puma_parser_en_main' [-Wunused-const-variable]
static const int puma_parser_en_main = 1;
^
1 warning generated.
compiling io_buffer.c
compiling mini_ssl.c
mini_ssl.c:145:7: warning: unused variable 'min' [-Wunused-variable]
int min, ssl_options;
^
mini_ssl.c:299:40: warning: function 'raise_error' could be declared with attribute 'noreturn' [-Wmissing-noreturn]
void raise_error(SSL* ssl, int result) {
^
2 warnings generated.
compiling puma_http11.c
puma_http11.c:203:22: error: implicitly declaring library function 'isspace' with type 'int (int)' [-Werror,-Wimplicit-function-declaration]
while (vlen > 0 && isspace(value[vlen - 1])) vlen--;
^
puma_http11.c:203:22: note: include the header <ctype.h> or explicitly provide a declaration for 'isspace'
1 error generated.
make: *** [puma_http11.o] Error 1
make failed, exit code 2
Gem files will remain installed in /Users/myname/.asdf/installs/ruby/2.7.1/lib/ruby/gems/2.7.0/gems/puma-4.3.5 for inspection.
Results logged to /Users/myname/.asdf/installs/ruby/2.7.1/lib/ruby/gems/2.7.0/extensions/x86_64-darwin-19/2.7.0/puma-4.3.5/gem_make.out
I saw on this thread that you need OpenSSL 1.1
OpenSSL#1.1
I reinstalled openssl
brew reinstall openssl#1.1
==> Downloading https://homebrew.bintray.com/bottles/openssl%401.1-1.1.1g.catalina.bottle.tar.gz
Already downloaded: /Users/myname/Library/Caches/Homebrew/downloads/d6b7a6d80c588c89e79f350ce3e05c95d31d804291cc120efcbb6c9478607a41--openssl#1.1-1.1.1g.catalina.bottle.tar.gz
==> Reinstalling openssl#1.1
==> Pouring openssl#1.1-1.1.1g.catalina.bottle.tar.gz
==> Caveats
A CA file has been bootstrapped using certificates from the system
keychain. To add additional certificates, place .pem files in
/usr/local/etc/openssl#1.1/certs
and run
/usr/local/opt/openssl#1.1/bin/c_rehash
openssl#1.1 is keg-only, which means it was not symlinked into /usr/local,
because macOS provides LibreSSL.
If you need to have openssl#1.1 first in your PATH run:
echo 'export PATH="/usr/local/opt/openssl#1.1/bin:$PATH"' >> ~/.zshrc
For compilers to find openssl#1.1 you may need to set:
export LDFLAGS="-L/usr/local/opt/openssl#1.1/lib"
export CPPFLAGS="-I/usr/local/opt/openssl#1.1/include"
For pkg-config to find openssl#1.1 you may need to set:
export PKG_CONFIG_PATH="/usr/local/opt/openssl#1.1/lib/pkgconfig"
I tested with these lines in .zshrc
export PATH="/usr/local/opt/openssl#1.1/bin:$PATH"
export LDFLAGS="-L/usr/local/opt/openssl#1.1/lib"
export CPPFLAGS="-I/usr/local/opt/openssl#1.1/include"
export PKG_CONFIG_PATH="/usr/local/opt/openssl#1.1/lib/pkgconfig"
Install for Thin
gem install thin
Building native extensions. This could take a while...
ERROR: Error installing thin:
ERROR: Failed to build gem native extension.
current directory: /Users/myname/.asdf/installs/ruby/2.7.1/lib/ruby/gems/2.7.0/gems/thin-1.7.2/ext/thin_parser
/Users/myname/.asdf/installs/ruby/2.7.1/bin/ruby -I /Users/myname/.asdf/installs/ruby/2.7.1/lib/ruby/site_ruby/2.7.0 -r ./siteconf20200806-18426-1lt7u04.rb extconf.rb
checking for main() in -lc... yes
creating Makefile
current directory: /Users/myname/.asdf/installs/ruby/2.7.1/lib/ruby/gems/2.7.0/gems/thin-1.7.2/ext/thin_parser
make "DESTDIR=" clean
current directory: /Users/myname/.asdf/installs/ruby/2.7.1/lib/ruby/gems/2.7.0/gems/thin-1.7.2/ext/thin_parser
make "DESTDIR="
compiling parser.c
parser.c:31:18: warning: unused variable 'http_parser_en_main' [-Wunused-const-variable]
static const int http_parser_en_main = 1;
^
1 warning generated.
compiling thin.c
thin.c:242:3: error: implicit declaration of function 'thin_http_parser_init' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
thin_http_parser_init(hp);
^
thin.c:242:3: note: did you mean 'http_parser_init'?
./parser.h:41:5: note: 'http_parser_init' declared here
int http_parser_init(http_parser *parser);
^
thin.c:260:3: error: implicit declaration of function 'thin_http_parser_init' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
thin_http_parser_init(http);
^
thin.c:277:3: error: implicit declaration of function 'thin_http_parser_init' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
thin_http_parser_init(http);
^
thin.c:294:3: error: implicit declaration of function 'thin_http_parser_finish' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
thin_http_parser_finish(http);
^
thin.c:294:3: note: did you mean 'Thin_HttpParser_finish'?
thin.c:290:7: note: 'Thin_HttpParser_finish' declared here
VALUE Thin_HttpParser_finish(VALUE self)
^
thin.c:296:10: error: implicit declaration of function 'thin_http_parser_is_finished' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
return thin_http_parser_is_finished(http) ? Qtrue : Qfalse;
^
thin.c:334:5: error: implicit declaration of function 'thin_http_parser_execute' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
thin_http_parser_execute(http, dptr, dlen, from);
^
thin.c:334:5: note: did you mean 'Thin_HttpParser_execute'?
thin.c:317:7: note: 'Thin_HttpParser_execute' declared here
VALUE Thin_HttpParser_execute(VALUE self, VALUE req_hash, VALUE data, VALUE start)
^
thin.c:338:8: error: implicit declaration of function 'thin_http_parser_has_error' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
if(thin_http_parser_has_error(http)) {
^
thin.c:338:8: note: did you mean 'http_parser_has_error'?
./parser.h:44:5: note: 'http_parser_has_error' declared here
int http_parser_has_error(http_parser *parser);
^
thin.c:359:10: error: implicit declaration of function 'thin_http_parser_has_error' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
return thin_http_parser_has_error(http) ? Qtrue : Qfalse;
^
thin.c:374:10: error: implicit declaration of function 'thin_http_parser_is_finished' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
return thin_http_parser_is_finished(http) ? Qtrue : Qfalse;
^
9 errors generated.
make: *** [thin.o] Error 1
make failed, exit code 2
Gem files will remain installed in /Users/myname/.asdf/installs/ruby/2.7.1/lib/ruby/gems/2.7.0/gems/thin-1.7.2 for inspection.
Results logged to /Users/myname/.asdf/installs/ruby/2.7.1/lib/ruby/gems/2.7.0/extensions/x86_64-darwin-19/2.7.0/thin-1.7.2/gem_make.out
The Puma team pointed me to a temporary solution for compiling puma.
gem install puma:4.3.5 -- --with-cflags="-Wno-error=implicit-function-declaration"
I used this variant for the latest version
gem install puma -- --with-cflags="-Wno-error=implicit-function-declaration"
I was also able to use this same technique to with thin, but I have not tested whether the gem works.
gem install thin -- --with-cflags="-Wno-error=implicit-function-declaration"
bundle config build.thin --with-cflags="-Wno-error=implicit-function-declaration"
opened https://github.com/macournoyer/thin/issues/370 to get it fixed or documented in thin

fail to bundle install puma 4.3.5 or gem puma with ruby-2.6.6 on macos-10.15.6 [duplicate]

This question already has answers here:
puma gem - Failed to build gem native extension
(13 answers)
Closed 2 years ago.
fail to bundle install puma 4.3.5 or gem puma with ruby-2.6.6 on macos-10.15.6
try to bundle dependencies for my project, but puma 4.3.5 occured an error.
someone know about this?
xxxxxxxxxxxx
here is the error content:
fetching puma 4.3.5
Installing puma 4.3.5 with native extensions
Gem::Ext::BuildError: ERROR: Failed to build gem native extension.
current directory: /Users/lxj/.rvm/gems/ruby-2.6.6/gems/puma-4.3.5/ext/puma_http11
/Users/lxj/.rvm/rubies/ruby-2.6.6/bin/ruby -I /Users/lxj/.rvm/rubies/ruby-2.6.6/lib/ruby/site_ruby/2.6.0 -r ./siteconf20200731-28585-1eobsvu.rb extconf.rb
checking for BIO_read() in -lcrypto... yes
checking for SSL_CTX_new() in -lssl... yes
checking for openssl/bio.h... yes
checking for DTLS_method() in openssl/ssl.h... yes
checking for TLS_server_method() in openssl/ssl.h... yes
checking for SSL_CTX_set_min_proto_version in openssl/ssl.h... yes
creating Makefile
current directory: /Users/lxj/.rvm/gems/ruby-2.6.6/gems/puma-4.3.5/ext/puma_http11
make "DESTDIR=" clean
current directory: /Users/lxj/.rvm/gems/ruby-2.6.6/gems/puma-4.3.5/ext/puma_http11
make "DESTDIR="
compiling http11_parser.c
ext/puma_http11/http11_parser.c:44:18: warning: unused variable 'puma_parser_en_main' [-Wunused-const-variable]
static const int puma_parser_en_main = 1;
^
1 warning generated.
compiling io_buffer.c
compiling mini_ssl.c
mini_ssl.c:145:7: warning: unused variable 'min' [-Wunused-variable]
int min, ssl_options;
^
mini_ssl.c:299:40: warning: function 'raise_error' could be declared with attribute 'noreturn' [-Wmissing-noreturn]
void raise_error(SSL* ssl, int result) {
^
2 warnings generated.
compiling puma_http11.c
puma_http11.c:203:22: error: implicitly declaring library function 'isspace' with type 'int (int)' [-Werror,-Wimplicit-function-declaration]
while (vlen > 0 && isspace(value[vlen - 1])) vlen--;
^
puma_http11.c:203:22: note: include the header <ctype.h> or explicitly provide a declaration for 'isspace'
1 error generated.
make: *** [puma_http11.o] Error 1
make failed, exit code 2
Gem files will remain installed in /Users/lxj/.rvm/gems/ruby-2.6.6/gems/puma-4.3.5 for inspection.
Results logged to /Users/lxj/.rvm/gems/ruby-2.6.6/extensions/x86_64-darwin-19/2.6.0/puma-4.3.5/gem_make.out
An error occurred while installing puma (4.3.5), and Bundler cannot continue.
Make sure that `gem install puma -v '4.3.5'` succeeds before bundling.
In Gemfile:
puma
Locked. Comments on this answer have been disabled, but it is still accepting other interactions. Learn more.
It seems that the latest version of XCode tools (12 Beta 3) installs a version of Clang (the C compiler used by default on MacOS) that throws an error on implicit functions used on the native extension code of Puma.
The workaround as pointed out here is to tell Clang not to treat this behavior as an error.
Try running:
bundle config build.puma --with-cflags="-Wno-error=implicit-function-declaration"
bundle install
and it should work.

Error to bundle install "yajl-ruby"

noob here, I'm trying to install octopress but when i run rbenv exec bundle install i got this error.
Gem::Ext::BuildError: ERROR: Failed to build gem native extension.
current directory:
/home/idiot/.rbenv/versions/2.4.0/lib/ruby/gems/2.4.0/gems/yajl-ruby-1.2.1/ext/yajl
/home/idiot/.rbenv/versions/2.4.0/bin/ruby -r ./siteconf20170227-4161-uizrqn.rb extconf.rb
creating Makefile
current directory:
/home/idiot/.rbenv/versions/2.4.0/lib/ruby/gems/2.4.0/gems/yajl-ruby-1.2.1/ext/yajl
make "DESTDIR=" clean
current directory:
/home/idiot/.rbenv/versions/2.4.0/lib/ruby/gems/2.4.0/gems/yajl-ruby-1.2.1/ext/yajl
make "DESTDIR="
compiling yajl.c
compiling yajl_alloc.c
compiling yajl_buf.c
compiling yajl_encode.c
compiling yajl_ext.c
yajl_ext.c: In function ‘rb_yajl_parser_parse’:
yajl_ext.c:471:17: warning: variable ‘stat’ set but not used [Wunused-but-set-variable]
yajl_status stat;
^~~~
yajl_ext.c: In function ‘rb_yajl_encoder_enable_json_gem_ext’:
yajl_ext.c:881:22: error: ‘rb_cFixnum’ undeclared (first use in this function)
rb_define_method(rb_cFixnum, "to_json", rb_yajl_json_ext_fixnum_to_json, -1);
^~~~~~~~~~
yajl_ext.c:881:22: note: each undeclared identifier is reported only once for each
function it appears in
yajl_ext.c: At top level:
cc1: warning: unrecognized command line option ‘-Wno-self-assign’
cc1: warning: unrecognized command line option ‘-Wno-constant-logical-operand’
cc1: warning: unrecognized command line option ‘-Wno-parentheses-equality’
make: *** [Makefile:242: yajl_ext.o] Error 1
make failed, exit code 2
Gem files will remain installed in
/home/idiot/.rbenv/versions/2.4.0/lib/ruby/gems/2.4.0/gems/yajl-ruby1.2.1 for inspection.
Results logged to
/home/idiot/.rbenv/versions/2.4.0/lib/ruby/gems/2.4.0/extensions/x86_64-linux/2.4.0-static/yajl-ruby-1.2.1/gem_make.out
An error occurred while installing yajl-ruby (1.2.1), and Bundler cannot
continue.
Make sure that `gem install yajl-ruby -v '1.2.1'` succeeds before bundling.
I've tried to googling but still have not found a solution to this problem, anyone answer my question, I am very grateful.
The native extension has not been updated for Ruby 2.4 yet. The breaking change is that Fixnum and Bignum (rb_cFixnum and rb_cBignum in the C API) have been unified in Integer (rb_cInteger).
Check the yajl-ruby repository for an issue/pull request fixing Ruby 2.4 compatibility or use Ruby 2.3.3 for the time being.

Cant install Visualruby

I try to install Visualruby (sudo gem install visualruby) on Linux Mint I have already install ruby and Glade but its give me anytime this error output:
rbglib.c: In function ‘rbg_scan_options’:
rbglib.c:905:56: error: expected ‘)’ before ‘PRIsVALUE’
"options must be Hash or nil: %+" PRIsVALUE,
^
rbglib.c:906:22: warning: conversion lacks type at end of format [-Wformat=]
original_options);
^
make: *** [rbglib.o] Error 1
Gem files will remain installed in /var/lib/gems/1.9.1/gems/glib2-3.0.8 for inspection.
Results logged to /var/lib/gems/1.9.1/gems/glib2-3.0.8/ext/glib2/gem_make.out

Resources