Вопрос или проблема
Я новичок в Linux / Ubuntu и хочу установить SDK Flutter, и в их документации рекомендуются следующие шаги:
Создайте папку, в которую вы можете установить Flutter. Рассмотрите возможность создания каталога по адресу
~/development/
.Извлеките файл в каталоге, в котором вы хотите хранить SDK Flutter.
tar -xf ~/Downloads/flutter_linux_3.x.tar.xz -C ~/development/
Когда закончите, SDK Flutter должен находиться в каталоге ~/development/flutter.
Но размещение около 14000 файлов с общим размером 1,7 ГБ в директории моего домашнего каталога ~/
кажется мне неправильным. В разделе Где установить библиотеки вручную? или Где хранить файлы SDK Android рекомендуются два варианта:
- использовать
/usr/local/lib/
, как рекомендует FHS - использовать
/opt/
и ссылки на Linux-Filesystem-Hierarchy / opt
Поэтому я попробовал
$ sudo mkdir -p /usr/local/lib/flutter-sdk
$ tar -xf ~/Downloads/flutter_linux_3.24.3-stable.tar.xz -C /usr/local/lib/flutter-sdk/
Но я получил сотни сообщений, похожих на
tar: flutter/docs/platforms/Hybrid-Composition.md: open failed: Файл или папка не найдены
tar: flutter/docs: функция mkdir не удалась: Файл или папка не найдены
Попытка использовать sudo tar -xf ...
не удалась.
Вопросы
- Как я могу извлечь файлы в целевую папку
/usr/local/lib/flutter-sdk/
? - Должен ли я вносить изменения в определенные права (доступ на чтение и запись) для обычного / неroot пользователя после того, как папки и файлы были извлечены?
Во-первых, я не совсем понимаю, почему вы не хотите иметь это в вашем домашнем каталоге. Это кажется самым простым и естественным местом для установки чего-то, чем будете пользоваться только вы. Это также упрощает создание резервных копий и обновление вашей системы, так как это будет в каталоге, который вы контролируете. Так что я на самом деле бы просто использовал ~/development
или что-то еще, но в каталоге в вашем $HOME
. Это также означает, что не нужно доступа root.
Тем не менее, если вы хотите поместить это в системный каталог, не используйте /usr/local/lib
, используйте /usr/local
. Вы не устанавливаете библиотеку, поэтому это не должно находиться в каталоге lib/
. Поэтому, если вы настаиваете на том, чтобы это было в /usr/local
, я бы сделал так:
sudo tar -xf ~/Downloads/flutter_linux_3.24.3-stable.tar.xz -C /usr/local
Я только что попробовал это на своем компьютере, и все сработало без проблем. Извлечение создаст /usr/local/flutter
, который теперь содержит:
$ ls /usr/local/flutter/
analysis_options.yaml CODE_OF_CONDUCT.md dev flutter_root.iml README.md
AUTHORS CODEOWNERS docs LICENSE TESTOWNERS
bin CONTRIBUTING.md examples packages version
CHANGELOG.md dartdoc_options.yaml flutter_console.bat PATENT_GRANT
Другие изменения прав не понадобятся. Теперь вы можете запустить /usr/local/flutter/bin/flutter
или, проще, добавить эту строку в ваш ~/.bashrc
, чтобы добавить каталог в ваш PATH:
export PATH="$PATH:/usr/local/flutter/bin/"
Теперь откройте новый терминал, и вы можете просто выполнить flutter
.
Ответ или решение
Установка Flutter SDK в Ubuntu: Инструкция по извлечению и настройке
Введение
Установка Flutter SDK на Ubuntu может вызвать некоторые сложности, особенно для тех, кто только начинает изучать Linux. В данной инструкции мы рассмотрим, как правильно извлечь Flutter SDK в желаемую директорию, а также ответим на распространенные вопросы по настройке прав доступа.
Проблема с извлечением в /usr/local/lib
При попытке извлечь Flutter SDK в директорию /usr/local/lib
, вы столкнулись с рядом ошибок, сообщающих о неудачах в открытии файлов и создании папок. Это связано с тем, что вы пытаетесь установить SDK в неправильную директорию. Директория lib
предназначена для библиотек, а Flutter SDK является целым набором инструментов, поэтому его следует извлекать в директорию, соответствующую его назначению.
Правильный способ установки Flutter SDK
Для корректной установки Flutter SDK выполните следующие шаги:
- Создайте директорию для Flutter. Вы можете использовать
/usr/local
, чтобы хранить программное обеспечение, доступное для всех пользователей. - Извлеките файл SDK в эту директорию.
Команды для установки
Откройте терминал и выполните:
sudo mkdir -p /usr/local/flutter
sudo tar -xf ~/Downloads/flutter_linux_3.24.3-stable.tar.xz -C /usr/local/flutter --strip-components=1
Объяснение команд:
sudo
— выполните команды с правами администратора.mkdir -p /usr/local/flutter
— создаст директорию, если она еще не существует.tar -xf ...
— распакует архив. Опция--strip-components=1
удаляет уровень вложенности в структуре каталогов, чтобы содержимое резервного копирования помещалось непосредственно в/usr/local/flutter
.
Настройка прав доступа
После извлечения SDK вам следует настроить права доступа, чтобы пользователи могли запускать Flutter без проблем. Для этого выполните:
sudo chown -R $USER:$USER /usr/local/flutter
Эта команда изменит владельца всех файлов внутри /usr/local/flutter
на вашего текущего пользователя.
Обновление пути
Чтобы легко запускать Flutter из любого места в терминале, вам следует добавить путь к бинарным файлам Flutter в переменную окружения PATH
. Для этого добавьте следующую строку в файл ~/.bashrc
:
echo 'export PATH="$PATH:/usr/local/flutter/bin"' >> ~/.bashrc
После этого примените изменения:
source ~/.bashrc
Теперь вы сможете запускать Flutter, просто введя команду flutter
в терминале.
Заключение
Теперь у вас есть полное руководство по установке и настройке Flutter SDK на Ubuntu. Следуя указанным шагам, вы сможете избежать распространенных ошибок и легко управлять правами доступа к установленному программному обеспечению. Если у вас возникнут вопросы или проблемы, не стесняйтесь использовать ресурсы сообщества или официальные документы Flutter для дополнительной справки.