سؤال

الخلفية الدرامية

وأنا على القضبان 2،1 وتحتاج إلى تجميد جوهرة كابيسترانو إلى مجلد بائع بلدي (كما مضيفي قد كسر تبعيات على جوهرة الغطاء وأريد أن أجعل نفسي مستقلة قدر الإمكان).

في الجهاز الخاص بي ويندوز المحلية لقد وضعت ما يلي بلدي environment.rb

config.gem "capistrano", :version => "2.5.2"
config.gem "net-ssh", :lib => "net/ssh", :version => "2.0.4"
config.gem "net-scp", :lib => "net/scp", :version => "1.0.1"
config.gem "net-sftp", :lib => "net/sftp", :version => "2.0.1"
config.gem "net-ssh-gateway", :lib => "net/ssh/gateway", :version => "1.0.0"

وكانت بالفعل تثبيت الأحجار الكريمة ولذا فإنني جمدت لهم. فحص ...

>rake gems
...
[F] capistrano = 2.5.2
[F] net-ssh = 2.0.4
[F] net-scp = 1.0.1
[F] net-sftp = 2.0.1
[F]net-ssh-gateway = 1.0.0

وبعد ذلك الالتزام SVN محليا والتحديث على مربع لينكس همز.

مشكلة

وعندما أحاول وتشغيل نسختي المجمدة من كابيسترانو أحصل على الخطأ التالية.

$ ./vendor/gems/capistrano-2.5.2/bin/cap deploy-with-migrations 
./vendor/gems/capistrano-2.5.2/bin/cap:3:in `require': no such file to load --capistrano/cli (LoadError)
    from ./vendor/gems/capistrano-2.5.2/bin/cap:3

وأي أفكار ما فعلته خطأ؟

تحديث

راجع السؤال الجديدة ذات الصلة

هل كانت مفيدة؟

المحلول

وأنت لم تفعل شيئا خاطئا. كنت تشاهد هذه المشكلة لأنه لم يقصد الملف cap تحت capistrano/bin/cap ليتم تشغيلها باعتبارها تقف وحدها. سترى نفس النتيجة إذا حاولت تشغيله من مجلد جوهرة الأساسي. للتنفيذ cap (المخزنة في /usr/bin/cap على لينكس القياسية تثبيت) يتطلب rubygems، ويسجل كابيسترانو و<م> ثم بتحميل الملف capistrano/bin/cap.

وأحد الحلول لهذا سيكون لإضافة require 'rubygems' إلى كابيسترانو / بن / ملف الحد الأقصى الخاص بك:

#!/usr/bin/env ruby
require 'rubygems'
require 'capistrano/cli'
Capistrano::CLI.execute

إذا كنت لا ترغب في تعديل capistrano/bin/cap هل يمكن أن تشمل على وجه التحديد مكتبة جواهر روبي عند تشغيله باستخدام العلامة -r. أن القيادة نظرا بهذا الشكل:

$ ruby -r rubygems ./vendor/gems/capistrano-2.5.2/bin/cap deploy-with-migrations

نصائح أخرى

وهناك طريقة أخرى لاستخدام إصدار محدد من كابيسترانو أن يكون شيء من هذا القبيل، إضافة اسم مستعار ل.bash_login الخاص بك كما يلي:

alias cap1='cap _1.4.2_ '

وحيث CAP1 هو الأمر الذي سيتم تشغيل و<م> 1.4.2 هو الإصدار الذي تريد هذا الأمر لتشغيل، ثم يمكنك:

cap1 deploy

وبعد ذلك استخدام هذا الإصدار من كابيسترانو لنشر التطبيق الخاص بك.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top