Install Flutter on Linux Ubuntu

This tutorial explains how to install the Flutter SDK on a 64-bit Ubuntu system, add Flutter to the PATH, configure Android Studio and the Android SDK, accept Android licenses, connect a device or emulator, and verify the installation with flutter doctor.

The commands use Bash and standard Ubuntu package-management tools. Package names and Android Studio screens can vary between Ubuntu and Flutter releases, so compare release-specific requirements with the current Flutter documentation before installing.

Flutter Linux Installation Requirements

Before downloading Flutter, confirm the processor architecture, available storage, shell, and development target. The Flutter SDK itself is only part of the required storage. Android Studio, Android SDK platforms, build tools, system images, Gradle caches, and project files require additional space.

RequirementWhat to check
Operating systemA supported 64-bit Linux distribution such as Ubuntu
Processor architectureDownload an SDK archive that matches the system architecture
Command-line toolsbash, curl, git, unzip, xz-utils, zip, and standard file utilities
StorageSpace for Flutter, the IDE, Android SDK packages, emulator images, caches, and projects
Android developmentAndroid Studio or Android command-line tools, an Android SDK, and a device or emulator
Linux desktop developmentA compiler toolchain, CMake, Ninja, pkg-config, and the required GTK development libraries

Check the Ubuntu architecture before selecting a Flutter SDK archive:

</>
Copy
uname -m

Typical results include x86_64 for an Intel or AMD 64-bit system and aarch64 for a 64-bit Arm system. Do not assume that an x64 archive will run on Arm64. Confirm the architectures currently offered on the official Flutter installation pages.

Install Ubuntu Packages Required by Flutter

Update the package index and install the basic command-line utilities used by Flutter and its setup tools:

</>
Copy
sudo apt update
sudo apt install -y curl git unzip xz-utils zip libglu1-mesa

If the objective is to build native Linux desktop applications, install the Linux toolchain and GTK development packages as well:

</>
Copy
sudo apt install -y clang cmake ninja-build pkg-config libgtk-3-dev libstdc++-12-dev

The exact C++ development package available can depend on the Ubuntu release. If APT cannot find the named version, use the supported package identified by the current Flutter Linux setup documentation and your Ubuntu repositories.

Download the Flutter SDK for Linux

Download the current stable Linux SDK from the official Flutter SDK archive or follow the current manual installation instructions. Select the archive that matches the computer’s architecture rather than copying a version-specific filename from an older guide.

The original SDK archive address used by this tutorial was https://flutter.io/sdk-archive/#linux. If that legacy address redirects, use the current official Flutter documentation to locate the stable Linux archive.

Place the downloaded archive in a directory such as ~/Downloads. Avoid installing the Flutter SDK in a location that requires root access for routine updates. A user-owned directory such as ~/development is easier to manage.

</>
Copy
mkdir -p "$HOME/development"
tar -xf "$HOME/Downloads/flutter_linux_<version>-stable.tar.xz" -C "$HOME/development"

Replace flutter_linux_<version>-stable.tar.xz with the actual downloaded filename. After extraction, the Flutter executable should be located at ~/development/flutter/bin/flutter.

Legacy Flutter SDK Extraction Command

The following command is retained from the original beta-era instructions. Its filename is obsolete and should not be used for a current installation.

$ tar xf flutter_linux_v0.3.2-beta.tar.xz

Add the Flutter SDK to PATH on Ubuntu

Add Flutter’s bin directory to the PATH so the flutter and dart commands are available in new terminal sessions. For Bash, append the export statement to ~/.bashrc:

</>
Copy
echo 'export PATH="$HOME/development/flutter/bin:$PATH"' >> "$HOME/.bashrc"
source "$HOME/.bashrc"

Verify that the shell resolves the Flutter executable from the expected directory:

</>
Copy
which flutter
flutter --version
dart --version

If another shell is in use, update that shell’s startup file instead. For example, a Zsh installation normally uses ~/.zshrc. Do not add duplicate Flutter entries to multiple files unless the shell configuration requires them.

Legacy Ubuntu PATH Examples

The blocks below are preserved from the original tutorial. They illustrate how the SDK location was determined and added to ~/.bashrc, but the example paths are specific to the original computer.

[PATH_TO_FLUTTER_SDK_DIRECTORY] = 

Use pwd while inside the extracted Flutter directory if the complete path is unknown.

$ pwd /media/arjun/0AB650F1B650DF2F/softs/flutter
[PATH_TO_FLUTTER_SDK_DIRECTORY] = /media/arjun/0AB650F1B650DF2F/softs/flutter

The original instructions opened ~/.bashrc with the following command:

~$ sudo nano ~/.bashrc

Using sudo to edit a file in the home directory is normally unnecessary. A current installation can use nano ~/.bashrc or the append command shown earlier.

