سؤال

وأنا حاليا على درمهوست محاولة تشغيل التطبيق القضبان 2.3.5.

وهنا هو الوضع، خوادم درمهوست لديها القضبان 2.2.2 تثبيت. وبطبيعة الحال، لا يمكن تحديث النسخة القضبان مجموعة مشتركة، لذلك أنا جمدت القضبان في بلدي البائع. درابزون 2.3.5 يتطلب جوهرة رف v1.0.1. يستخدم درمهوست جوهرة رف v1.0.0. حتى عندما أحاول تعريف:

config.gem "rack", :version => "1.0.1"

وأحصل على:

can't activate rack (~> 1.0.1, runtime) for [], already activated rack-1.0.0 for []

وإذا ما أنا بحاجة إليه فعلا هو تجاوز طلبي التطبيق لاستخدام 1.0.1 القيام به، واستخدام لدرمهوست 1.0.0. لا أحد يعرف كيفية تكوين هذا؟ هل من الممكن؟ شكرا للمساعدة.

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

المحلول

وأنت تريد دائما تقريبا على فك الأحجار الكريمة أن التطبيق الخاص بك يعتمد على في مجلد vendor. يمكنك أن تفعل ذلك مع هذا الأمر rake:

rake gems:unpack:dependencies

وهذا سيخلق vendor/gems المجلد ضمن المجلد الجذر التطبيق الخاص بك وتفريغ كل من الأحجار الكريمة التي أعلنتم مع الأمر config.gem فيه.

وهذا من شأنه ليس فقط حل مشكلتك مع الإصدارات rack غير متطابقة، ولكن أيضا التأكد من أن كنت تستخدم نفس الإصدارات بالضبط من الأحجار الكريمة في الإنتاج كما تستخدمه في التنمية، التي يمكن أن تمنع الكثير من الصداع المحتملة في المستقبل.

نصائح أخرى

لقد تناولت درمهوست هذه المسألة على ويكي دعمهم الآن.

http://wiki.dreamhost.com/ Ruby_on_Rails # Rails_2.3.5 _-_ Rack_1.0_already_activated_.28fix.29

ومن تلك الصفحة:

<اقتباس فقرة>   

عند استخدام القضبان 2.3.5 ستحصل مشكلة من الركاب قائلا حامل 1.0.1 لا يمكن تحميل الرف لأن 1.0 تنشيط بالفعل.

     

واحد طريقة لحل هذه هي عن طريق تجميد القضبان وفك جوهرة الرف إلى بائع / الأحجار الكريمة / رف 1.0.1

     

وبمجرد القضبان وحامل هي في البائع / القضبان وبائع / الأحجار الكريمة / رف 1.0.1 يجب تعديل action_controller في ملف: بائع / القضبان / actionpack / ليب / action_controller.rb

     

في أرقام الأسطر 34 و 35 يجب أن يكون علق بها وإضافة ما يلي إلى تحميل رف من بائع / الأحجار الكريمة

   load "#{RAILS_ROOT}/vendor/gems/rack-1.0.1/lib/rack.rb"
     

والنتيجة النهائية ينبغي أن ننظر بشيء من هذا القبيل:

   #gem 'rack', '~> 1.0.1'
   #require 'rack'
   load "#{RAILS_ROOT}/vendor/gems/rack-1.0.1/lib/rack.rb"
     

والمشكلة الحقيقية هي أن الركاب بالفعل الأحمال الرف 1.0 و أعتقد الركاب يجب تحميل 1.0.1 من أجل هذا الإختراق للذهاب بعيدا.

وrake gems:unpack:dependencies لا يسمح لك لتفريغ أشعل النار في مجلد بائع / المجوهرات الخاص بك.

لقضية درمهوست، يجب عليك أن تفعل ما قال مات. تجميد القضبان إلى 2.3.4.

rake rails:freeze:gems VERSION=2.3.4

