My goal is to use libmspack. It depends on ffi-compiler, I've forked ffi-compiler, to add some custom code, and I want libmspack to use my modified version. I have a simple Gemfile:
source 'http://rubygems.org'
gem 'ffi-compiler', :github =>'survili/ffi-compiler'
gem 'libmspack'
When running 'bundle install', installation of 'ffi-compiler' completes fine, but 'libmspack' install fails with an error that it can't find 'ffi-compiler'.(LoadError: cannot load such file -- ffi-compiler/compile_task)
I've noticed that if I remove 'libmspack' from Gemfile, and try to install it using 'bundle exec install libmspack', it works fine.
Can someone explain, what is the correct way to achieve my goal, causing libmspack to use custom ffi-compiler gem ?
I've found this SO post, which asks the same, but has no answer: Gem::LoadError when using a git repo in Gemfile
Thank you in advance
------ OUTPUT of bundle(empty gemset using RVM) -------
jackju at macbook-air ~/tmp/delme1
$ rvm use 2.1.1@stackoverproblem --create
ruby-2.1.1 - #gemset created /home/jackju/.rvm/gems/ruby-2.1.1@stackoverproblem
ruby-2.1.1 - #generating stackoverproblem wrappers...........
Using /home/jackju/.rvm/gems/ruby-2.1.1 with gemset stackoverproblem
jackju at macbook-air ~/tmp/delme1
$ rvm current
ruby-2.1.1@stackoverproblem
jackju at macbook-air ~/tmp/delme1
$ vim Gemfile
[1]+ Stopped vim Gemfile
jackju at macbook-air ~/tmp/delme1
$ rvm current
ruby-2.1.1@stackoverproblem
jackju at macbook-air ~/tmp/delme1
$ gem list
*** LOCAL GEMS ***
bigdecimal (1.2.4)
bundler (1.5.3)
bundler-unload (1.0.2)
executable-hooks (1.3.1)
gem-wrappers (1.2.4)
io-console (0.4.2)
json (1.8.1)
minitest (4.7.5)
psych (2.0.3)
rake (10.1.0)
rdoc (4.1.0)
rubygems-bundler (1.4.2)
rvm (1.11.3.9)
test-unit (2.1.1.0)
jackju at macbook-air ~/tmp/delme1
$ bundle
Fetching git://github.com/survili/ffi-compiler.git
remote: Reusing existing pack: 260, done.
remote: Counting objects: 5, done.
remote: Compressing objects: 100% (5/5), done.
remote: Total 265 (delta 2), reused 0 (delta 0)
Receiving objects: 100% (265/265), 38.59 KiB | 0 bytes/s, done.
Resolving deltas: 100% (116/116), done.
Fetching gem metadata from http://rubygems.org/.........
Fetching additional metadata from http://rubygems.org/..
Resolving dependencies...
Installing rake (10.3.1)
Installing ffi (1.9.3)
Using ffi-compiler (0.1.4) from git://github.com/survili/ffi-compiler.git (at master)
Gem::Ext::BuildError: ERROR: Failed to build gem native extension.
/home/jackju/.rvm/rubies/ruby-2.1.1/bin/ruby -rubygems /home/jackju/.rvm/gems/ruby-2.1.1@stackoverproblem/gems/rake-10.3.1/bin/rake RUBYARCHDIR=/home/jackju/.rvm/gems/ruby-2.1.1@stackoverproblem/extensions/x86_64-linux/2.1.0/libmspack-0.0.4 RUBYLIBDIR=/home/jackju/.rvm/gems/ruby-2.1.1@stackoverproblem/extensions/x86_64-linux/2.1.0/libmspack-0.0.4
rake aborted!
LoadError: cannot load such file -- ffi-compiler/compile_task
/home/jackju/.rvm/gems/ruby-2.1.1@stackoverproblem/gems/libmspack-0.0.4/ext/Rakefile:1:in `<top (required)>'
(See full trace by running task with --trace)
rake failed, exit code 1
Gem files will remain installed in /home/jackju/.rvm/gems/ruby-2.1.1@stackoverproblem/gems/libmspack-0.0.4 for inspection.
Results logged to /home/jackju/.rvm/gems/ruby-2.1.1@stackoverproblem/extensions/x86_64-linux/2.1.0/libmspack-0.0.4/gem_make.out
An error occurred while installing libmspack (0.0.4), and Bundler cannot
continue.
Make sure that `gem install libmspack -v '0.0.4'` succeeds before bundling.
jackju at macbook-air ~/tmp/delme1
$ ls
Gemfile
jackju at macbook-air ~/tmp/delme1
$
The problem is missing 'rubygems/tasks' which is found in this gem: https://github.com/postmodern/rubygems-tasks.
I was able to install libmspack on my machine following these steps:
gem install rubygems-tasks
git clone [email protected]:survili/ffi-compiler.git
cd ffi-compiler
rake build gem
gem install pkg/ffi-compiler-0.1.4.gem
gem install libmspack -v '0.0.4'
Successfully installed libmspack-0.0.4
1 gem installed
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With