مناقشة حول راسبيري باي | مدونة

لقد كنت أحاول تشغيل discourse على جهاز raspberry pi 4 لبضعة أشهر ولم أفلح.

بدا الأمر وكأن صورة docker قديمة، لذا قمت بإلغاء تثبيت وإعادة تثبيت صورتي docker أخريين ولا يزال الأمر غير ناجح.

أي اقتراحات؟

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

نعم، قم بتثبيت توزيعة arm64 على جهاز Pi الخاص بك.

استغرق الأمر عامين تقريبًا لمؤسسة Raspberry Pi لإصدار بنية البرامج الصحيحة لأنهم كانوا لا يزالون يطورون للأجهزة 32 بت. يرجى تغيير صورتك إلى الإصدار الحالي arm64. الخبر السار هو أنه سيسمح لك باستخدام كل ذاكرة الوصول العشوائي البالغة 8 جيجابايت إذا كان هذا هو جهازك.

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

يبدو أنني أقوم بتشغيل arm64 بالفعل وهو لا يعمل.

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

يجب عليك تأكيد ما تقوم بتشغيله.

cat /proc/cpuinfo

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

حسنًا، كانت تلك كمية كبيرة من البيانات، وبصراحة، الكثير منها غير مألوف. أي سطر يحدد ما أقوم بتشغيله؟

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

أعتقد أن
uname -a
سيساعد هنا.

إعجابَين (2)

شكرا لك!
النتائج:
Linux raspberrypi 6.1.21-v8+ #1642 SMP PREEMPT Mon Apr 3 17:24:16 BST 2023 aarch64 GNU/Linux

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

حسنًا، هذه نواة 64 بت (aarch64)، ومع ذلك كان لديك رسالة Docker تشكو من armv8. لا أعرف هذه المنطقة أو القصة الكاملة لكيفية وصولك إلى هنا… النصيحة الشائعة هي أخذ نسخة احتياطية آمنة واستعادة نظام تشغيل جديد وتثبيت Discourse جديد.

آمل ألا يكون الأمر كذلك، وأن التثبيت الناجح سيواجه مشكلة حتمًا عند وقت الترقية.

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

ما هو ناتج أمر docker info الخاص بك؟
خاصة السطر الذي يقول Architecture:.

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

معمارية وحدة المعالجة المركزية: 8

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

lol، لقد فعلت ذلك مرات عديدة وأنا مستعد لتكرار ذلك.

حاليًا، أنا أستخدم Raspberry Pi 400 Rev 1.0 يعمل بنظام Bullseye 64 lite.
لقد جربت Bullseye 64، و 64 lite، و 32 lite؛ و Bookworm 64. إذا كنت أتذكر بشكل صحيح، فقد حصلت على نفس الخطأ الذي نشرته في كل حالة.

بعد البحث قليلاً، اقترح صديق إعادة الوميض إلى Bullseye 64 lite وأن هذا يجب أن يحل المشكلة. لكنه لم يفعل.

ملاحظة جانبية، عندما أقوم بتشغيل أمر docker sudo docker run hello-world، فإنه ينتج الرسالة المتوقعة “Docker is working”.

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

ليس هذا :stuck_out_tongue: . يرجى لصق المخرجات بأكملها.

3 إعجابات

sudo docker info
العميل: Docker Engine - Community
الإصدار: 24.0.7
السياق: افتراضي
وضع التصحيح: خطأ
المكونات الإضافية:
buildx: Docker Buildx (Docker Inc.)
الإصدار: v0.11.2
المسار: /usr/libexec/docker/cli-plugins/docker-buildx
compose: Docker Compose (Docker Inc.)
الإصدار: v2.21.0
المسار: /usr/libexec/docker/cli-plugins/docker-compose

