首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >原生创业板在1.9.3上安装良好,但在2.0.0上失败

原生创业板在1.9.3上安装良好,但在2.0.0上失败
EN

Stack Overflow用户
提问于 2013-05-04 17:32:36
回答 1查看 143关注 0票数 1

一个带有本机扩展的私有创业板,自从ruby1.8.2和1.9.3之后运行良好,现在在ruby2.0.0上安装的模式失败了。它不是安装所需的共享对象.so文件,而是复制一个可执行文件。宝石源代码没有变化,返回到ruby1.9.3(和它的宝石集)工作得很好。

下面是相关的2.0.0-p0来自gem install的详细输出

代码语言:javascript
复制
linking shared-object mygem/mygem.so
make install
/usr/bin/install -c -m 0755 mygem.so /home/remus/.rvm/gems/ruby-2.0.0-p0/gems/mygem-0.1.12/lib/mygem
installing default mygem libraries

Successfully installed mygem-0.1.12
...
1 gem installed

这些是安装的艺术品:

代码语言:javascript
复制
$ ls -al
total 2252
-rwxr-xr-x 1 remus remus 2289443 May  4 13:08 mygem
-rw-rw-r-- 1 remus remus      62 May  4 13:08 mygem.rb

作为比较,1.9.3-p 194输出是:

代码语言:javascript
复制
linking shared-object mygem/mygem.so

make install
/usr/bin/install -c -m 0755 mygem.so /home/remus/.rvm/gems/ruby-1.9.3-p194/gems/mygem-0.1.12/lib/mygem
installing default mygem libraries
Successfully installed mygem-0.1.12
1 gem installed

以及已安装的文物:

代码语言:javascript
复制
ls -al 
total 16
drwxrwxr-x 2 remus remus 4096 May  4 13:06 mygem
-rw-rw-r-- 1 remus remus   62 May  4 13:06 mygem.rb
ls -al mygem
total 2760
-rwxr-xr-x 1 remus remus 2810959 May  4 13:06 mygem.so
  • ruby 2.0.0-p0: rake (10.0.4,0.9.6),rake编译器(0.8.3),hoe (3.6.0)
  • ruby 1.9.3-p 194: rake (10.0.4,10.0.3,0.9.2.2),rake编译器(0.8.1),hoe (3.4.0,3.0.8)
EN

回答 1

Stack Overflow用户

发布于 2013-05-04 22:49:02

因此,如果没有看到您的mygem.gemspec文件,我无法确定,但我怀疑您在其中列出了错误的文件。例如,这里有一个简化的宝石规范,它基于NMatrix使用的宝石规范,它也使用rake-compiler

代码语言:javascript
复制
lib = File.expand_path('../lib/', __FILE__)
$:.unshift lib unless $:.include?(lib)

require 'nmatrix/version'

Gem::Specification.new do |gem|
  gem.name = "nmatrix"

  gem.files         = `git ls-files`.split("\n")
  gem.test_files    = `git ls-files -- {test,spec,features}/*`.split("\n")

  # vvv THIS LINE vvv
  gem.executables   = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
  # ^^^ THIS LINE ^^^

  gem.extensions = ['ext/nmatrix/extconf.rb']
  gem.require_paths = ["lib"]

  gem.required_ruby_version = '>= 1.9.2'

  gem.add_development_dependency 'rake', '~>0.9'
  gem.add_development_dependency 'bundler'
  gem.add_development_dependency 'rake-compiler', '~>0.8.1'
end

tl;dr:您可以尝试查看您的gem.executables行,并确保包含了相关的文件。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16377093

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档