hesabixArc/LINUX_SCRIPTS_README.md
2025-09-22 11:00:18 +03:30

6 KiB

اسکریپت‌های Linux برای Hesabix

این فایل شامل اسکریپت‌های مفید برای اجرا و build کردن اپلیکیشن Flutter در Linux است.

اسکریپت‌های موجود

1. run_linux.sh - اجرای اپلیکیشن در Linux

اسکریپت اصلی برای اجرای اپلیکیشن Flutter در Linux Desktop.

استفاده:

./run_linux.sh [options]

گزینه‌ها:

  • --project PATH: مسیر پروژه Flutter (اختیاری)
  • --mode MODE: نوع اجرا (debug/profile/release) - پیش‌فرض: debug
  • --build-dir DIR: مسیر build directory - پیش‌فرض: build/linux
  • --clean: پاک کردن build directory قبل از اجرا
  • --install-deps: نصب وابستگی‌ها قبل از اجرا
  • --api-base-url URL: آدرس پایه API
  • --help: نمایش راهنما

نمونه‌های استفاده:

# اجرای ساده
./run_linux.sh

# اجرا در حالت release
./run_linux.sh --mode release

# اجرا با پاک کردن build directory
./run_linux.sh --clean --mode debug

# اجرا با نصب وابستگی‌ها
./run_linux.sh --install-deps

# اجرا با API base URL
./run_linux.sh --api-base-url http://localhost:8000

2. build_linux.sh - Build کردن اپلیکیشن برای Linux

اسکریپت برای ایجاد executable مستقل از اپلیکیشن Flutter.

استفاده:

./build_linux.sh [options]

گزینه‌ها:

  • --project PATH: مسیر پروژه Flutter (اختیاری)
  • --mode MODE: نوع build (debug/profile/release) - پیش‌فرض: release
  • --build-dir DIR: مسیر build directory - پیش‌فرض: build/linux
  • --output-dir DIR: مسیر خروجی نهایی - پیش‌فرض: build/linux_release
  • --clean: پاک کردن build directory قبل از build
  • --install-deps: نصب وابستگی‌ها قبل از build
  • --api-base-url URL: آدرس پایه API
  • --archive: ایجاد فایل tar.gz از خروجی
  • --help: نمایش راهنما

نمونه‌های استفاده:

# Build ساده
./build_linux.sh

# Build در حالت debug
./build_linux.sh --mode debug

# Build با ایجاد archive
./build_linux.sh --archive

# Build کامل با پاک کردن و نصب وابستگی‌ها
./build_linux.sh --clean --install-deps --archive

وابستگی‌های مورد نیاز

قبل از استفاده از این اسکریپت‌ها، مطمئن شوید که وابستگی‌های زیر نصب شده‌اند:

Ubuntu/Debian:

sudo apt update
sudo apt install libgtk-3-dev cmake ninja-build

Fedora/RHEL:

sudo dnf install gtk3-devel cmake ninja-build

Arch Linux:

sudo pacman -S gtk3 cmake ninja

نصب Flutter

اگر Flutter نصب نیست، می‌توانید از snap استفاده کنید:

sudo snap install flutter --classic

یا از سایت رسمی Flutter دانلود کنید: https://flutter.dev/docs/get-started/install/linux

ویژگی‌های جدید

نصب خودکار وابستگی‌ها

اسکریپت‌ها به‌طور خودکار وابستگی‌های مورد نیاز را تشخیص داده و نصب می‌کنند:

  • GTK+3 development libraries
  • CMake
  • Ninja build system
  • Clang C++ compiler
  • Build essential tools

رفع مشکلات platform-specific

  • مشکلات مربوط به dart:html (که فقط در web platform موجود است) به‌طور خودکار رفع می‌شوند
  • توابع download برای Linux desktop به‌روزرسانی می‌شوند
  • فایل‌های اصلی پس از اجرا بازیابی می‌شوند

پشتیبانی از توزیع‌های مختلف

  • Ubuntu/Debian (apt)
  • Fedora/RHEL (dnf)
  • Arch Linux (pacman)

نکات مهم

  1. مسیر پروژه: اسکریپت‌ها به‌طور خودکار پروژه Flutter را در hesabixUI/hesabix_ui پیدا می‌کنند.

  2. Mirror تنظیمات: اسکریپت‌ها از mirror چینی برای حل مشکل دسترسی به pub.dev استفاده می‌کنند.

  3. Build Directory: فایل‌های build شده در build/linux ذخیره می‌شوند.

  4. خروجی نهایی: فایل‌های قابل اجرا در build/linux_release (یا مسیر مشخص شده) قرار می‌گیرند.

  5. اجرای فایل نهایی: پس از build، می‌توانید فایل hesabix_ui را در مسیر خروجی اجرا کنید.

  6. بازیابی خودکار: فایل‌های اصلی پس از اجرا یا build به حالت اولیه بازمی‌گردند.

عیب‌یابی

خطای "Flutter یافت نشد"

  • مطمئن شوید Flutter نصب شده است
  • مسیر Flutter را به PATH اضافه کنید
  • از snap استفاده کنید: sudo snap install flutter --classic

خطای "GTK+3 development libraries یافت نشد"

  • وابستگی‌های GTK را نصب کنید (به بخش وابستگی‌ها مراجعه کنید)

خطای "CMake یافت نشد"

  • CMake را نصب کنید: sudo apt install cmake (Ubuntu/Debian)

خطای build

  • از --clean استفاده کنید تا build directory پاک شود
  • از --install-deps استفاده کنید تا وابستگی‌ها نصب شوند

خطای "dart:html is not available"

  • این خطا به‌طور خودکار توسط اسکریپت رفع می‌شود
  • اگر همچنان رخ داد، از --clean استفاده کنید

خطای "deprecated-literal-operator"

  • این خطا مربوط به flutter_secure_storage_linux است
  • اسکریپت به‌طور خودکار compiler flags را تنظیم می‌کند

خطای "Could not find compiler"

  • اسکریپت به‌طور خودکار clang و build-essential را نصب می‌کند
  • اگر همچنان رخ داد، دستی نصب کنید: sudo apt install clang build-essential