export PATH="[PATH_TO_FLUTTER_SDK_DIRECTORY]/flutter/bin:$PATH"

The placeholder must be replaced with the real SDK location. Check the resulting path carefully because an extra flutter directory will make the command invalid unless the archive was extracted into a directory with that structure.

export PATH="/media/arjun/0AB650F1B650DF2F/softs/flutter/flutter/bin:$PATH"

The original PATH verification command was:

~$ echo $PATH

For a clearer verification, which flutter or command -v flutter directly reports the executable selected by the shell.

Run Flutter Doctor After Installing the SDK

Run Flutter Doctor before configuring a development target. The detailed form reports the installed Flutter channel, Linux toolchain, Android toolchain, browsers, IDE integrations, and connected devices that Flutter can detect.

</>
Copy
flutter doctor -v

A warning is not always relevant to the intended target. For example, an Android-only developer does not need to resolve Linux desktop warnings. Resolve every issue associated with the platforms that will actually be built.

Original Flutter Doctor Beta Output

This preserved output comes from Flutter beta v0.3.2 and Android Studio 3.1. Current Flutter Doctor output, environment variables, Android SDK versions, and diagnostic symbols will differ.

arjun@localhost:~$ flutter doctor
Doctor summary (to see all details, run flutter doctor -v):
[?] Flutter (Channel beta, v0.3.2, on Linux, locale en_IN)
[?] 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.io/setup/#android-setup for detailed instructions).
      If Android SDK has been installed to a custom location, set $ANDROID_HOME to that location.
[?] Android Studio (version 3.1)
[!] IntelliJ IDEA Community Edition (version 2017.2)
    ? Flutter plugin not installed; this adds Flutter specific functionality.
    ? Dart plugin not installed; this adds Dart specific functionality.
[!] Connected devices
    ! No devices available

! Doctor found issues in 3 categories.
arjun@localhost:~$ 

Install Android Studio and the Android SDK for Flutter

Download the current version of Android Studio and complete its setup wizard. Install the Android SDK components requested by Flutter, including an Android SDK platform, Platform-Tools, Build-Tools, command-line tools, and an emulator image if a virtual device will be used.

Open Android Studio’s SDK Manager and confirm where the Android SDK is installed. A common Ubuntu location is ~/Android/Sdk, but the actual location can be different.

Configure a Custom Android SDK Location for Flutter

If Flutter Doctor cannot locate an existing Android SDK, configure Flutter with its actual directory:

</>
Copy
flutter config --android-sdk "$HOME/Android/Sdk"
flutter doctor -v

Use the location displayed by Android Studio rather than assuming the example path. Some third-party tools also inspect ANDROID_HOME or ANDROID_SDK_ROOT; follow their current documentation before defining either variable.

The following environment-variable example is retained from the original tutorial. Its absolute path belongs to the original system and must not be copied unchanged.

#android sdk
export ANDROID_HOME="/media/arjun/0AB650F1B650DF2F/Android/Sdk"

Accept Android SDK Licenses for Flutter

After Android command-line tools are available, review and accept the required Android SDK licenses:

</>
Copy
flutter doctor --android-licenses

Read each license prompt and respond as appropriate. If Flutter reports that sdkmanager is missing, install or update the Android SDK Command-line Tools from Android Studio’s SDK Manager and run the command again.

Install the Flutter and Dart Plugins in Android Studio

The Flutter plugin adds project creation, run configurations, debugging, widget tooling, and Flutter-aware editing to Android Studio. Installing it also installs or requests the Dart plugin.

  1. Open Android Studio.
  2. Open the Plugins section from the current Settings or Preferences screen.
  3. Search the Marketplace for Flutter.
  4. Install the Flutter plugin and approve the Dart plugin if prompted.
  5. Restart Android Studio.
  6. Confirm that the option to create a Flutter project is available.

The screenshots below show an older Android Studio interface. The labels and layout can differ in current releases, but the plugin names remain Flutter and Dart.

Flutter - Install on Ubuntu - Android Studio
Flutter Plugin Android Studio
Install Flutter, Dart Plugin in Android Studio

If IntelliJ IDEA is used instead, install its Flutter plugin and the associated Dart plugin through the IDE’s plugin settings.

Configure an Android Device or Emulator for Flutter

Connect a Physical Android Device to Flutter

  1. Enable Developer options on the Android device.
  2. Enable USB debugging.
  3. Connect the device with a data-capable USB cable.
  4. Approve the debugging authorization prompt on the device.
  5. Run flutter devices to confirm that Flutter detects it.
</>
Copy
flutter devices
adb devices

If the device is listed as unauthorized, unlock it and approve the computer. If it is not listed at all, check the cable, USB mode, ADB installation, and applicable Linux device permissions.

Create an Android Emulator for Flutter

Open Android Studio’s Device Manager, create a virtual device, select an installed system image, and start the emulator. Hardware virtualization must be enabled and available to the current user for acceptable emulator performance.

</>
Copy
flutter emulators
flutter devices

Create and Run a Test Flutter Application on Ubuntu

Create a small project after Flutter Doctor recognizes the required toolchain and at least one target device:

</>
Copy
flutter create ubuntu_flutter_test
cd ubuntu_flutter_test
flutter run

If more than one device is available, Flutter asks for a target or displays the device identifiers. A specific target can be selected with flutter run -d <device-id>.

Verify a Complete Flutter Installation on Linux

Run these checks after configuring the intended platforms:

</>
Copy
flutter --version
flutter doctor -v
flutter devices
flutter analyze

A successful setup does not require every optional platform to be installed. It requires Flutter Doctor to recognize the toolchain and device needed for the platform being developed.

The following preserved output shows what a completed setup looked like in the original beta-era environment. It is historical output, not a current version reference.

~$ flutter doctor
Doctor summary (to see all details, run flutter doctor -v):
[?] Flutter (Channel beta, v0.3.2, on Linux, locale en_IN)
[?] Android toolchain - develop for Android devices (Android SDK 27.0.3)
[?] Android Studio (version 3.1)
[?] IntelliJ IDEA Community Edition (version 2017.2)
[?] Connected devices (1 available)

• No issues found!

Fix Common Flutter Installation Problems on Ubuntu

Flutter installation problemCheck or corrective action
flutter: command not foundConfirm the SDK extraction path, update the correct shell startup file, reload it, and run which flutter.
Android SDK not foundCheck the SDK location in Android Studio and configure Flutter with flutter config --android-sdk.
Android licenses not acceptedInstall Android command-line tools and run flutter doctor --android-licenses.
No connected devicesStart an emulator or enable USB debugging and approve the physical device.
sdkmanager missingInstall Android SDK Command-line Tools through Android Studio’s SDK Manager.
Linux desktop toolchain missingInstall Clang, CMake, Ninja, pkg-config, GTK development libraries, and the supported C++ development package.
Permission errors while updating FlutterMove the SDK to a user-owned directory and avoid routine Flutter commands with sudo.
Git reports unsafe ownershipCheck who owns the extracted SDK directory and correct unintended root ownership rather than bypassing the warning without review.

Update the Flutter SDK on Ubuntu

Check the installed release and update the current Flutter channel from a user-owned SDK directory:

</>
Copy
flutter --version
flutter upgrade
flutter doctor -v

Review Flutter release notes and migration guidance before upgrading an established project. An SDK update can introduce new toolchain requirements or deprecations that require project changes.

Flutter Installation on Ubuntu FAQs

Where should the Flutter SDK be installed on Ubuntu?

Install it in a user-owned directory such as ~/development/flutter. Avoid protected system directories because Flutter needs to update files inside its SDK directory.

Can Flutter be installed on Linux Arm64?

Arm64 installation depends on the SDK artifacts and development targets currently supported by Flutter. Check uname -m, consult the current official Linux installation documentation, and download only an archive intended for that architecture.

Is Android Studio required to use Flutter on Ubuntu?

No IDE is mandatory for editing Flutter projects. However, Android development requires the appropriate Android SDK tools. Android Studio provides a convenient way to install and manage those tools, emulators, and Flutter IDE support.

Why does Flutter Doctor show warnings after installation?

Flutter Doctor checks several possible development targets and integrations. Resolve warnings related to the platforms you intend to build. Optional platform warnings can remain if those platforms are not part of the project.

Should Flutter be installed with sudo on Ubuntu?

APT package installation requires administrative privileges, but the Flutter SDK itself should normally be extracted into a user-owned directory. Running routine Flutter commands with sudo can create ownership and permission problems.

Flutter Ubuntu Installation Editorial QA Checklist

  • Confirm that the current Flutter Linux download supports every architecture named in the tutorial.
  • Test the APT package names on the Ubuntu releases covered by the article.
  • Verify that the PATH example resolves to the extracted flutter/bin directory without a duplicated folder name.
  • Check the current Android Studio navigation for SDK Manager, Device Manager, and Flutter plugin installation.
  • Run flutter doctor -v, accept Android licenses, and verify a physical device or emulator before marking the Android setup complete.
  • Keep beta v0.3.2 commands and diagnostic output clearly identified as legacy material.
  • Confirm that new command blocks use Bash formatting while preserved historical code blocks remain unchanged.

Continue with Flutter Development After Ubuntu Setup

Once the required Flutter Doctor checks pass and a test application runs, continue with the Flutter Tutorial to learn Dart fundamentals, widgets, layout, state, navigation, animations, and data storage.