Ramin Alirezaee
Ramin Alirezaee
خواندن ۲ دقیقه·۳ سال پیش

آشنایی با مشکلات نصب Jekyll در WSL2 و رفع آنها


اولین مشکلی که شاید با اون برخورد کنید خطای عدم دسترسی به مسیر gemهای Ruby هستش. و اون هم چیزی نیست جز این خطا:

You don't have write permissions for the /var/lib/gems/

یک راه حل نا امن این هستش که به کاربر فعلی اجازه دسترسی root به اون مسیر رو بدید. به صورت زیر:

sudo chown -R <username> /var/lib/gems

و اگر مسیر دیگری هم در هنگام نصب با خطای دسترسی مشاهده شد به همین روش دسترسی را تنظیم کنید."بجای username نام کاربری خود را وارد کنید، بدون علائم اطراف آن."

روش دیگر نحوه متفاوت نصب Ruby هستش که از لحاظ امنیتی هم مشکلی نداره. این روش رو میتونید در این لینک مطالعه کنید: Upgrading WSL2 to Ubuntu 20.04 and running Jekyll (gardiner.net.au)

مشکل بعدی که شاید پیش بیاد "که صد البته برای من پیش اومد?"، بعد از اجرای دستور jekyll serve در مرورگر وب درون ویندوز صفحه ساخته شده نمایش داده نمیشه. حالا چکار باید کرد؟
اول یک سشن دیگه از WSL را اجرا کنید و دستور زیر را وارد کنید:

curl http://127.0.0.1:4000

اگر محتوای فایل صفحه اول را نمایش داد، یعنی اینکه مشکل از پورت 4000 در ویندوز هستش. برای اطمینان، دستور زیر را در محیط command ویندوز اجرا کنید:

netsh int ipv4 show excludedportrange protocol=tcp

اگر از شانس شما ویندوز در حال استفاده از رنج 4000 بود مثل تصویر زیر، میتونید از یکی از روش‌های زیر مشکل پورت رو برطرف کنید:
۱- غیر فعال و فعال کردن آداپتور شبکه مورد استفاده(Ethernet, Wifi)
۲- اجرای دستور net start winnat و بعد net stop winnat با دسترسی مجوز Administrator
۳- ویندوز رو restart کنید
۴- پورت اجرا شدن jekyll رو تغییر بدید

فهرست پورت‌های مورد استفاده ویندوز
فهرست پورت‌های مورد استفاده ویندوز

با توجه به پورت‌های مورد استفاده یک پورت آزاد انتخاب کنید و دستور زیر را اجرا کنید:

jekyll serve -P 4070

من در این مثال از پورت 4070 استفاده کردم که در فهرست پورت‌های مورد استفاده قرار نداشت.

نکته: اگر به هر دلیلی نیاز شد WSL را مجدد اجرا کنید از دستور زیر در محیط command ویندوز استفاده کنید:

wsl --shutdown

windowswsl
شاید از این پست‌ها خوشتان بیاید