أحاول تشغيل تثبيت التطوير الخاص بي على جهاز كمبيوتر محمول يعمل بنظام Linux.
لدي نص برمجي يحصل على إصدارات Ruby و imagemagick و nodejs من discourse_docker ويضبطها باستخدام asdf. إليك جزء منه:
RUBY_VERSION=$(grep "^ARG RUBY_VERSION" $DISCOURSE_DOCKER_SRC/image/base/slim.Dockerfile |cut -d'=' -f2)
echo "GOT RUBY VERSION!! $RUBY_VERSION"
asdf install ruby $RUBY_VERSION
asdf global ruby $RUBY_VERSION
IMAGE_MAGICK_VERSION=$(grep -e ^IMAGE_MAGICK_VERSION ~/src/discourse-repos/discourse_docker/image/base/install-imagemagick|cut -d'"' -f2)
echo "GOT IMAGE_MAGICK_VERSION: $IMAGE_MAGICK_VERSION"
asdf install imagemagick $IMAGE_MAGICK_VERSION
asdf global imagemagick $IMAGE_MAGICK_VERSION
# 2023-04-24 debian and pop!os have different nodejs versions
NODE_VERSION=$(docker run discourse/base:release bash -c 'node --version'|cut -d'v' -f2)
#NODE_VERSION=$(grep node ~/src/discourse-repos/discourse/.tool-versions|awk '{print $2}')
echo "GOT NODEJS version: $NODE_VERSION"
asdf install nodejs $NODE_VERSION
asdf global nodejs $NODE_VERSION
ولكن عندما أقوم بتشغيل bin/ember-cli أحصل على هذا:
./bin/ember-cli
warning Resolution field "unset-value@2.0.1" is incompatible with requested version "unset-value@^1.0.0"
error ember-template-lint@6.0.0: The engine "node" is incompatible with this module. Expected version "^18.18.0 || ^20.9.0 || >=21.1.0". Got "18.17.1"
error Found incompatible module.
18.17.1 هو الإصدار الموجود في Discourse. لماذا أحتاج إلى إصدار مختلف للتطوير عن الذي يعمل به Discourse؟
عندما أقوم بالتحديث إلى 18.18.0 ثم أقوم بتشغيل ember-cli أحصل على “SyntaxError: Unexpected token in JSON at position 219260” . . . شيء لا يمكنني فهمه تمامًا.
ماذا أجرب الآن؟
هل هناك طريقة موثوقة لمعرفة أن بيئة التطوير الخاصة بي مناسبة للتطوير؟ يبدو أنه مرة واحدة في الشهر أقضي ساعة أو أكثر في محاولة جعل نظام التطوير الخاص بي يعمل على الإطلاق. هل يستخدم الناس (مثل @sam و @falco) بيئة تطوير Docker حقًا؟ ربما يجب أن أستهدف حاوية تلك للحصول على إصدارات Ruby و Node؟