使用Ubuntu来使用Flutter
在Ubuntu 22.04上安装Flutter并将其用作Web服务器的方法。
安装前提软件
sudo apt install clang curl pkg-config ninja-build cmake libblkid-dev libgtk-3-dev
安装Flutter
git clone https://github.com/flutter/flutter.git
前往 /usr/local/flutter。
sudo mv flutter /usr/local
设置密码
export PATH=$PATH:/usr/local/flutter/bin
确认安装
$ flutter doctor
Doctor summary (to see all details, run flutter doctor -v):
[✓] Flutter (Channel master, 3.1.0-0.0.pre.2054, on Ubuntu 22.04.1 LTS
5.15.0-25-generic, locale ja_JP.UTF-8)
[!] Android toolchain - develop for Android devices (Android SDK version 29.0.3)
✗ cmdline-tools component is missing
Run `path/to/sdkmanager --install "cmdline-tools;latest"`
See https://developer.android.com/studio/command-line for more details.
✗ Android license status unknown.
Run `flutter doctor --android-licenses` to accept the SDK licenses.
See https://flutter.dev/docs/get-started/install/linux#android-setup for
more details.
[✓] Chrome - develop for the web
[✓] Linux toolchain - develop for Linux desktop
[!] Android Studio (not installed)
[✓] VS Code (version 1.68.1)
[✓] Connected device (2 available)
[✓] HTTP Host Availability
! Doctor found issues in 2 categories.
确认版本
flutter --version
软件的制作
flutter create myapp
cd myapp
将其作为 Web 服务器运行(端口将随机生成)。
$ flutter run -d web-server
Launching lib/main.dart on Web Server in debug mode...
Waiting for connection from debug service on Web Server... 25.3s
lib/main.dart is being served at http://localhost:42819

需要从外部进行访问
flutter run -d web-server --web-hostname=0.0.0.0
要指定端口来启动。
flutter run -d web-server --web-port=1234
请将程序进行修改。
请将 lib/main.dart 替换为以下内容。
import 'package:flutter/material.dart';
void main() {
runApp(ExampleApp());
}
class ExampleApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Flutter Demo',
theme: ThemeData(
primarySwatch: Colors.blue,
),
home: HelloWorld(),
);
}
}
class HelloWorld extends StatelessWidget {
@override
Widget build(BuildContext context) {
String str_out = 'こんにちは。\n';
str_out += '今日は晴れています。\n';
str_out += 'Dec/08/2021\n';
return Scaffold(
appBar: AppBar(
title: Text('Flutter Example App'),
),
body: Container(
alignment: Alignment.center,
child: Text(
str_out,
style: TextStyle(
fontSize: 70,
fontWeight: FontWeight.bold,
)
),
)
);
}
}

确认的版本
$ flutter --version
Flutter 3.13.0-7.0.pre.51 • channel master • https://github.com/flutter/flutter.git
Framework • revision d457287f6c (2 hours ago) • 2023-07-20 14:02:12 -0700
Engine • revision 9b2ebf2afe
Tools • Dart 3.1.0 (build 3.1.0-332.0.dev) • DevTools 2.25.0