上次分享了在MAC OXS EI Capitan上安装 ruby-oci8的过程,虽然我安装成功了,但是这仅限于安装2.0以上版本的ruby-oci8,如果是低版本的话,由于使用的还是DYLD_LIBRARY_PATH这个变量,因此依然无法安装,但是项目中又必须要使用旧版本的。
那我只好放大招了--自己修改ruby-oci8的源码,编译安装,这样应该可以搞定了。
首先我们先下载ruby-oci8的源码
git clone https://github.com/kubo/ruby-oci8.git
从tag创建一个分支
源码里面各个版本都有设置一个tag,所以我们只要找到我们要的那个版本然后创建一个分支就可以了
例如:
git checkout -b my/ruby-oci8-2.1.5 ruby-oci8-2.1.5
修改源码
接下来我们就找到DYLD_LIBRARY_PATH这个变量,改为我们需要的就可以了,这里改为跟后面版本一致的OCI_DIR
最终我在 ext/oci8/oraconf.rb 里面找到了DYLD_LIBRARY_PATH,将它改为 OCI_DIR
我们也可以在这个文件里面看到其他平台的一些配置。
编译为gem
到项目根目录下执行 <code>gem build ruby-oci8.gemspec</code>就会在项目根目录下生成我们要的gem文件
安装我们编译的gem
然后到项目根目录下安装我们的gem
gem install ruby-oci8-2.1.5.gem -l
总结:还是开源的项目好,哪里不好用自己动手丰衣足食。