论坛首页 综合技术论坛

freebsd的port系统探秘

浏览 1553 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2011-09-21  

freebsd以强有力内核,安全稳定,同时方便的port系统也是最吸引人的地方。

 

不过,这两天用port遇到ruby版本的问题,好在port也是开放系统,略加研究就能搞定。同时对ports有了个很好的了解。

 

问题:

 

freebsd下的ruby总是默认用1.8,装gem也都是装到1.8下,而之前用port装的默认即为1.9,非常迷惑!而生产环境也必须要用1.9环境。

 

探索:

 

查看ruby-gems, ruby19下的makefile未发现有硬编码用ruby1.8的内容。找资料研究ports系统。ports本质还是unix下的makefile控制软件编译、安装、清理。只是做了一些规整。

 

如应用的makefile文件都会.include bsd.port.mk,打开发现这是个巨大的文件,根据变量又会引用其它,如bsd.ruby.mk另外的makefile文件。

 

打开bsd.ruby.mk,找到问题,ruby_default_ver 定义成了1.8了。而原来那台机器是1.9。

 

在freebsd网站上查阅到其修订记录,http://www.freebsd.org/cgi/cvsweb.cgi/ports/Mk/bsd.ruby.mk?r1=1.211#rev1.211

 

在8月24日,把ruby version退回到了1.8!!!

 

总结:

 

1. port是一个纯正的unix makefile系统,任务问题都可以查阅Makefile来找到问题。

 

2. 可以查阅port里的应用的修订记录来定位问题。

 

论坛首页 综合技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics