در این مقاله سعی میکنم SDK مربوط به flutter را بر روی لینوکس دبیان Debian نصب کنیم
برای نصب دبیان debian Linux بهترین راه حل استفاده از دستور
sudo snap install flutter --classic
است که خودش مسیر ها و PATH را برای شما تنظیم میکند، اما اگر بخواهید یه صورت دستی آن را دانلود و نصب کنید به یه کم مشکلات بر میخورید،
خوب اول ابنکه فایل رو میتونید از آدرس خود سابت دانلود کنید ،یاد اور میشم که برای دانلود سایت فلاتر ما را تحریم کرده است؟؟!!
بعد از دانلود فایل، فایل را در پوشه downloads گذاشتم ودر همان پوشه آن را ا ز حالت فشرده خارج کنید.
sudo tar -C /usr/local -xf flutter_linux_2.10.5-stable.tar.xz
با این دستور فایل flutter_linux_2.10.5-stable.tar.xz را هم از حالت فشرده خارج کردیم و هم به پوشه /user/local انتقال دادیمُ،اگر به پوشه /usr/local نگاهی بیندازید آنجا باید پوشه به نام flutter را ببینید حال باید ادرس پوشه bin زا به سیستم عامل لینوکس معرفی کنیم راه حل اولش اینه که با توجه به اینکه فایل دانلود شده را در usr/local از حالت فشرده خارج کردیم همین ادرس را در فایل
$HOME/<username>/.profile
کپی کنیم
export PATH="$PATH:/usr/local/flutter/bin
ادرس بالا را در فایل ,profile کپی کردیم ،زمانی که سیستم را ریستارت کنید این تغییر اعمال خواهد شد ویا اگر میخواهد همان لحظه این دستور اجرا شود فقط کافی است در ترمینال خود دستور زیر را بنویسید
source .profile
این شد آدرس SDK فلاتر flutterنرم افزار شما، برای استفاده از آن باید بتوانیم در ترمینال درستورات را وارد کنیم
و برای اینکه بتوانید دستورات flutter را در ترمینال خود وارد کنید باید ادرس SDK آن را در PATH سیستم وارد کرده باشید. به این معنی که اگر شما فایل را در پوشه ای دیگر بگذرید لازم است تا ادرس ذخیره در PATH را تغییر هید. ،برای ان کار میتوانید از دستور زیر استفاده کنید
export PATH="<user>/downloads/flutter_linux_2.2.3-stable/flutter/bin":$PATH
در قسمت <user> نام کاربری که تعرف کرده اید بنویسید
بااجرای دستور
echo $PATH
مطمین شوید که ادرس فایل SDK قلاتر در PATH ثبت شده است ،شما باید چیزی شبیه به این داشته باشید
/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games:/home/<user>/Downloads/flutter_linux_2.2.3-stable/flutter/bin:/snap/bin
همانطور که میبینید بعد از < : > اخر ادرس فایل قلاتر اضافه شده است ، اگر ادرس به صورت
/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games
بود یه این معنی است که هنوز ادرس به PATH شما اضافه نشده و لازم است به صورت دستی آن را وارد نمایید.
برای وارد کردن آدرس به صورت دستی میتوانید از این روش استفاده کنید
ابتدا دستور زیر را در ترمینال وارد نمایید
sudo nano /etc/profile
با اجرا این دستور ادریتور nano برای ادیت فایل profile باز میشود
ممکن است به این صورت باشد
if [ "`id -u`" -eq 0 ]; then
PATH="..."
else
PATH="/usr/local/bin:...:[PATH_OF_FLUTTER_GIT_DIRECTORY]/bin"
fi
export PATH
سه نقطه <...> که در خط دوم ذکر شده با عبارتهای دیگر پر شده است و بعد از fi نیز یک سری عبارت دیگر نمایش داده شده که نیاز به دستکاری آنها ندارید،فقط آدرس SDK flutter را به انتهای PATH دوم وارد کنید تا به این صورت نمایش داده شود
if [ "`id -u`" -eq 0 ]; then
PATH="..."
else
PATH="/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games:/home/<user>/Downloads/flutter_linux_2.2.3-stable/flutter/bin:/snap/bin"
fi
export PATH
به جای user نا م کاربر ذکر شده است حالا
flutter doctor
اجرا کنید اگر به خطای
Error: Unable to find git in your PATH.
بر خوردید دستور
sudo apt-get install git
را اجرا کنید و دوباره دستور flutter را اجرا کنید
Running "flutter pub get" in flutter_tools... 19.1s
Doctor summary (to see all details, run flutter doctor -v):
[✓] Flutter (Channel stable, 2.2.3, on Linux, locale en_US.UTF-8)
[✗] Android toolchain - develop for Android devices
✗ Unable to locate Android SDK.
Install Android Studio from: https://developer.android.com/studio/index.html
On first launch it will assist you in installing the Android SDK components.
(or visit https://flutter.dev/docs/get-started/install/linux#android-setup for detailed
instructions).
If the Android SDK has been installed to a custom location, please use
`flutter config --android-sdk` to update to that location.
[✓] Chrome - develop for the web
[!] Android Studio (not installed)
[✓] VS Code (version 1.60.0)
[✓] Connected device (1 available)
! Doctor found issues in 2 categories.
شما موفق به معرفی SDK flutter به سیستم خود شده اید اما هنوز تنظیمات مربوط به Android SDK به جا مانده که در ادامه خواهم گفت
آپدیت:
اگر با دستورات بالا کا رکنید به مشکلی بر نمیخوریم اما من قبل از اجرا دستورات بالا. خودم تصمیم گرفتم java رو روی سیستمم نصب کنم با استفاده از این دستور:
$ sudo apt install openjdk-11-jdk
چون میخواستم Android SDK را بدون استفاده از نصب اندروید استادیو نصب کنم وزمانی که flutter doctor را اجرا کردم به این خطا برخوردم
Doctor summary (to see all details, run flutter doctor -v):
[✓] Flutter (Channel stable, 2.10.1, on Ubuntu 20.04.3 LTS 5.13.0-28-generic,
locale en_US.UTF-8)
[✗] Android toolchain - develop for Android devices
✗ ANDROID_HOME = /home/ariel/Android
but Android SDK not found at this location.
[✓] Chrome - develop for the web
[!] Android Studio (version 2021.1)
✗ Unable to find bundled Java version.
[✓] VS Code
[✓] Connected device (1 available)
و برای حلش دستورات زیر را اجرا کردم که جواب داد
$ export ANDROID_HOME=$HOME/Android/Sdk
$ export PATH="$ANDROID_HOME/tools:$PATH"
$ export PATH="$ANDROID_HOME/platform-tools:$PATH"
$ export PATH="$ANDROID_HOME/emulator:$PATH"
تا اینجا مشکل path در را برای home_android حل کردم
و زمانی دستور
$ flutter doctor --android-licenses
با این مشکل برمی خوردم
ERROR: JAVA_HOME is set to an invalid directory: /usr/lib/jvm/java-8-oracle/bin
برای رفع این مشکل لازم بود تا تنظیم محل java رو تغییر بدهم به این صورت
$ export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64
و حالا دستور
flutter doctor --android-licenses
را اجرا کردم مشکل حل شد.