Chinaunix首页 | 论坛 | 博客
  • 博客访问: 4249326
  • 博文数量: 601
  • 博客积分: 15410
  • 博客等级: 上将
  • 技术积分: 6884
  • 用 户 组: 普通用户
  • 注册时间: 2007-05-16 08:11
个人简介

独学而无友,则孤陋而寡闻!

文章分类

全部博文(601)

文章存档

2020年(1)

2018年(4)

2017年(7)

2016年(42)

2015年(25)

2014年(15)

2013年(36)

2012年(46)

2011年(117)

2010年(148)

2009年(82)

2008年(37)

2007年(41)

分类: BSD

2016-07-08 16:31:14

下面是借用网上的结果,我复制文本的时候,putty崩溃了,提示主要内容一样:
  1. /home/michell/.rvm/rubies/ruby-2.2.0/bin/ruby -r ./siteconf20160425-25421-vzm9hx.rb extconf.rb
  2. creating Makefile
  3. make "DESTDIR=" clean
  4. make "DESTDIR="
  5. compiling generator.c
  6. In file included from generator.c:1:0:
  7. ../fbuffer/fbuffer.h: In function ‘fbuffer_to_s’:
  8. ../fbuffer/fbuffer.h:175:47: error: macro "rb_str_new" requires 2 arguments, but only 1 given
  9. VALUE result = rb_str_new(FBUFFER_PAIR(fb));
  10. ^
  11. ../fbuffer/fbuffer.h:175:20: warning: initialization makes integer from pointer without a cast [enabled by default]
  12. VALUE result = rb_str_new(FBUFFER_PAIR(fb));
  13. ^
  14. make: *** [generator.o] Error 1
  15. make failed, exit code 2
原因:
json1.8.1跟ruby2.2不兼容,要回到ruby2.1。
但是rubygem不支持2.1,无论哪个ports,在make时都会出现ruby2.2.5的编译。

于是又回到一个古老的问题:在FreeBSD下,如何强制使用一个软件的版本?

不是所有的软件都支持版本的选项,但是常用的几个大语言是可以的,在/usr/ports/Mk/目录下,一大堆mk文件,里面基本上都有版本的说明。

对于ruby,可以看bsd.ruby.mk
 
  1. vi /usr/ports/Mk/bsd.ruby.mk
  2. # RUBY_VER - (See below)
  3. # RUBY_DEFAULT_VER - Set to (e.g.) "1.9" if you want to refer to "ruby19"
  4. # just as "ruby".
  5. # RUBY_ARCH - (See below)
  6. # RUBY_RD_HTML - Define if you want HTML files generated from RD files.
  7. #
  8. #
对照说明添加一行就可以了:
RUBY_DEFAULT_VER=2.1

效果也是可见的:每次ports开始编译ruby相关的文件,都会抱怨一句:您已经强制使用ruby版本,我在乖乖地遵从您的指示!










---end---



阅读(6754) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~