لا يتم تثبيت Bundler من مخزن الريبو الخاص، ولكنه يُبلغ عن ذلك
-
21-12-2019 - |
سؤال
لا يبدو أن ملف الحزمة الخاص بي يقوم بسحب جوهرة من مستودع خاص بشكل صحيح.
داخل ملف Gemfile الخاص بي، لدي:
group :internal do
gem 'private', git: 'ssh://git@internalserver.org:<port>/gems/private.git'
end
يتم تشغيل هذا، وينتج عن التسجيل المطول ما يلي:
Updating ssh://git@internalserver.org:<port>/gems/private.git
Cloning into '/Users/<username>/.rvm/gems/ruby-2.0.0-p247/bundler/gems/private-ddec73caf50f'...
done.
عندما أنتقل إلى /Users/<username>/.rvm/gems/ruby-2.0.0-p247/bundler/gems/
, ، أرى أن المستودع الصحيح مستنسخ بشكل صحيح، مع Gemspec بالاسم الصحيح.
عند الانتهاء من تشغيل المجمع، gem list
لا يظهر private
جوهرة.وينتج خطأ عندما أحاول أن أطلب ذلك.
لقد حاولت حذف ملف Gemfile.lock الموجود في المستودع ثم إعادة تشغيله، لكن ذلك لم ينجح.يتم تثبيت جميع الجواهر العامة الموجودة في ملف Gemfile بشكل صحيح.
أرقام الإصدارات / البرامج ذات الصلة:
- إصدار المجمع 1.3.5
- آر في إم 1.23.14
- روبي 2.0.0p247
- اتلاسان ستاش
المحلول
تعد أحجار Git امتدادًا خاصًا بـ Bundler لـ Rubygems.ال gem
الأمر لا يعرف شيئًا عن هذه الأشياء، لذا لم يتم إدراجها بواسطة gem list
.يمكنك الجري bundle show
للاطلاع على قائمة الأحجار الكريمة التي يتعرف عليها Bundler، والتي ستتضمن أحجار git.
لطلب الجوهرة، ستحتاج إلى التأكد من إعداد مسار التحميل بشكل صحيح بواسطة Bundler.هناك ثلاث طرق للقيام بذلك:
- يتصل
require 'bundler/setup'
في التطبيق الخاص بك.هذا أمر نموذجي لتطبيقات Rails. المزيد عنBundler.setup
- يتصل
bundle exec <command>
لتشغيل الأمر.يعد هذا أكثر شيوعًا عند تشغيل أوامر من جوهرة، مثلrake
أوrspec
. المزيد عنbundle exec
- إنشاء بنستوب للأوامر التي تقوم بتشغيلها بشكل متكرر.
يرى http://bundler.io/v1.5/git.html لمزيد من المعلومات حول git Gems.