رفتن به محتوا

راه‌اندازی Windows و WSL

Meridian از یک ترمینال شبیه Unix اجرا می‌شود. در Windows از Windows Subsystem for Linux (WSL) استفاده کنید و Meridian را داخل محیط Linux اجرا کنید.

PowerShell، Command Prompt، Git Bash و Cygwin بومی مسیر پیشنهادی برای Meridian نیستند. WSL همان رفتار shell، SSH و filesystem را مثل Linux به شما می‌دهد و با بقیه مستندات هماهنگ است.

PowerShell را به صورت Administrator باز کنید و WSL را نصب کنید:

Terminal window
wsl --install

اگر درخواست شد سیستم را restart کنید، سپس توزیع Linux نصب‌شده را از Start menu باز کنید.

Ubuntu امن‌ترین پیش‌فرض است، چون Meridian سرورهای Debian و Ubuntu را هدف می‌گیرد و بیشتر مثال‌ها از نام پکیج‌های apt استفاده می‌کنند. اگر Debian را از قبل در WSL نصب کرده‌اید، آن هم کار می‌کند.

بررسی کنید که WSL از نسخه 2 استفاده می‌کند:

Terminal window
wsl --list --verbose

اگر توزیع شما نسخه 1 را نشان می‌دهد، آن را تبدیل کنید:

Terminal window
wsl --set-version Ubuntu 2

داخل ترمینال WSL، پکیج‌ها را به‌روز کنید و ابزارهای پایه را نصب کنید:

Terminal window
sudo apt update
sudo apt install -y curl openssh-client ca-certificates

Meridian را نصب کنید:

Terminal window
curl -sSf https://getmeridian.org/install.sh | bash

اگر meridian بلافاصله پیدا نشد، ترمینال WSL را restart کنید یا profile شل را دوباره بارگذاری کنید:

Terminal window
exec "$SHELL" -l

نصب را بررسی کنید:

Terminal window
meridian --version

Meridian از WSL با SSH به VPS شما وصل می‌شود. کلید را داخل WSL بسازید:

Terminal window
ssh-keygen -t ed25519 -C "meridian-wsl"

کلید عمومی را کپی کنید:

Terminal window
cat ~/.ssh/id_ed25519.pub

این کلید عمومی را به پنل ارائه‌دهنده VPS یا به ~/.ssh/authorized_keys کاربر سرور اضافه کنید.

قبل از اجرای Meridian، SSH را تست کنید:

Terminal window
ssh root@198.51.100.10

اگر VPS شما از کاربر غیر root استفاده می‌کند، همان کاربر را تست کنید و آن را به deploy بدهید:

Terminal window
meridian deploy 198.51.100.10 --user ubuntu

اگر کلید شما passphrase دارد، یک agent داخل WSL شروع کنید:

Terminal window
eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_ed25519

این دستورها را فقط وقتی به ~/.profile یا ~/.bashrc اضافه کنید که tradeoff امنیتی آن را می‌فهمید. برای بیشتر استقرارهای اول، شروع دستی agent کافی است.

در شروع کار، SSH agentهای Windows و WSL را با هم مخلوط نکنید. تا وقتی deploy کار کند، کلید و agent را داخل WSL نگه دارید.

فرایند عادی deploy را از ترمینال WSL اجرا کنید:

Terminal window
meridian deploy

یا IP سرور را مستقیم بدهید:

Terminal window
meridian deploy 198.51.100.10

Meridian اطلاعات ورود را زیر ~/.config/meridian/ داخل WSL ذخیره می‌کند. دستورهای بعدی را از همان توزیع WSL اجرا کنید تا بتواند اطلاعات ذخیره‌شده سرور را پیدا کند:

Terminal window
meridian client add alice
meridian client list
meridian test 198.51.100.10

اگر از VS Code استفاده می‌کنید، افزونه “WSL” را نصب کنید و workspace مربوط به Meridian را از WSL باز کنید:

Terminal window
code .

فایل‌هایی که با Remote WSL ویرایش می‌شوند در filesystem لینوکس قرار دارند و این کار از مشکل path و permission جلوگیری می‌کند. مسیری زیر home در WSL مثل ~/projects را ترجیح دهید و state مربوط به Meridian یا کلیدهای SSH را از مسیر /mnt/c/ ویرایش نکنید.

wizard انگار یک prompt را رد می‌کند

Section titled “wizard انگار یک prompt را رد می‌کند”

برخی promptهای تعاملی ترمینال می‌توانند زیر WSL متفاوت رفتار کنند. اگر wizard مربوط به deploy ورودی را طبق انتظار قبول نمی‌کند، مقدارها را صریح بدهید:

Terminal window
meridian deploy 198.51.100.10 --sni www.cloudflare.com

همچنین می‌توانید اول سرور را بررسی کنید:

Terminal window
meridian check 198.51.100.10

مطمئن شوید کلید داخل WSL وجود دارد، نه فقط در Windows:

Terminal window
ls -la ~/.ssh
ssh -v root@198.51.100.10

کلید خصوصی باید فقط توسط کاربر WSL شما خواندنی باشد:

Terminal window
chmod 700 ~/.ssh
chmod 600 ~/.ssh/id_ed25519

Meridian نصب شده اما command پیدا نمی‌شود

Section titled “Meridian نصب شده اما command پیدا نمی‌شود”

شل را دوباره بارگذاری کنید:

Terminal window
exec "$SHELL" -l

اگر هنوز پیدا نشد، مسیرهای رایج uv و binaryهای محلی را بررسی کنید:

Terminal window
ls ~/.local/bin

در صورت نیاز ~/.local/bin را به profile شل اضافه کنید:

Terminal window
echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.bashrc
exec "$SHELL" -l

مسیرهای Windows مشکل permission ایجاد می‌کنند

Section titled “مسیرهای Windows مشکل permission ایجاد می‌کنند”

کلیدهای SSH، اطلاعات Meridian و فایل‌های پروژه را در filesystem مربوط به WSL نگه دارید:

Terminal window
cd ~
mkdir -p projects

از نگهداری ~/.ssh یا ~/.config/meridian زیر /mnt/c/ خودداری کنید. مسیرهای mount شده از Windows می‌توانند permissionهای متفاوتی داشته باشند و SSH آن‌ها را رد کند.