تم فصل هذا عن موضوع إعداد بيئة التطوير لـ win 11 wsl.
مشاكلي تتعلق بإعداد تطوير (غير دوكر) مثبت على أوبونتو 22.04.3
… شكرًا لك على هذا، على الرغم من أنني اضطررت إلى القيام ببعض الخطوات اليدوية الإضافية حيث أن المثبت المعدل لم يقم بتثبيت أحدث إصدارات npm أو ruby على ما يبدو.
أستخدم أيضًا ubuntu-22.04
تثبيت أحدث إصدار من npm باستخدام (الخيار 2): https://www.digitalocean.com/community/tutorials/how-to-install-node-js-on-ubuntu-22-04
تثبيت pnmp: npm install -g pnpm
تثبيت أحدث إصدار من ruby (الطريقة 3): https://ubuntuhandbook.org/index.php/2024/01/install-ruby-ubuntu-24-04/
أضف هذا إلى bash.rc:
export PATH="$HOME/.rbenv/bin:$PATH"
eval "$(rbenv init -)"
تثبيت imagemagik يدويًا، أحدث إصدار (تأكد من الانتقال إلى قسم “تثبيت أحدث إصدار من ImageMagick من الكود المصدري (للمستخدمين المتقدمين واليائسين)”: https://itsfoss.com/install-imagemagick-ubuntu
فقط بعد كل هذا تمكنت من تسجيل الدخول إلى المثيل…
بعد قضاء اليوم بأكمله في إعداد نسخة التطوير، كنت سعيدًا جدًا… يبدو كل شيء على ما يرام، باستثناء تحميل الصور الرمزية (avatars). على وجه التحديد، يمكنني كمستخدم تحميل صورة رمزية وتظهر بشكل صحيح في مربع تحميل الصورة الرمزية، ولكن عندما أنقر على حفظ، يتم عرض الصورة الرمزية الاحتياطية فقط… لا توجد أخطاء في السجل…
هذا أمر مهم جدًا بالنسبة لي لأنني قمت بإعداد نسخة التطوير لاختبار عملية ترحيل (migration)، وأحد تلك الاختبارات هو التأكد من أنها تحصل على الصور الرمزية
… لذلك أريد التأكد من أنها تعمل قبل المتابعة في اختبار الاستيراد.
الصور التي تم تحميلها في المواضيع تظهر بشكل صحيح، لا توجد مشكلة.
هل لدى أي شخص أية أفكار؟ أي مساعدة ستكون محل تقدير كبير.
قد تكون عناوين URL للصور صعبة بعض الشيء على البيئة المحلية.
تأكد من بدء تشغيل الخادم المحلي الخاص بك باستخدام FORCE_HOSTNAME=localhost:4200 bin/ember-cli -u
من الأفضل استخدام نسخة اختبار سحابية لمحاكاة وجهتك النهائية … في الواقع، أوصي باختبار عمليات الترحيل (migrations) في السحابة في نهاية المطاف.
إعجاب واحد (1)
جربت ذلك، لم ينجح الأمر.
أنا متعب للغاية بعد قضاء اليوم بأكمله في إعداد بيئة التطوير المحلية هذه حتى وصلت إلى ما وصلت إليه، لا أستطيع أن أتصور أن كل ذلك كان بلا جدوى الآن
اعتقدت أنني وصلت!
كانت عملية تفكيري لبيئة التطوير المحلية هي:
تشغيل برنامج الاستيراد محليًا، عمل نسخة احتياطية من ديسكورد، ووضعها على مثيل الإنتاج السحابي المناسب عندما يبدو كل شيء جيدًا…
يمكنك التحقق من عناوين URL الخاصة بالصور الرمزية في أدوات المطور بالمتصفح وقد تجد أنها غير صحيحة
عمليات التثبيت المحلية مفيدة جدًا للتطوير والاختبار … ولكنها ليست مثالية لمعالجة الصور
إعجاب واحد (1)
ما يحدث على الأرجح هو أن WSL لا يكشف 127.0.0.1 إلى Windows، لذلك لا يلتقطه متصفح Windows.
بدلاً من ذلك، حاول التشغيل من Chrome داخل WSL2 واستخدم ذلك؟
تخميني هو أن الصور الرمزية يتم عرضها باستخدام عنوان 127.0.0.1…
آه آسف، أنا أستخدم أوبونتو، على جهاز افتراضي يعمل بنظام أوبونتو. لم أقصد اختطاف هذا الموضوع الخاص بويندوز 11.
إعجاب واحد (1)
إليك السلوك الدقيق.
تحميل الصور في المشاركات يعمل بشكل جيد.
يبدو أن تغيير صورة الرمز (الأفاتار) الخاص بالمستخدم يعمل عند تحميل الصورة لأول مرة ولا تزال في مربع حوار اختيار الصورة:
ولكن عند الضغط على “حفظ التغييرات” (Save changes)، لا تظهر الصورة المحملة وتظهر الصورة الافتراضية:
لقد تم تحميل الصورة ويمكن عرضها بالانتقال إلى المصدر:
وإذا قمت بتغيير الرابط (URL) في أدوات المطور (dev tools)، فإنه يعرض بشكل صحيح في صفحة التفضيلات:
إذًا… الفرق هو الرابط (URL) - صورة الرمز المخصصة التي تم تحميلها تحتوي على “http://127.0.0.1:4200/uploads/default/original…” ولكن الصفحة تريد عرض
“/user_avatar/127.0.0.1/user1/…”
…ما الذي أغفله هنا؟
ملاحظة: في المواضيع/المشاركات، تظهر الصورة بشكل صحيح بالرابط: http://localhost:4200/uploads/default/original/……….etc
أي مساعدة محل تقدير!
حسناً، أعتقد أنني أصل إلى جذر المشكلة، هناك مشكلتان، سأعود إليك بالتقرير عندما يعمل الأمر.
حسناً…
المشكلة الأولى - كان مسار الصورة الرمزية هو عنوان بروتوكول الإنترنت 127.0.0.1 بينما كانت جميع عناوين URL الأخرى هي localhost - هل يمكن أن يحدث ذلك فرقاً؟ لقد قمت بتغييره على أي حال، عن طريق الدخول إلى rails c (لأنه لم يبدُ أنه يلتقط المعلمات من سطر الأوامر لبدء Discourse (FORCE_HOST=localhost وما إلى ذلك)، كانت فارغة في rails).
rails c
SiteSetting.force_hostname = "localhost"
SiteSetting.port = 4200
exit
بعد ذلك، أصبحت مسارات الصور الرمزية localhost وليست عنوان بروتوكول الإنترنت بعد إعادة تشغيل الموقع. ومع ذلك، لم تكن الصور الرمزية تعمل بعد.
مزيد من التحقيق في السجلات بمجرد قيامي باستيراد صورة رمزية:
tail -n 200 log/development.log
كشف:
convert: no decode delegate for this image format jpeg:/home/bob/discourse/public/uploads/default/original/1X/92bb0d46e6a4b8a1333505b9d2da59a5ed1721ec.jpeg[0]' @ error/constitute.c/ReadImage/752.\nconvert: no images defined jpeg:/tmp/discourse-thumbnail20260202-4096-qjyo93.jpeg' @ error/deprecate.c/ConvertImageCommand/3368.\n"
وبعد بعض البحث اكتشفت أن السبب كان أنني قمت بتثبيت Imagemagick ولكن ليس تفويضات jpeg أولاً. قمت بإلغاء تثبيت Imagemagick، وتثبيت تفويضات jpeg (وغيرها):
sudo apt install -y libpng-dev libtiff-dev libwebp-dev libheif-dev liblcms2-dev zlib1g-dev libjpeg-turbo8 libjpeg-turbo8-dev
ثم أعدت تثبيت Imagemagick من المصدر:
./configure \
--prefix=/usr/local \
--with-modules \
--disable-static \
--with-quantum-depth=16 \
--with-jpeg=yes \
--with-png=yes \
--with-tiff=yes \
--with-webp=yes \
--with-heic=yes \
--with-lcms=yes
make -j"$(nproc)"
sudo make install
sudo ldconfig
أعدت تشغيل خادم Discourse وعملت الصور الرمزية على الفور 
أنا منزعج من نفسي لأنني ركزت على مراجع عناوين URL الخاصة بـ ip/localhost بدلاً من التحقق من الأساسيات… ولكن ها نحن ذا، تعلمت الكثير في اليومين الماضيين والآن يعمل كل شيء 