مشاكل أثناء تثبيت Discourse على WSL

مرحباً! أحاول تشغيل نسخة محلية من Discourse على جهاز Windows 11 الخاص بي للعمل على التطوير باستخدام WSL.

دعني أقول أولاً أنني جديد على Discourse و Ubuntu و WSL. لذا فإن الأخطاء تأتي بوضوح من جهتي. من فضلكم ساعدوني! :frowning_with_open_mouth:

تثبيت Discourse على Windows 10

هذا أعلاه هو الدليل الذي اتبعته.

أنا في محاولتي الرابعة وأواجه نفس الأخطاء باستمرار. سأقدم تفصيلاً لعملية التثبيت.

أولاً، تأكدت من تثبيت Windows Subsystem for Linux 2. يقترح الدليل Ubuntu 18.04، لذا جربت هذا. بعد فشله، جربت 22.04 ولكن لا يزال بدون نتيجة. في هذا التفصيل، سأستخدم 18.04 لعرض الأخطاء.

الخطوة الأولى هي تثبيت الحزم باستخدام هذا الأمر:

<(wget -qO- https://raw.githubusercontent.com/discourse/install-rails/master/linux)

هذا يعمل بشكل جيد. الشيء الوحيد الذي يبدو غريباً قليلاً هو هذا:

createuser: could not connect to database template1: could not connect to server: No such file or directory
        Is the server running locally and accepting
        connections on Unix domain socket "/var/run/postgresql/.s.PGSQL.5432"?
failed

قبل إعداد قاعدة البيانات، يجب عليك تشغيل خدمة PostgreSQL وخادم Redis يدوياً باستخدام الأوامر التالية:

sudo service postgresql start
redis-server --daemonize yes

الأمر الأول يعمل بشكل ممتاز، والثاني يواجه مشكلة بالفعل:

redis-server --daemonize yes

Command ‘redis-server’ not found, but can be installed with:

sudo apt install redis-server

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

sudo apt install redis-server

وأحاول مرة أخرى.
هذه المرة، يعمل بشكل رائع!

  1. استنساخ مستودع Discourse
git clone https://github.com/discourse/discourse.git ~/discourse

لا توجد مشاكل هنا.
إعداد قاعدة البيانات باستخدام:

sudo -u postgres createuser -s "$USER"

4. هذا هو الجزء الحيوي

cd ~/discourse
source ~/.bashrc
bundle install

خطأ:

Command ‘bundle’ not found, but can be installed with:

sudo apt install ruby-bundler

دعنا نقوم بتشغيله. وبعد التثبيت، قم بتشغيل مرة أخرى

bundle install
داخل دليل Discourse.

Error: You must use Bundler 2 or greater with this lockfile.

بعد ذلك، عند محاولة تثبيت Bundler:

ERROR: Error installing bundler: There are no versions of bundler (= 2.4.17) compatible with your Ruby & RubyGems bundler requires Ruby version >= 2.6.0. The current ruby version is 2.5.0.

حسناً، ربما أحتاج إلى تحديث Ruby باستخدام rbenv:

rbenv install 2.6.0
ruby-build: definition not found: 2.6.0

See all available versions with `rbenv install --list’.

If the version you need is missing, try upgrading ruby-build.

عند التحقق من rbenv install --list، يتوقف عند 2.5.0 ولا يمكنني تحديث rbenv.

هل يمكن لأحد أن يعطيني تلميحاً حول ما قد أفعله بشكل خاطئ؟ لا يبدو أنني أستطيع تجاوز الخطوة 4.

شكراً جزيلاً مقدماً!

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

لقد واجهت نفس المشكلة. إليك ما فعلته (ربما يكون مبالغًا فيه ولكني لست خبيرًا ^^)

  1. تثبيت rbenv و ruby-build:
git clone https://github.com/rbenv/rbenv.git ~/.rbenv
echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bashrc
echo 'eval "$(rbenv init -)"' >> ~/.bashrc
source ~/.bashrc
git clone https://github.com/rbenv/ruby-build.git ~/.rbenv/plugins/ruby-build
echo 'export PATH="$HOME/.rbenv/plugins/ruby-build/bin:$PATH"' >> ~/.bashrc
source ~/.bashrc
  1. تثبيت إصدار جديد من ruby:
rbenv install 3.2.2
rbenv global 3.2.2
  1. تثبيت إصدار bundler الصحيح
    gem install bundler:2.4.13

  2. نظرًا لأنني واجهت بعض مشكلات الأذونات عند استخدام “bundle install”، فقد احتجت إلى إصلاح ذلك مؤقتًا باستخدام:
    sudo chmod -R 777 /home/boris/.bundle

  3. bundle install

آمل أن يساعد هذا.

إعجابَين (2)

شكرا لك! لقد ساعد كثيرا.

الآن، أواجه خطأ آخر عند تشغيل

bundle exec rake db:create

Discourse يتطلب Redis 6.2.0 أو أعلى

هممم، دعنا نتحقق باستخدام

redis-server -v

Redis server v=7.0.12 sha=00000000:0 malloc=jemalloc-5.2.1 bits=64 build=b56540d7933227fd

يجب أن يعمل، أليس كذلك؟ آسف للإزعاج.

يبدو أننا واجهنا نفس المشكلات.

  1. أضف المستودع الذي يحتوي على أحدث الإصدارات
sudo add-apt-repository ppa:redislabs/redis
sudo apt-get update
  1. قم بتثبيت إصدار Redis الجديد
sudo apt-get install redis
  1. أعد تشغيل Redis
    sudo service redis-server restart
3 إعجابات