الخادم:
الحاويات: 2
قيد التشغيل: 1
متوقفة مؤقتًا: 0
متوقفة: 1
الصور: 4
إصدار الخادم: 24.0.7
مشغل التخزين: overlay2
نظام الملفات الداعم: extfs
يدعم d_type: صحيح
يستخدم النسخ الوصفية: خطأ
الفرق الوصفي الأصلي: صحيح
userxattr: خطأ
مشغل التسجيل: json-file
مشغل Cgroup: systemd
إصدار Cgroup: 2
المكونات الإضافية:
Volume: local
Network: bridge host ipvlan macvlan null overlay
Log: awslogs fluentd gcplogs gelf journald json-file local logentries splunk syslog
Swarm: غير نشط
وقت التشغيل: io.containerd.runc.v2 runc
وقت التشغيل الافتراضي: runc
الثنائي الأولي: docker-init
إصدار containerd: 3dd1e886e55dd695541fdcd67420c2888645a495
إصدار runc: v1.1.10-0-g18a0cb0
إصدار init: de40ad0
خيارات الأمان:
seccomp
الملف التعريفي: مدمج
cgroupns
إصدار النواة: 6.1.21-v8+
نظام التشغيل: Debian GNU/Linux 11 (bullseye)
نوع نظام التشغيل: linux
البنية: aarch64
وحدات المعالجة المركزية: 4
إجمالي الذاكرة: 3.705GiB
الاسم: raspberrypi
المعرف: 183a2a7a-8acf-40eb-9386-c99d70ee8ed3
دليل Docker الجذر: /var/lib/docker
وضع التصحيح: خطأ
تجريبي: خطأ
السجلات غير الآمنة:
127.0.0.0/8
تم تمكين الاستعادة المباشرة: خطأ

تحذير: لا يوجد دعم لحد الذاكرة
تحذير: لا يوجد دعم لحد الـ swap

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

لا يمكن تشغيله على Raspberry Pi 4 بذاكرة وصول عشوائي (RAM) بسعة 8 جيجابايت، مع قرص SSD متصل عبر USB كوحدة تخزين واحدة. يستمر التعليق على ما يلي (على الأقل، نفد صبري بعد ساعة من الانتظار…)

