簡體   English   中英

如何在捆綁程序中包含.gem文件(不是源文件)

[英]How to include a .gem file in bundler (not source)

我有一個Rails應用程序,它依賴於同時開發的庫。

部署應用程序時,出於各種原因,我沒有選擇在捆綁程序中使用:git =>''選項來加載gem。 理想情況下,我要執行的操作如下

寶石文件

gem 'system-api', :gem => 'vendor/system-api-1.0.0.gem'

我想預構建gem並將其簡單地包含到項目中,然后將其檢入git。

有沒有辦法使用捆綁器甚至不使用捆綁器來做到這一點?

[更新1]

我嘗試了“ gem'system-api','1.0.0',:path =>'vendor /'”,捆綁程序說它已正確安裝,但是gem沒有顯示在'gem list'中,rails項目也沒有有一個參考。 它與“捆綁包顯示”命令一起顯示。

我做了以下工作:

gem 'libv8', '3.11.8.3mytest', :path => '../libv8/pkg'

../libv8/pkg文件夾僅包含二進制打包的寶石libv8-3.11.8.3mytest-x86_64-linux.gem

希望這可以幫助。

看來bundler具有:path選項。 它將相對於項目的Gemfile位置運行。 該路徑僅指定文件夾,而不指定實際的gem名稱:

gem 'system-api', :path => "vendor"

有關更多信息,請參見捆綁程序的Gemfile文檔

如果將X.gem文件放入./vendor/cache,則可能會起作用

如果運行“捆綁包”,則捆綁器將在其中放置內置的.gem文件。 因此,如果您自己將其放在此處,捆扎機會在此處找到它嗎? 也許。 但是我不確定在./vendor/cache中打包一些寶石,而其他人不打包的想法,也不完全確定Bundler是否支持,因為我認為“捆綁包”堅持將所有em放在其中。

http://gembundler.com/bundle_package.html http://gembundler.com/man/bundle-package.1.html

如果不是將預先構建的X.gem檢入到存儲庫中,而是可以將X gem的源檢查到存儲庫中,並且源文件包含X.gemspec文件,則可以使用:path選項。 但是我認為,您已經發現:path選項希望指向源,而不是* .gem包。 如果僅將* .gem解壓縮,則可能會生成一個目錄,您可以在其中使用bundler gem:path。 (* .gem產品只是一個zip文件...我想。)

這不是一個確定的答案,但是可能需要探索一些想法。

我會說這是正常的gem list ,不會顯示您的寶石。 您是通過捆綁程序安裝的,運行gem list時不會調用捆綁程序。 相反,請檢查bundler exec gem list

順便說一句,在使用Bundler時,應始終在運行任何命令行之前使用bundler execrails server除外,它具有自己的方式來啟動和運行Bundler): bundle-exec手冊頁

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM