هل أحتاج إلى العودة إلى إصدار أقدم من Rails فقط لتشغيل تطبيق قديم واحد (من بين مشكلات أخرى)؟

StackOverflow https://stackoverflow.com/questions/800089

سؤال

لدي تطبيق Rails قديم وأحتاج إلى تشغيله.لكن لدي أحدث إصدار من Rails.

عندما أحاول تشغيل هذا التطبيق القديم يقول:

مفقودة القضبان 1.99.0 جوهرة.لو سمحت gem install -v=1.99.0 rails

ولكن عندما أقوم بتشغيل الأمر: تثبيت الجوهرة -v=1.99.0 القضبان

خطأ:لا يمكن العثور على قضبان الأحجار الكريمة محليا أو في مستودع

لست متأكدا ما يجب القيام به بعد ذلك.هل يمكن لأحد أن يساعدني في فهم ما يحدث هنا؟

وسؤالي الثاني المتعلق بهذه المشكلة هو:يبدو من السخف أنني بحاجة إلى العودة إلى إصدار أقدم من Rails فقط لتشغيل هذا التطبيق القديم - هل يجب أن تكون هناك طريقة أفضل للقيام بذلك؟

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

المحلول

بقدر ما أعلم، v1.99.0 هو نوع من v2.0 الإصدار التجريبي، لذلك يمكنك محاولة التثبيت v2.0.x, ، تغيير RAILS_GEM_VERSION في config/environment.rb والجري rake rails:update.

إذا فكرت في الأمر، فهو ليس سخيفًا كما قد يبدو للوهلة الأولى.يمكنك إنشاء تطبيق باستخدام إطار عمل ويب سريع التطور مثل RoR.اختياراتك هي:استمر في تطوير تطبيقك بنفس الوتيرة التي يتطور بها إطار العمل تقريبًا، أو قم بتجميد Rails Gem (وكل شيء آخر يعتمد عليه تطبيقك، مثل الأحجار الكريمة والمكونات الإضافية) في تطبيقك لجعله أقل عرضة لتوقع تحديثات الجوهرة.

نصائح أخرى

بخصوص السؤال الثاني:نعم انه سخيف.لحسن الحظ، اكتشف فريق Rails هذا السخافة وفي مرحلة ما أعطونا القدرة على "تجميد" إصدارات مكتبات Rails التي يتطلبها التطبيق (وأيضًا إصدارات جوهرية محددة) في vendor الدليل.

لتجميد إصدار Rails الخاص بك:

rake rails:freeze:gems

هناك مشاركة مدونة جيدة منذ فترة وصف هذا.

ما لم تقم بتثبيت RVM ونشره، فإن التثبيت الخاص بك سوف يؤدي إلى التراجع عن تثبيت قضبان النظام، مما سيؤثر على مشاريعك الأخرى.إذا كنت تريد إدارة بيئة التطوير الخاصة بك يدويًا بهذه الطريقة، فيمكنك إلغاء تثبيت Rails أولاً، ثم تثبيت الإصدار المطلوب من Rails للمشروع الحالي.

لكن حاول تثبيت Rails Gem بدلاً من ذلك باستخدام بناء الجملة هذا:

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