I, [2024-02-06T00:58:51.743994 #1]  INFO -- : cd /var/www/discourse && su discourse -c 'yarn install --frozen-lockfile && yarn cache clean'
warning "@discourse/lint-configs > eslint-plugin-ember > ember-eslint-parser@0.2.5" has unmet peer dependency "@typescript-eslint/parser@^6.15.0".
warning "@discourse/lint-configs > eslint-plugin-ember > ember-eslint-parser@0.2.5" has incorrect peer dependency "typescript@^5.3.3".
warning "> @glint/environment-ember-loose@1.3.0" has unmet peer dependency "@glimmer/component@^1.1.2".
2024-02-06 01:15:58.966 UTC [64] WARNING:  worker took too long to start; canceled
2024-02-06 01:16:19.640 UTC [480] WARNING:  autovacuum worker started without a worker entry
2024-02-06 01:21:46.504 UTC [64] WARNING:  worker took too long to start; canceled
2024-02-06 01:22:18.863 UTC [481] WARNING:  autovacuum worker started without a worker entry

يبدو أنه لا يزال يقوم ببعض العمليات:

Tasks:  60 total,   7 running,  53 sleeping,   0 stopped,   0 zombie
%Cpu(s): 20.8 us, 60.5 sy,  0.0 ni,  0.0 id,  0.0 wa,  0.0 hi, 18.8 si,  0.0 st 
MiB Mem :   7807.7 total,   6783.7 free,    954.0 used,     70.0 buff/cache     
MiB Swap:      0.0 total,      0.0 free,      0.0 used.   6853.8 avail Mem 

    PID USER      PR  NI    VIRT    RES    SHR S  %CPU  %MEM     TIME+ COMMAND                                                                                                    
   3422 root      20   0 1928888  33180   2512 S  40.6   0.4  28:18.52 dockerd                                                                                                    
   9922 root      20   0 1105300   9984   2944 S  30.2   0.1   1:02.72 docker                                                                                                     
   3362 root      20   0 1934276  19060   1408 S  20.8   0.2  20:24.57 containerd                                                                                                 
   9416 ubuntu    20   0 1148560 298160      0 R  12.0   3.7  10:03.66 node                                                                                                       
   9158 dnsmasq   20   0   54992   2432    128 R  11.7   0.0   5:01.56 redis-server                                                                                               
   8997 root      20   0 1238120   5704    256 S  10.7   0.1   9:06.51 containerd-shim                                                                                            
   9504 ubuntu    20   0  569128  51532      0 R   8.8   0.6   5:20.97 node                                                                                                       
   9930 pollina+  20   0  353212   5692   3328 R   6.8   0.1   0:06.97 postmaster                                                                                                 
   9931 pollina+  20   0  352820   4156   2048 R   5.2   0.1   0:02.70 postmaster                                                                                                 
   9098 pollina+  20   0  352844   3004   1024 R   2.3   0.0   0:15.75 postmaster                                                                                                 
    219 root      20   0 1259732  36000  20352 S   1.0   0.5   1:10.50 cloudflared                                                                                                
   9658 root      20   0    9116   4864   2816 R   0.6   0.1   0:18.19 top                  

سيكون من الجيد لو تضمنت عملية التصريف شريط تقدم.

ما هي أفضل طريقة لـ:

  • معرفة ما الذي يقوم به؟
  • إيقافه بأمان للمحاولة مرة أخرى؟ لقد جربت sudo shutdown --reboot 0 سابقًا، ولكن ذلك أدى إلى إتلاف قاعدة بيانات postgres واضطررت إلى إعادة تشغيل الجهاز مرة أخرى.
إعجاب واحد (1)

يمكنك البحث في الرسائل التي تتلقاها مقابل المنتدى والإنترنت. أيضًا، حاول نقل هذا إلى منشور جديد بدلاً من الرد على الإعلان.

اكتبه في البحث وسترى النتائج. كرر ذلك مع ما نشرته مقابل المنتدى والإنترنت؛ يجب أن تحصل على الكثير من المعلومات.
https://meta.discourse.org/search?q=has%20unmet%20peer%20dependency

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

هذه الخطوة ليست خطوة تجميع، بل هي مجرد تنزيل لملفات JS. إنها كمية هائلة من الملفات الصغيرة، لذا أخمن أنها حالة سيئة مرضية لحل التخزين غير العادي الذي تستخدمه؟

7 إعجابات

حسنًا، سأتركه يعمل لبضعة أيام إذن. بخلاف ذلك، أعتقد أنه بدلاً من rpi4 مع SSD، سيحتاج إلى rpi5 مع SSD.

تحديث:
بعد ساعات وقراءة إضافية، قررت أنني سأحاول تغيير حاوية lxd من استخدام مجمع تخزين btrfs إلى استخدام مجمع تخزين zfs. بمجرد الانتهاء، تمكن من التقدم بعد تلك النقطة في حوالي 5 دقائق (بينما مع btrfs كان سيتعطل لمدة ساعة تقريبًا قبل أن تبدأ العمال في الفشل).

لا يزال قيد الإنشاء، ولكن بمجرد الانتهاء منه وتمكني من استيراد النسخة الاحتياطية بنجاح وترتيب شهادات SSL الخاصة بـ Cloudflare، سأنشر ترحيلي من discourse docker الذي يعمل داخل scaleway، إلى discourse docker الذي يعمل داخل حاوية lxd داخل raspberry pi 4 + ssd.

تحديث 2:

4 إعجابات

لماذا كنت تستخدم مثيلاً baremetal؟

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

@Falco متأخر جدًا على الحفلة، ولكني أواجه نفس المشكلة.

لقد اتبعت دليل التثبيت على Pi 5، الذي يعمل بنظام arm64. هل لديك أي أفكار حول كيفية إصلاح هذا؟

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

ما هو نظام التشغيل الذي تستخدمه؟