استئناف: الحفاظ على بيئة تطوير محدثة

ولكن الآن يريد Discourse 3.2.1 ويبدو أن asdf لا يعرف عن 3.2.1. كيف تدير ذلك؟

asdf list all ruby|grep 3.2.1

لا يُرجع شيئًا.

نظرًا لأن وظيفتك تتضمن قياس أداء إصدارات روبي، فهذا منطقي للغاية، ولكن ألا يحتاج غالبية المطورين داخل وخارج CDCK ببساطة إلى بيئة تطوير عاملة دون الحاجة إلى معرفة المكتبات المطلوبة لتجميع imagemagick (أو أي شيء آخر) بشكل صحيح؟

شيء ما يحتاج إلى تحديث من جانبك لأن ruby-build بالتأكيد لديه 3.2.1

4 إعجابات

تخميني هو أن @pfaffman نسي تشغيل asdf plugin update --all؟

إعجابَين (2)

DOH! أقسم أنني حاولت على الأقل القيام بـ

asdf plugin update ruby

ولكن يبدو أنني لم أفعل ذلك أيضًا. :crying_cat_face: :person_shrugging:

ولكن الآن، أنا قريب جدًا! إليك برنامجي النصي الذي يسحب Discourse، ويحدّث Ruby، و imagemagick، و nodejs، ويقوم بترحيل قاعدة البيانات.

DISCOURSE_SRC=/home/pfaffman/src/discourse-repos/discourse
DISCOURSE_DOCKER_SRC=/home/pfaffman/src/discourse-repos/discourse_docker
cd $DISCOURSE_SRC

  git -C $DISCOURSE_DOCKER_SRC pull https://github.com/discourse/discourse_docker
  DISCOURSE_BASE=$(grep -e ^image= $DISCOURSE_DOCKER_SRC/launcher|cut -d'"' -f2)
  cd -

  docker pull $DISCOURSE_BASE
  asdf plugin add nodejs #https://github.com/asdf-vm/asdf-nodejs.git
  asdf plugin add ruby #https://github.com/asdf-vm/asdf-ruby.git
  asdf plugin add imagemagick
  asdf plugin update --all
  RUBY_VERSION=$(grep -e ^RUBY_VERSION $DISCOURSE_DOCKER_SRC/image/base/install-ruby|cut -d'"' -f2)
  asdf install ruby $RUBY_VERSION
  asdf local ruby $RUBY_VERSION
  IMAGE_MAGICK_VERSION=$(grep -e ^IMAGE_MAGICK_VERSION ~//src/discourse-repos/discourse_docker/image/base/install-imagemagick|cut -d'"' -f2)
  asdf install imagemagick $IMAGE_MAGICK_VERSION
  asdf local imagemagick $IMAGE_MAGICK_VERSION
  # 2023-04-24 debian and pop!os have different nodejs versions
  NODE_VERSION=$(docker run discourse/base:2.0.20230420-0104 bash -c 'node --version'|cut -d'v' -f2)
  asdf install nodejs $NODE_VERSION
  asdf local nodejs $NODE_VERSION
  cd $DISCOURSE_SRC
  git checkout main
  git pull
  bundle install
  ./bin/rake db:migrate
  RAILS_ENV=test ./bin/rake db:migrate

أعتقد أنه من المقبول الاحتفاظ بـ redis و postgres يدويًا، على الرغم من أنه في المرة القادمة التي أقوم فيها بتثبيت نظام تشغيل وأجد أن نظام التشغيل الخاص بي و Discourse قد اختلفا، فمن المحتمل أن أغير رأيي!

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

وبصراحة، لست متأكدًا من عدد مطوري المكونات الإضافية الذين قد يتأثرون بإصدارات imagemagick أيضًا. أعتقد أن Ruby و nodejs فقط من المحتمل أن تكونا عوائق.

قد يكون من الأسلم الحصول على إصدارات ruby و imagemagick من الصورة أيضًا، حيث أشك في أنه عندما يكون لدى debian إصدار Ruby المطلوب، فإن هذا البرنامج النصي سيختفي، ولكني كنت قد كتبت هذا المنطق بالفعل عندما علمت أنه كان عليّ سحب إصدار العقدة من الصورة الأساسية.

وفي الوقت بين إنقاذي بواسطة @falco باستخدام asdf plugin update --all وكتابتي لهذا البرنامج النصي، ارتفع إصدار Ruby إلى 3.2.2، والتقطت شفرتي وقام asdf بتثبيته! لقد أضفت الشفرة أعلاه إلى برنامج التحديث النصي الخاص بي، والذي يتضمن هذا:

إعجاب واحد (1)

تم إغلاق هذا الموضوع تلقائيًا بعد 30 يومًا من آخر رد. لم تعد الردود الجديدة مسموح بها.