当前位置:  开发笔记 > 后端 > 正文

使用符号链接来ruby可执行文件时查找相关库

如何解决《使用符号链接来ruby可执行文件时查找相关库》经验,为你挑选了1个好方法。

想象一下,你有一个可执行文件foo.rb,库bar.rb按以下方式排列:

/bin/foo.rb
/lib/bar.rb

在foo.rb的标题中,您将以下要求放入bar.rb中引入功能:

require File.dirname(__FILE__)+"../lib/bar.rb"

只要对foo.rb的所有调用都是直接的,这就可以正常工作.如果您将$ HOME/project和symlink foo.rb放入$HOME/usr/bin,则__FILE__解析为$HOME/usr/bin/foo.rb,因此无法找到bar.rb与dirname相关的位置foo.rb.

我意识到像rubygems这样的打包系统通过创建一个命名空间来搜索库来解决这个问题,并且还可以使用$:include 来调整load_path $HOME/project/lib,但似乎应该存在一个更简单的解决方案.有没有人有这个问题的经验,并找到了有用的解决方案或食谱?



1> 小智..:

我知道这已经很久了,但我发现了这个:

require 'pathname'
APP_ROOT = File.join(File.dirname(Pathname.new(__FILE__).realpath),'..')

推荐阅读
虎仔球妈_459
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有