hesabixArc/LINUX_SCRIPTS_README.md

171 lines
6 KiB
Markdown
Raw Permalink Normal View History

2025-09-22 11:00:18 +03:30
# اسکریپت‌های Linux برای Hesabix
این فایل شامل اسکریپت‌های مفید برای اجرا و build کردن اپلیکیشن Flutter در Linux است.
## اسکریپت‌های موجود
### 1. `run_linux.sh` - اجرای اپلیکیشن در Linux
اسکریپت اصلی برای اجرای اپلیکیشن Flutter در Linux Desktop.
**استفاده:**
```bash
./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`: نمایش راهنما
**نمونه‌های استفاده:**
```bash
# اجرای ساده
./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.
**استفاده:**
```bash
./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`: نمایش راهنما
**نمونه‌های استفاده:**
```bash
# 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:
```bash
sudo apt update
sudo apt install libgtk-3-dev cmake ninja-build
```
### Fedora/RHEL:
```bash
sudo dnf install gtk3-devel cmake ninja-build
```
### Arch Linux:
```bash
sudo pacman -S gtk3 cmake ninja
```
## نصب Flutter
اگر Flutter نصب نیست، می‌توانید از snap استفاده کنید:
```bash
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`