<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Установка Flutter на Debian 12]]></title><description><![CDATA[<h1><a class="anchor-offset" name="img-src-https-baseinfo.nbics.net-assets-plugins-nodebb-plugin-emoji-emoji-android-1f4da.png-v-e590adcca20-class-not-responsive-emoji-emoji-android-emoji-books-style-height-23px-width-auto-vertical-align-middle-title-alt-полная-инструкция-установки-flutter-на-debian-12-любой-de"></a><img src="https://baseinfo.nbics.net/assets/plugins/nodebb-plugin-emoji/emoji/android/1f4da.png?v=e590adcca20" class="not-responsive emoji emoji-android emoji--books" style="height:23px;width:auto;vertical-align:middle" title="📚" alt="📚" /> Полная инструкция установки Flutter на Debian 12 (любой DE)</h1>
<h2><a class="anchor-offset" name="часть-1.-установка-системных-зависимостей"></a>Часть 1. Установка системных зависимостей</h2>
<pre><code class="language-bash"># 1. Обновление списка пакетов
sudo apt update

# 2. Установка базовых инструментов и зависимостей для Linux Desktop
sudo apt install -y curl git unzip xz-utils zip libglu1-mesa \
  clang cmake ninja-build pkg-config libgtk-3-dev libstdc++-12-dev
</code></pre>
<p dir="auto"><strong>Что установили:</strong></p>
<ul>
<li><code>curl</code>, <code>git</code>, <code>unzip</code>, <code>xz-utils</code>, <code>zip</code> — для скачивания и распаковки</li>
<li><code>libglu1-mesa</code> — графическая библиотека (OpenGL)</li>
<li><code>clang</code>, <code>cmake</code>, <code>ninja-build</code>, <code>pkg-config</code>, <code>libgtk-3-dev</code> — компиляция Linux-приложений</li>
<li><code>libstdc++-12-dev</code> — стандартная библиотека C++</li>
</ul>
<hr />
<h2><a class="anchor-offset" name="часть-2.-скачивание-и-установка-flutter-sdk"></a>Часть 2. Скачивание и установка Flutter SDK</h2>
<pre><code class="language-bash"># 3. Переход в домашнюю директорию
cd ~

# 4. Скачивание Flutter SDK (около 714 МБ)
curl -O https://storage.googleapis.com/flutter_infra_release/releases/stable/linux/flutter_linux_3.22.1-stable.tar.xz

# 5. Распаковка (создаст папку ~/flutter)
tar xf flutter_linux_3.22.1-stable.tar.xz

# 6. Добавление Flutter в PATH (через ~/.bashrc)
echo 'export PATH="$PATH:$HOME/flutter/bin"' &gt;&gt; ~/.bashrc

# 7. Применение изменений
source ~/.bashrc
</code></pre>
<hr />
<h2><a class="anchor-offset" name="часть-3.-первый-запуск-и-решение-проблем"></a>Часть 3. Первый запуск и решение проблем</h2>
<h3><a class="anchor-offset" name="img-src-https-baseinfo.nbics.net-assets-plugins-nodebb-plugin-emoji-emoji-android-26a0.png-v-e590adcca20-class-not-responsive-emoji-emoji-android-emoji-warning-style-height-23px-width-auto-vertical-align-middle-title-alt-flutter-при-первом-запуске-скачивает-strong-dart-sdk-strong-около-221-мб-и-дополнительные-компоненты."></a><img src="https://baseinfo.nbics.net/assets/plugins/nodebb-plugin-emoji/emoji/android/26a0.png?v=e590adcca20" class="not-responsive emoji emoji-android emoji--warning" style="height:23px;width:auto;vertical-align:middle" title="⚠" alt="⚠" />️ Flutter при первом запуске скачивает <strong>Dart SDK</strong> (около 221 МБ) и дополнительные компоненты.</h3>
<pre><code class="language-bash"># 8. Первый запуск (будет загрузка, НЕ прерывайте Ctrl+C!)
flutter doctor -v
</code></pre>
<p dir="auto"><strong>Если зависло</strong>:</p>
<pre><code class="language-bash"># Проверьте, не висит ли процесс в фоне
ps aux | grep flutter

# Убейте зависшие процессы
pkill -f flutter

# Удалите файл блокировки (если есть)
rm -f ~/flutter/bin/cache/lockfile

# Очистите кэш (если нужно)
rm -rf ~/flutter/bin/cache

# Запустите снова
flutter doctor -v
</code></pre>
<p dir="auto"><strong>Если загрузка идёт, но медленно</strong> — не прерывайте.</p>
<h2><a class="anchor-offset" name="часть-4.-результат-успешной-установки"></a>Часть 4. Результат успешной установки</h2>
<p dir="auto">После успешного завершения вы увидите:</p>
<pre><code>[✓] Flutter (Channel stable, 3.22.1, on Debian GNU/Linux 12 ...)
[✓] Chrome - develop for the web
[✓] Linux toolchain - develop for Linux desktop
[✓] VS Code (version 1.115.0)
[✓] Connected device (2 available)
    • Linux (desktop)
    • Chrome (web)
[✓] Network resources
</code></pre>
<p dir="auto"><strong>Что означают крестики <code>[✗]</code></strong> — это НЕ ошибки установки Flutter, а индикаторы того, что вы не настроили. Например, не настроена Android-разработка (она не нужна для десктопа).</p>
<hr />
<h2><a class="anchor-offset" name="часть-5.-создание-первого-linux-приложения"></a>Часть 5. Создание первого Linux-приложения</h2>
<pre><code class="language-bash"># 9. Создание нового проекта
flutter create my_desktop_app

# 10. Переход в папку проекта
cd my_desktop_app

# 11. Запуск Linux-версии
flutter run -d linux
</code></pre>
<p dir="auto">Если всё настроено правильно, откроется окно с приложением Flutter (счётчик кликов).</p>
<hr />
<h2><a class="anchor-offset" name="часть-6.-настройка-ide-vs-code"></a>Часть 6. Настройка IDE (VS Code)</h2>
<ol>
<li>Откройте VS Code</li>
<li>Нажмите <code>Ctrl+Shift+X</code> (расширения)</li>
<li>Установите:
<ul>
<li><strong>Flutter</strong> (от Dart Code)</li>
<li><strong>Dart</strong> (установится автоматически)</li>
</ul>
</li>
</ol>
<p dir="auto">После установки расширений:</p>
<ul>
<li>Нажмите <code>Ctrl+Shift+P</code> → <code>Flutter: New Project</code></li>
<li>Или откройте существующий проект: <code>File → Open Folder → my_desktop_app</code></li>
</ul>
<hr />
<h2><a class="anchor-offset" name="часть-7.-полезные-команды-для-ежедневной-работы"></a>Часть 7. Полезные команды для ежедневной работы</h2>
<pre><code class="language-bash"># Проверка состояния (быстро)
flutter doctor

# Список доступных устройств
flutter devices

# Запуск на Linux
flutter run -d linux

# Запуск в Chrome (для веб-версии)
flutter run -d chrome

# Сборка релизной версии Linux-приложения
flutter build linux

# Готовый бинарник будет в:
# ./build/linux/x64/release/bundle/
</code></pre>
<hr />
<h2><a class="anchor-offset" name="img-src-https-baseinfo.nbics.net-assets-plugins-nodebb-plugin-emoji-emoji-android-1f4cb.png-v-e590adcca20-class-not-responsive-emoji-emoji-android-emoji-clipboard-style-height-23px-width-auto-vertical-align-middle-title-alt-сводка-что-в-стандартном-варианте-у-вас-есть-сейчас"></a><img src="https://baseinfo.nbics.net/assets/plugins/nodebb-plugin-emoji/emoji/android/1f4cb.png?v=e590adcca20" class="not-responsive emoji emoji-android emoji--clipboard" style="height:23px;width:auto;vertical-align:middle" title="📋" alt="📋" /> Сводка: что в стандартном варианте у вас есть сейчас</h2>
<table class="table table-bordered table-striped">
<thead>
<tr>
<th>Компонент</th>
<th>Статус</th>
</tr>
</thead>
<tbody>
<tr>
<td>Flutter SDK</td>
<td><img src="https://baseinfo.nbics.net/assets/plugins/nodebb-plugin-emoji/emoji/android/2705.png?v=e590adcca20" class="not-responsive emoji emoji-android emoji--white_check_mark" style="height:23px;width:auto;vertical-align:middle" title="✅" alt="✅" /> Установлен (3.22.1)</td>
</tr>
<tr>
<td>Dart SDK</td>
<td><img src="https://baseinfo.nbics.net/assets/plugins/nodebb-plugin-emoji/emoji/android/2705.png?v=e590adcca20" class="not-responsive emoji emoji-android emoji--white_check_mark" style="height:23px;width:auto;vertical-align:middle" title="✅" alt="✅" /> Скачан автоматически</td>
</tr>
<tr>
<td>Linux toolchain</td>
<td><img src="https://baseinfo.nbics.net/assets/plugins/nodebb-plugin-emoji/emoji/android/2705.png?v=e590adcca20" class="not-responsive emoji emoji-android emoji--white_check_mark" style="height:23px;width:auto;vertical-align:middle" title="✅" alt="✅" /> Работает (clang, cmake, ninja)</td>
</tr>
<tr>
<td>VS Code + расширения</td>
<td><img src="https://baseinfo.nbics.net/assets/plugins/nodebb-plugin-emoji/emoji/android/2705.png?v=e590adcca20" class="not-responsive emoji emoji-android emoji--white_check_mark" style="height:23px;width:auto;vertical-align:middle" title="✅" alt="✅" /> Готовы к работе</td>
</tr>
<tr>
<td>Создание Linux-приложений</td>
<td><img src="https://baseinfo.nbics.net/assets/plugins/nodebb-plugin-emoji/emoji/android/2705.png?v=e590adcca20" class="not-responsive emoji emoji-android emoji--white_check_mark" style="height:23px;width:auto;vertical-align:middle" title="✅" alt="✅" /> Возможно</td>
</tr>
<tr>
<td>Android-разработка</td>
<td><img src="https://baseinfo.nbics.net/assets/plugins/nodebb-plugin-emoji/emoji/android/274c.png?v=e590adcca20" class="not-responsive emoji emoji-android emoji--x" style="height:23px;width:auto;vertical-align:middle" title="❌" alt="❌" /> Не настроена (и не нужна для десктопа)</td>
</tr>
</tbody>
</table>
<hr />
<h2><a class="anchor-offset" name="img-src-https-baseinfo.nbics.net-assets-plugins-nodebb-plugin-emoji-emoji-android-1f680.png-v-e590adcca20-class-not-responsive-emoji-emoji-android-emoji-rocket-style-height-23px-width-auto-vertical-align-middle-title-alt-следующие-шаги-для-вашего-проекта"></a><img src="https://baseinfo.nbics.net/assets/plugins/nodebb-plugin-emoji/emoji/android/1f680.png?v=e590adcca20" class="not-responsive emoji emoji-android emoji--rocket" style="height:23px;width:auto;vertical-align:middle" title="🚀" alt="🚀" /> Следующие шаги для вашего проекта</h2>
<p dir="auto">Теперь вы можете:</p>
<ol>
<li><strong>Создать проект:</strong></li>
</ol>
<pre><code class="language-bash">flutter create knowledge_base_app
cd knowledge_base_app
</code></pre>
<ol start="2">
<li>
<p dir="auto"><strong>Изучить структуру:</strong></p>
<ul>
<li><code>lib/main.dart</code> — главный файл приложения</li>
<li><code>linux/</code> — конфигурация для Linux-сборки</li>
</ul>
</li>
<li>
<p dir="auto"><strong>Попробовать отредактировать интерфейс:</strong></p>
<ul>
<li>Откройте <code>lib/main.dart</code> в VS Code</li>
<li>Измените текст в <code>Center</code> → <code>Text('Моя база знаний')</code></li>
<li>Нажмите <code>r</code> в терминале (горячая перезагрузка)</li>
</ul>
</li>
<li>
<p dir="auto"><strong>Подготовиться к интеграции с Rust:</strong></p>
<ul>
<li>Установите Rust: <code>curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh</code></li>
<li>Изучите <code>flutter_rust_bridge</code> для FFI</li>
</ul>
</li>
</ol>
<hr />
<h2><a class="anchor-offset" name="img-src-https-baseinfo.nbics.net-assets-plugins-nodebb-plugin-emoji-emoji-android-26a0.png-v-e590adcca20-class-not-responsive-emoji-emoji-android-emoji-warning-style-height-23px-width-auto-vertical-align-middle-title-alt-запомните-что-делать-если-code-flutter-doctor-code-завис"></a><img src="https://baseinfo.nbics.net/assets/plugins/nodebb-plugin-emoji/emoji/android/26a0.png?v=e590adcca20" class="not-responsive emoji emoji-android emoji--warning" style="height:23px;width:auto;vertical-align:middle" title="⚠" alt="⚠" />️ Запомните: что делать, если <code>flutter doctor</code> завис</h2>
<ol>
<li><strong>Не паниковать</strong> — первый запуск всегда долгий</li>
<li><strong>Проверить процессы:</strong> <code>ps aux | grep flutter</code></li>
<li><strong>Убить процессы:</strong> <code>pkill -f flutter</code></li>
<li><strong>Удалить блокировку:</strong> <code>rm -f ~/flutter/bin/cache/lockfile</code></li>
<li><strong>Запустить снова:</strong> <code>flutter doctor -v</code></li>
</ol>
<hr />
<p dir="auto"><strong>Итог:</strong> Flutter на Debian 12 полностью готов к разработке десктопных приложений.</p>
]]></description><link>https://baseinfo.nbics.net/topic/255/установка-flutter-на-debian-12</link><generator>RSS for Node</generator><lastBuildDate>Wed, 10 Jun 2026 17:29:04 GMT</lastBuildDate><atom:link href="https://baseinfo.nbics.net/topic/255.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 22 Apr 2026 12:12:32 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Установка Flutter на Debian 12 on Wed, 22 Apr 2026 12:16:50 GMT]]></title><description><![CDATA[<p dir="auto">Flutter сам рисует элементы интерфейса, но в Linux <strong>GTK используется как "оконная прослойка"</strong> .</p>
<h2><a class="anchor-offset" name="img-src-https-baseinfo.nbics.net-assets-plugins-nodebb-plugin-emoji-emoji-android-1f5bc.png-v-e590adcca20-class-not-responsive-emoji-emoji-android-emoji-frame_with_picture-style-height-23px-width-auto-vertical-align-middle-title-alt-как-это-работает-на-linux"></a><img src="https://baseinfo.nbics.net/assets/plugins/nodebb-plugin-emoji/emoji/android/1f5bc.png?v=e590adcca20" class="not-responsive emoji emoji-android emoji--frame_with_picture" style="height:23px;width:auto;vertical-align:middle" title="🖼" alt="🖼" />️ Как это работает на Linux</h2>
<pre><code>┌─────────────────────────────────────────────────────────┐
│                   Ваше Flutter-приложение                │
│  (все кнопки, текст, анимации рисует Flutter через Skia) │
└─────────────────────────────────────────────────────────┘
                            ↓
