rubygems.orgの宝石を"/gems"
のようなプロジェクトのサブフォルダにセットアップしてからrequire
経由でスクリプトから使用したいと考えています。私はそれを解決するのを助けてください。gemをローカルパスにインストールしてからそれを実行する方法
答えて
標準的なシナリオでは、gem
をバイナリでビルドし、パックし、使用すると、すべての依存関係をgemspec
に従ってダウンロードします。上記のような理由で受け入れられない場合は、次のオプションのいずれかを選択してください:
•スクリプトにはgem
を作成します。
ます•path where to install dependenciesを指定:
bundle install --path=vendor/gems
•代わりのrequire
先マシン上の右のフォルダを指して、ローカルバンドルのconfigファイルは存在していませんので、あなたがあなたのスクリプトでrequire_relative
を使用します。
•スクリプトが完了したら、gemを含むすべてのものをパックします。
Rubyプロジェクトに行くための通常の方法では、セットアップにGemfileで、実際に方法がない場合、それらはしかし
を保存されている場所を考えてなくても、プロジェクトに必要な宝石を処理するためにbundler (see link for more info)を使用自身のgemディレクトリを出荷すること、例えばあなたの生産システムはインターネットに絶対にアクセスできないので、次のようにすることができます。
- プロジェクトのルートにディレクトリを作成します(例: 'gems')。
- ダウンロードし、そのディレクトリに宝石を展開(またはそのディレクトリへのインストールをリダイレクトするように
gem install
の適切なオプションを使用) 次の定数を使用して、プロジェクトのルートディレクトリにルビーのファイルを作成します。
をPROJECT_DIR = __dir__ GEMS_DIR = File.join(PROJECT_DIR, 'gems')
は今、あなたは、あなたが本当にバンドラを使用して考えなければならない、あなたの宝石はいえ
require File.join(GEMS_DIR, <gem_name>)
をリンクする必要がすることができます可能であれば可能な限り。
EDIT:
gem uninstall pg
gems
ディレクトリからPGデータを削除gem install
- を経由して宝石をインストールしますが、プロジェクトのディレクトリにします
gem install -i <path_to_projects_gems_dir> pg
- 上記の宝石を指し示す必要がある場合にスクリプトをもう一度実行する
http://oi64.tinypic.com/29zok0x.jpg - 私は試してみますが、私にとってはうまくいきません。私は持っています /usr/lib/ruby/2.1.0/rubygems/core_ext/kernel_require.rb:55: 'require 'の中:そのようなファイルをロードできません - /home/ben/RubymineProjects/database_dumper/gems/pg-0.18.4.gem(LoadError) – Benjamin
私はgemを展開してパスを設定しようとしました... lib/pg.rb ..それは動作しません – Benjamin
どのようにgemをディレクトリにインストールしましたか?あなたはそれを開梱しましたか? – Dervol
私はこのようにそれを解決:
逸品-iインストールします。/ PG
ROOT = File.expand_path('..', __FILE__)
ENV['GEM_PATH'] = File.join(ROOT, './')
require 'pg'
puts 'Version of libpg: ' + PG.library_version.to_s
- 1. rvmとgemを使ってコンパスをインストールして実行するには?
- 2. Gemfile.lock(Gemfileなし)に基づいてgemをインストールする方法
- 3. Gemインストール時にGem Dependency Versionを指定する方法
- 4. gemファイルのインストールをリダイレクトする方法
- 5. IntelliJ IDEAからデバッグを有効にしてspark-submitを実行してそれに接続する方法は?
- 6. gemがインストールされているにもかかわらずGemNotFound
- 7. npm jasmineをローカルにインストールして実行する方法
- 8. DeployerをWindowsにインストールして実行する方法
- 9. コマンドラインからphpスクリプトを実行する方法(そしてログアウト後に実行する)
- 10. ローカルパス?その見つけ方
- 11. cx_Freeze。インストール後にサービスをインストールしてスクリプトを実行する方法
- 12. AngularJsでカスタムモジュールを作成し、実行時にそれらをバインドする方法
- 13. Rubyの新しいバージョンをgem環境にインストールする方法
- 14. GitBashをインストールする - インストールされたgem?
- 15. RubymineからGemをアンインストールする方法
- 16. cmake:実行ファイルをインストールしてそれらへのリンクを作成
- 17. 既にインストールされているgemのRDOCをインストールするにはどうしたらいいですか?
- 18. ローカルパス上のJhipsterからapplication-dev.ymlを使用する方法
- 19. LinuxサーバーのJava Webアプリケーションからローカルパスにアクセスする方法は?
- 20. RPMインストールを並行して実行する方法はありますか?
- 21. Xcode 4.1にアップグレードしてからJekyll gemをインストールできない
- 22. GithubからインストールされたGem Loading Error
- 23. mavenとjavaをインストールせずにgradleからmavenプラグインを実行する方法
- 24. PHPの1つのインストールからPEARをアンインストールし、既存の別のPHPインストールでそれをインストールする方法
- 25. Rails 2.3.4 gemがありません。それがインストールされているにもかかわらず!
- 26. インストールが完了したらすぐにアプリケーションを実行する方法は?
- 27. javascriptを実行してからポストバックを実行する方法は?
- 28. ルビースクリプトからgemをインストールしてから使用してください
- 29. mysqlをインストールしたマシンにpostgresqlをインストール(実行)する方法は?
- 30. ベンダー/ gemにあるバックグラウンドプロセス/コンソールからgemを要求する方法
なぜあなたは、特定のサブフォルダではなく、デフォルトの宝石のフォルダを使用しますか? – spickermann
私は小さなスクリプトを持っていて、それを宝石で配布したいと思っています。 – Benjamin
通常、このような依存関係を宝石の '.gemspec'に宣言します。あなたの場合、なぜこれはできないのですか? – spickermann