ودرمهوست يستخدم نسخة قديمة من الركاب الذي تحميلها مسبقا الرف 1.0.0. لا يمكن تحميل الرف 1.0.1 مرة واحدة رف 1.0.0 تم مسبقة. ولذلك، فإن أحدث نسخة من القضبان الممكن للDH هو القضبان 2.3.4 والرف 1.0.0.

وأنا واجهت نفس المشكلة عندما حاولت الترقية إلى 2.3.5.

وأتساءل ما الخادم كنت في ذلك ما زال يدير القضبان 2.2.2؟ كنت أتصور أن درمهوست انتقل الجميع إلى 2.3.4 الآن. شكوت معهم منذ 3 أشهر، وأنهم ترقية الركاب في خدمة بلدي بعد يوم حتى أتمكن من تثبيت الإصدار القضبان الحالي. لذلك أود أن أوصي لكم لتقديم مذكرة دعم إذا القضبان 2.3.5 أمر حيوي للتطبيق. ولكن لم تكن هناك العديد من التغييرات بين 2.3.4 و 2.3.5، لذلك هناك احتمالات أن التطبيق يعمل فقط كذلك على 2.3.4. هل حاولت تشغيله على vendored 2.3.4؟

وهذا الأمر لا يتعلق في جوهره المفقود، انها عن الأحجار الكريمة التي يتم المطلوبة مرتين مع الإصدارات غير متطابقة. أشعل النار الأحجار الكريمة: فك: تبعيات لا يصلح أن (حاولت)

وأظن انها مشكلة مع نسخة الركاب درمهوست مرة أخرى. خدمة بلدي (بوينس آيرس) له الركاب 2.2.5. أحدث نسخة الركاب هو 2.2.7.

ولم عملية تحديث جوهرة بسيط من رف لا تعمل بالنسبة لي لأنه يبدو أن القضبان 2.3.5 يريد الرف 1.0.1 على وجه التحديد. لذلك، عندما فعلت -v جوهرة تحديث رف = 1.0.1، 2.3.5 القضبان التي الحق.

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

وبالنسبة لي كان كافيا لتعديل vendor/rails/actionpack/lib/action_controller.rb على خط 34 من gem 'rack', '~> 1.0.1' إلى gem 'rack', '~> 1.0' وذهب بعيدا المشكلة.

وانظر: <لأ href = "https://rails.lighthouseapp.com/projects/8994-ruby-on-rails/tickets/3685-actionpack-235-gem-declares-incompatibility-with-rack-110" يختلط = "نوفولو"> https://rails.lighthouseapp.com/projects/8994-ruby-on-rails/tickets/3685-actionpack-235-gem-declares-incompatibility-with-rack-110

وأعتقد أنه في لحظة الأفضل سيكون لكسر الجمود الذي يعتري كل شيء، واستخدام ما هو على درمهوست]. لديهم القضبان حاليا 2.3.4 وإذا كنت تستطيع الانتظار ليوم أو اثنين - DREAMHOST ورفع مستوى القضبان الأحجار الكريمة ل2.3.5 (كان يجب ترقية بالفعل أمس 21 ديسمبر - ولكن لسبب ما لم يوضح هم لا يزال على 2.3.4).

وFWIW، يمكنني تأكيد أن تجميد جوهرة لا يحل المشكلة. في الواقع، حيث قبل بلدي نشر كانت تنفجر (باستخدام حامل DH و0.3.0، بطريقة أو بأخرى!)، والآن لي تدور المتابعة يفجر مع نفس الخطأ رأينا أعلاه. ربما حان الوقت للتحرك بلدي لعبة / دليل التطبيق مفهوم "الحقيقية" استضافة إذا كنت ترغب في الحصول على أي عمل يتم في نهاية المطاف.

وUPDATE: تم ترقية الخادم بلدي الرف 1.0.1 على 24 ديسمبر 2009، حل مشكلة بالنسبة لي. إذا كنت لا تزال تواجه مشاكل في حسابك أوصي مراسلة الدعم؛ كانت تستجيب إلى حد ما في حالتي (مع رسائل البريد الإلكتروني، وليس العمل، ولكن بثمن كنت حقا لا يمكن أن يكون كل شيء).

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