┌─────────────────────────────────────────────────────────┐
│              Прослойка (embedder) для Linux              │
│         Отвечает за: окно, события мыши/клавиатуры       │
└─────────────────────────────────────────────────────────┘
                            ↓
┌─────────────────────────────────────────────────────────┐
│         GTK (или GLFW) — системная библиотека            │
│      Создаёт окно, передаёт ввод, но НЕ рисует UI        │
└─────────────────────────────────────────────────────────┘
</code></pre>
<h2><a class="anchor-offset" name="img-src-https-baseinfo.nbics.net-assets-plugins-nodebb-plugin-emoji-emoji-android-1f527.png-v-e590adcca20-class-not-responsive-emoji-emoji-android-emoji-wrench-style-height-23px-width-auto-vertical-align-middle-title-alt-что-именно-делает-gtk"></a><img src="https://baseinfo.nbics.net/assets/plugins/nodebb-plugin-emoji/emoji/android/1f527.png?v=e590adcca20" class="not-responsive emoji emoji-android emoji--wrench" style="height:23px;width:auto;vertical-align:middle" title="🔧" alt="🔧" /> Что именно делает GTK</h2>
<p dir="auto">Flutter на Linux <strong>не использует GTK для рисования виджетов</strong> (кнопок, полей ввода). GTK нужен только для:</p>
<ol>
<li><strong>Создания окна</strong> — получение "холста" от операционной системы</li>
<li><strong>Обработки событий</strong> — куда кликнули мышью, какую клавишу нажали</li>
<li><strong>Буфера обмена</strong> — копировать/вставить</li>
<li><strong>Управления окном</strong> — свернуть, развернуть, закрыть</li>
</ol>
<p dir="auto"><strong>Всё рисование внутри окна</strong> (кнопки, текст, анимации, градиенты) делает <strong>Flutter через Skia</strong> (или Impeller), который обращается напрямую к видеокарте через OpenGL/Vulkan.</p>
<h2><a class="anchor-offset" name="img-src-https-baseinfo.nbics.net-assets-plugins-nodebb-plugin-emoji-emoji-android-1f4ca.png-v-e590adcca20-class-not-responsive-emoji-emoji-android-emoji-bar_chart-style-height-23px-width-auto-vertical-align-middle-title-alt-сравнение-с-другими-платформами"></a><img src="https://baseinfo.nbics.net/assets/plugins/nodebb-plugin-emoji/emoji/android/1f4ca.png?v=e590adcca20" class="not-responsive emoji emoji-android emoji--bar_chart" style="height:23px;width:auto;vertical-align:middle" title="📊" alt="📊" /> Сравнение с другими платформами</h2>
<table class="table table-bordered table-striped">
<thead>
<tr>
<th>Платформа</th>
<th>Оконная прослойка</th>
<th>Рисование UI</th>
</tr>
</thead>
<tbody>
<tr>
<td><strong>Linux</strong></td>
<td>GTK (или GLFW)</td>
<td>Flutter (Skia → OpenGL)</td>
</tr>
<tr>
<td><strong>Windows</strong></td>
<td>Win32 API</td>
<td>Flutter (Skia → Direct3D)</td>
</tr>
<tr>
<td><strong>macOS</strong></td>
<td>Cocoa</td>
<td>Flutter (Skia → Metal)</td>
</tr>
<tr>
<td><strong>Android</strong></td>
<td>Android Framework</td>
<td>Flutter (Skia/Impeller → Vulkan/OpenGL)</td>
</tr>
<tr>
<td><strong>iOS</strong></td>
<td>UIKit</td>
<td>Flutter (Impeller → Metal)</td>
</tr>
</tbody>
</table>
<h2><a class="anchor-offset" name="как-это-проверить"></a>🧪 Как это проверить</h2>
<p dir="auto">Запустите приложение и посмотрите на использование памяти:</p>
<pre><code class="language-bash"># В другом терминале
ps aux | grep my_desktop_app
</code></pre>
<p dir="auto">Вы увидите, что GTK-библиотеки подгружены (<code>libgtk-3.so</code>), но они не потребляют ресурсы на отрисовку — только на управление окном.</p>
<h2><a class="anchor-offset" name="img-src-https-baseinfo.nbics.net-assets-plugins-nodebb-plugin-emoji-emoji-android-1f4a1.png-v-e590adcca20-class-not-responsive-emoji-emoji-android-emoji-bulb-style-height-23px-width-auto-vertical-align-middle-title-alt-зачем-нужен-именно-gtk"></a><img src="https://baseinfo.nbics.net/assets/plugins/nodebb-plugin-emoji/emoji/android/1f4a1.png?v=e590adcca20" class="not-responsive emoji emoji-android emoji--bulb" style="height:23px;width:auto;vertical-align:middle" title="💡" alt="💡" /> Зачем нужен именно GTK</h2>
<p dir="auto">Flutter на Linux поддерживает два "эмбеддера":</p>
<ul>
<li><strong>GTK</strong> — используется по умолчанию (лучшая интеграция с окружениями GNOME, LXQt, XFCE)</li>
<li><strong>GLFW</strong> — минималистичный вариант (без зависимостей от GTK)</li>
</ul>
<p dir="auto">Можно переключиться на GLFW:</p>
<pre><code class="language-bash">flutter config --enable-linux-glfw
flutter create --platforms=linux .
</code></pre>
<p dir="auto">Но GTK предпочтительнее, так как лучше поддерживает:</p>
<ul>
<li>масштабирование для HiDPI</li>
<li>работу с несколькими мониторами</li>
<li>ввод с клавиатуры (особенно не-латинские раскладки)</li>
</ul>
<p dir="auto"><strong>Кратко:</strong> GTK даёт окно, Flutter рисует внутри него. Никакие GTK-виджеты (кнопки, поля) не используются — Flutter рисует свои собственные.</p>
]]></description><link>https://baseinfo.nbics.net/post/2785</link><guid isPermaLink="true">https://baseinfo.nbics.net/post/2785</guid><dc:creator><![CDATA[Admin]]></dc:creator><pubDate>Wed, 22 Apr 2026 12:16:50 GMT</pubDate></item></channel></rss>