Flutter: Пусть flutter можно будет установить через homebrew

Созданный на 11 янв. 2018  ·  77Комментарии  ·  Источник: flutter/flutter

Не нашел никаких существующих проблем по этому поводу. Открытие для отслеживания.

Пусть флаттер будет brew install flutter able.

P6 first hour crowd passed first triage platform-mac new feature tool

Самый полезный комментарий

Так что вместо того, чтобы мне приходилось устанавливать с пользовательского касания, будь то @MiderWong или @eclewlow , я должен доверять и надеяться, что:

  1. Тап этого пользователя станет «официальным», который будет хорошо поддерживаться и обновляться при необходимости.
  2. Этот пользователь не собирается внедрять вредоносное ПО на мою машину.

Я предлагаю сделать то же самое, что и Дарт, когда у Дарта есть кран для варки с именем dart-lang/dart есть ссылки в официальных документах Дарта.
Это объединяет Flutter с Dart (учитывая, что они, по сути, сестринские проекты), и делает вещи последовательными и простыми.
(Мысль о душе: учитывая, что Flutter является сестринским проектом Dart, а Flutter требует Dart, почему бы просто не связать его как другую формулу в кране dart-lang ?)

Я думаю, что мои вопросы, как разработчика, не занимающегося пивоварением, и новичка в этом обсуждении:

  1. Это в процессе? и если да, то какое обновление? Потому что это нерешенный вопрос с января 2018 года?
  2. Если это еще не началось, что нам, как сообществу, нужно сделать, чтобы это сделать?

Все 77 Комментарий

@gspencergoog вам может быть интересно

https://docs.brew.sh/Formula-Cookbook

Процесс довольно прост. Хотя нам нужно убедиться, что он интегрируется с нашим https://github.com/flutter/flutter/wiki/Release-process , в идеале автоматически.

Привет, команда Flutter! Я начал добавлять формулу flutter в Homebrew по адресу https://github.com/Homebrew/homebrew-core/pull/27395 , но я определенно мог бы использовать дополнительные рекомендации по следованию указаниям в этом комментарии:

Хотя нам нужно убедиться, что он интегрируется с нашим https://github.com/flutter/flutter/wiki/Release-process , в идеале автоматически.

Прямо сейчас формула Homebrew просто загружает текущую бета-версию, распаковывает ее и копирует в Flutter's Keg (например, /usr/local/Cellar/flutter/0.3.1/ ).

Любые отзывы приветствуются!

@ jcollins-g относительно shlock из https://github.com/Homebrew/homebrew-core/pull/27395 , возможно, мы сможем проверить, возвращает ли shlock недопустимый / 1 и идентификатор родительского процесса brew, не shlock. Также мы можем заблокировать запись в части кеша, чтобы предотвратить самообновление при установке brew.

В контексте этого PR Homebrew я написал о проблеме shlock в комментариях, начинающихся здесь: https://github.com/Homebrew/homebrew-core/pull/27395/files#diff -b438c13e924f5f36b1ce4398a89436d2R36

На самом деле, мы рассмотрели эту идею еще немного, и я думаю, что в конечном итоге мы хотели бы, чтобы официальная формула была в домашнем кране (неосновном репозитории). Таким образом, мы можем держать цели обновления флаттера и варки герметично синхронизированными.

Надеюсь, в ближайшем будущем мы сможем внедрить версию вашей формулы в кран и упростить официальный процесс установки.

Конечно! В таком случае я был бы счастлив закрыть PR на homebrew-core если это имеет смысл?

да. Спасибо за вклад!

@xster fwiw в этом нет необходимости. Формулы в Homebrew / homebew-core обновляются в течение нескольких часов после выхода апстрима, поскольку мы запускаем brew livecheck несколько раз в день.

Меня немного удивляет поведение @xster / @briankung shlock в пиве. Не похоже, что здесь происходит что-то особенное:

https://opensource.apple.com/source/shell_cmds/shell_cmds-118/shlock/shlock.c.auto.html

openloop:
    if ((fd = open(tempname, O_RDWR|O_CREAT|O_EXCL, 0644)) < 0) {

Это всегда должно быть допустимым для файловой системы POSIX - ну, если вы не установили chflags в каталоге, чтобы предотвратить его запись:

jcollins-macbookpro:shlock jcollins$ sudo chflags uchg .
jcollins-macbookpro:shlock jcollins$ ls -la
total 0
drwxr-xr-x   2 jcollins  wheel    64 May  3 08:50 .
drwxrwxrwt  69 root      wheel  2208 May  3 08:52 ..
jcollins-macbookpro:shlock jcollins$ echo hi > foo
-bash: foo: Operation not permitted
jcollins-macbookpro:shlock jcollins$ ls -la
total 0
drwxr-xr-x   2 jcollins  wheel    64 May  3 08:50 .
drwxrwxrwt  69 root      wheel  2208 May  3 08:52 ..
jcollins-macbookpro:shlock jcollins$ shlock -f foo -p $$
shlock: open(shlock14741): Operation not permitted
jcollins-macbookpro:shlock jcollins$

Если что-то в homebrew или в том, как вы его настраиваете, делает это, исправление shlock не приведет к его сокращению, потому что тогда вы потерпите неудачу, когда в кеше неизбежно будут выполняться другие операции записи.

Если добавить эту строку:

chflags -R nouchg "$FLUTTER_ROOT/bin/cache"

здесь это исправляет, у вас проблема с chflags и, вероятно, следует как-то с этим справиться. Каким-то образом bin / cache может уже существовать в тот момент, когда вы впервые запускаете flutter (возможно, вы начинаете с бинарной сборки flutter? У них есть предварительно созданный кеш, поэтому они передадут mkdir нормально, но вы не сможете записать в кеш).

[отредактировано, чтобы исправить chflags]

@ jcollins-g Ах, мой unix-fu не в духе - я не знал о chflags , но это имеет смысл. Я полагаю, что на данный момент это академично, но я займусь этим. Спасибо!

Я добавил строку следующим образом:

diff --git a/bin/flutter b/bin/flutter
index 079c3f94d..1b7e06f43 100755
--- a/bin/flutter
+++ b/bin/flutter
@@ -39,6 +39,7 @@ function _rmlock () {

 function upgrade_flutter () {
   mkdir -p "$FLUTTER_ROOT/bin/cache"
+  chflags -R nouchg "$FLUTTER_ROOT/bin/cache"

   # This function is executed with a redirect that pipes the source of
   # this script into file descriptor 3.

И тест flutter --version прежнему терпит неудачу с ошибкой shlock .

Я пропустил то, что вы сказали ранее:

может быть, вы начинаете с бинарной сборки флаттера? У них есть готовый кеш, поэтому они передадут mkdir нормально, но вы не сможете записывать в кеш

Я думаю, что использую бинарную сборку флаттера. Это почтовый индекс с https://flutter.io/setup-macos/#get -sdk.

Поскольку мне было любопытно, я удалил папку cache чтобы посмотреть, может ли сценарий flutter создать саму папку. Не удалось: mkdir: /usr/local/Cellar/flutter/0.3.1-beta/bin/cache: Operation not permitted и вставка echo $(whoami) в flutter показывает, что скрипт запущен от имени моего личного пользователя (проверка работоспособности).

Я не слишком знаком с разрешениями Unix, но похоже, что мне нужно sudo для редактирования любых файлов в /usr/local/Cellar/flutter/ , и просмотр разрешений показывает, что все файлы находятся в admin группа:

$ pwd && echo && ls -al bin
/usr/local/Cellar/flutter/0.3.1-beta

total 32
drwxr-xr-x   5 briankung  admin   160 May  4 10:01 .
drwxr-xr-x  26 briankung  admin   832 May  4 09:53 ..
-r-xr-xr-x   1 briankung  admin  6892 May  4 10:01 flutter
-r--r--r--   1 briankung  admin  6338 May  4 09:52 flutter.bat
drwxr-xr-x   8 briankung  admin   256 May  4 09:52 internal

Копирование каталога в мой домашний каталог присваивает ему группу staff , а затем запуск ~/flutter/bin/flutter --version с удаленным каталогом cache запускает загрузку языка Dart. Однако изменение группы в папке Homebrew flutter , /usr/local/Cellar/flutter/ , не позволяет пивоваренному бочонку создать папку, и когда я сам создаю папку, я снова оказываюсь в shlock: open(/usr/local/Cellar/flutter/0.3.1-beta/bin/cache/shlock9849): Operation not permitted ошибка.

Спасибо за подробный ответ @briankung. Я мог бы углубиться в это вместе с вами, но похоже, что основная ошибка заключается в том, что мы не можем гарантировать возможность записи в bin / cache при установке flutter обычными пользователями, и Flutter предполагает это.

Большинство пакетов Unix отделяют кэшированные биты, которыми они управляют, от двоичной установки. Метод упаковки Flutter несколько необычен, поскольку кэшированные биты включают большую часть двоичной установки. Homebrew, apt-get, практически все менеджеры пакетов и операционные системы будут иметь некоторую комбинацию разрешений, chroot во время сборки, chattr / chflags и т. Д., Чтобы попытаться предотвратить изменение установленных пакетов обычными пользователями.

Я думаю, что правильным здесь может быть установка флага в файле, который блокирует кеш flutter как доступный только для чтения, и заставляет встроенные инструменты обновления flutter уважать его. Таким образом, мы можем различать ошибку конфигурации пользователя и пользователя, использующего установленный пакет, и отображать соответствующие ошибки. Или, проще говоря, мы могли бы просто проверить возможность записи в кеш и пропустить ее, если мы не можем писать в кеш.

Первоначального предложения @xster может быть достаточно, если остальные инструменты уже поддерживают это. что звучит так, как будто это могло быть так.

Я покопался еще немного. Похоже, что нам _в основном_ не нужно писать в FLUTTER_ROOT и его подкаталоги.

Однако есть исключения, которые могут привести к сбоям:

Шлок, с которым мы здесь сталкиваемся, определенно один.
Еще одна проблема -
Замок для золотых файлов - другое.

Кроме того, мне кажется подозрительным предпочтение использовать корневой кеш pub с флаттером - если только pub не закодирован для обработки этого случая, это, вероятно, не сработает и в тех случаях, когда разработчик хочет использовать другой пакет.

Учитывая, что я сразу обнаружил столько мелких проблем, я думаю, чтобы исправить это навсегда, нам, вероятно, нужно добавить работающие интеграционные тесты с использованием FLUTTER_ROOT, доступного только для чтения, и отследить любые мелкие разовые проблемы, подобные этому. Это также предотвратит повторное появление этого, поскольку разработчику Flutter очень легко случайно ввести что-то подобное.

+1 при тестировании с root-доступом только для чтения

Есть обновления по этому поводу?

В настоящее время мы не планируем этого делать, но если бы кто-то захотел над этим поработать, мы поддержали бы эту работу. Я предполагаю, что это будет связано либо с интеграцией с нашими сценариями непрерывной интеграции для публикации в homebrew каким-либо образом, либо с созданием сценария начальной загрузки, который знает, как интегрироваться с флаттером, и поддержанием этого (и особенно, написанием тестов, чтобы убедиться, что мы знаем, когда он ломается, так что мы можем это исправить). Если вы хотите поработать над этим, не стесняйтесь обращаться ко мне.

Я изменил эту ошибку, чтобы она касалась только домашнего пивоварения, если вас интересует то же самое для apt-get, сообщите об отдельной ошибке (хотя приведенный выше комментарий в равной степени относится и к этому).

Я сделал репозиторий для Mac OS: (https://github.com/eclewlow/homebrew-formulas)

Однако все, что он делает, это устанавливает флаттер.
brew install eclewlow/formulas/flutter

Вам все равно придется самостоятельно загрузить IOS и Android Dev Tools.

Однако он не прошел brew audit , поэтому я не могу добавить его в homebrew.
Вот почему:

  * Stable version URLs should not contain beta
  * Non-executables were installed to "/usr/local/opt/flutter/bin"
    The offending files are:
      /usr/local/opt/flutter/bin/cache
      /usr/local/opt/flutter/bin/internal
  * flutter has broken dynamic library links:

Поскольку была выпущена версия 1.0 flutter, я надеюсь, что смогу увидеть формулу😄.

Поскольку была выпущена версия 1.0 flutter, я надеюсь, что смогу увидеть формулу😄.

тоже с нетерпением жду этого.

@eclewlow, пожалуйста, обновите до 1.0

Извините, я в круизе, и спутниковый интернет ужасный.

Я вернусь 10-го числа, и тогда я смогу это сделать.

Если кто-то хочет сделать это сам, он может просто создать репозиторий.

Я изменил формулу, чтобы она фактически проверяла Flutter из git, а не загружала предварительно скомпилированный пакет.

Но я не понял, как получить тег последней версии из репозитория.

Вот как будет выглядеть формула:

class Flutter <Формула
desc "Создавайте красивые нативные приложения в рекордно короткие сроки"
домашняя страница " https://flutter.io/ "
версия «1.0.0»
url " https://github.com/flutter/flutter.git "
sha256 "6e3ba2da94fb150d2cb8e0596eeb92c86e5e437e91a5f39f211bd4b21d0b24f8"

бутылка: ненужная

def установить
система "git", "fetch", "--tags"
# проверить последний тег, что-то вроде этого?
# git checkout $ (git describe --abbrev = 0 --tags)
# и используйте вместо этой следующей строки:
система "git", "checkout", "tags / v1.0.0"
система "./bin/flutter"
allfiles = File.join (путь к сборке, " *", "{ ,. *}")
mv Dir.glob (все файлы), Dir.glob (префикс),: force => true

# bin.install File.join(prefix, "bin/cache/dart-sdk/bin/dart")
# bin.install File.join(prefix, "bin/cache/dart-sdk/bin/pub")

конец

def post_install
rm File.join (HOMEBREW_PREFIX, "bin", "flutter.bat")
chmod_R "+ rwx", File.join (префикс, "bin"),: verbose => true

# this line could be useful, it installs the dependencies
# of flutter, such as xcode and android if needed
# "flutter packages get"

конец

тест делать
система "ложь"
конец
конец

6 декабря 2018 г. в 11:39 Альберто Ксамин [email protected] написал:

@eclewlow https://github.com/eclewlow, пожалуйста, обновитесь до 1.0

-
Вы получаете это, потому что вас упомянули.
Ответьте на это письмо напрямую, просмотрите его на GitHub https://github.com/flutter/flutter/issues/14050#issuecomment-445002396 или отключите поток https://github.com/notifications/unsubscribe-auth/AfVSYcUOrJtVDISTEwKF4pRcsMga5PLv2

Тоже с нетерпением жду 🚶

Поскольку android-sdk доступен как бочка, я подумал, что было бы разумнее, если бы flutter также был доступен как бочка. Так что я пошел дальше и сделал доморощенный кран для бочки flutter . Вы можете проверить это здесь .

Сначала я попытался создать простую формулу и потерпел неудачу, поскольку у меня нет абсолютно никакого опыта в разработке формул для домашнего пивоварения.

Если вам это нравится, не могли бы вы пояснить, что вы на самом деле хотели бы сделать?

например, что должен делать flutter channel beta после запуска brew install flutter ? Хотели бы вы иметь возможность отправлять PR на изменения для флаттера из вашей локальной установки флаттера? Вы бы хотели, чтобы это установило для вас Android SDK или Xcode? Хотели бы вы иметь возможность делать flutter run в каталогах примеров?

Я заядлый пользователь homebrew, но никогда не писал плагин для домашнего пивоварения. Тем не менее, вот мнение одного человека:

что делать flutter channel beta после запуска brew install flutter ?

Переключитесь на бета-канал.

Хотели бы вы иметь возможность отправлять PR на изменения для флаттера из вашей локальной установки флаттера?

Нет. Homebrew в этом случае используется для использования пакетов, не обязательно для изменения этих пакетов.

Вы бы хотели, чтобы это установило для вас Android SDK или Xcode?

Он должен установить все зависимости.

Хотели бы вы иметь возможность запускать флаттер в каталогах примеров?

да. Как только вы запустите brew install flutter , flutter будет на пути, и вы можете использовать его, как если бы вы установили его так же, как описано в руководстве по Flutter.

Ok. Я обновил свою домашнюю формулу для Flutter.

https://github.com/eclewlow/homebrew-formulas

Он устанавливает самую последнюю версию Flutter с тегами в репозиторий Flutter (https://github.com/flutter/flutter) через Git.
(В настоящее время v1.1.1, но он автоматически определяет последнюю при установке)

Для обновления вам, вероятно, придется переустановить флаттер через brew

brew uninstall flutter
brew install flutter

Я написал очень небольшой учебник, чтобы обратиться к другим людям.
https://medium.com/@sadmansamee/installing -flutter-via-homebrew-a5d7009c95ba? fbclid = IwAR0DJZOdi-av2X1ofmbc1MaO7SZ7c30bowlkPK9EjIztPCrOhTv2tGbdx7E

Я написал свою домашнюю формулу для Flutter.

https://github.com/miderwong/homebrew-flutter

Он устанавливает последнюю стабильную версию (v1.0.0) Flutter в репозиторий flutter (https://github.com/flutter/flutter) через Git.

brew install flutter
brew upgrade flutter

Просто простой пример, есть много недостатков, прошу меня поправить.

https://github.com/flutter/flutter/issues/14050#issuecomment -449447441

Это работает отлично, пожалуйста, не путайте, как я, с сообщением перед установкой или долгим ожиданием при установке. Это нормально, и сообщение применяется только в том случае, если вы находитесь в затруднительном положении или у вас проблемы с запуском flutter doctor после установки.
Спасибо :)

Относится к # 9401

brew install flutter                                                                                                                                                                                        
Error: No available formula with the name "flutter"
==> Searching for a previously deleted formula (in the last month)...
Error: No previously deleted formula found.
==> Searching for similarly named formulae...
Error: No similarly named formulae found.
==> Searching taps...
==> Searching taps on GitHub...
Error: No formulae found in taps.

@jesusvallez понадобится кран, например brew tap MiderWong/flutter . Это то, что https://github.com/flutter/flutter/issues/14050#issuecomment -449447441 не сказал, но имел в виду. Просто подпишитесь на https://github.com/miderwong/homebrew-flutter .

Я написал свою домашнюю формулу для Flutter.

https://github.com/miderwong/homebrew-flutter

Он устанавливает последнюю стабильную версию (v1.0.0) Flutter в репозиторий flutter (https://github.com/flutter/flutter) через Git.

brew install flutter
brew upgrade flutter

Просто простой пример, есть много недостатков, прошу меня поправить.

Скрипт обновлен. Обновите репозиторий git с помощью следующей команды:

brew untap MiderWong/flutter
brew tap MiderWong/flutter

И следуйте инструкциям в README:
Flutter-homebrew-README

@MiderWong
получающий

Error: Invalid formula: /usr/local/Homebrew/Library/Taps/miderwong/homebrew-flutter/flutter.rb
flutter: cannot load such file -- nokogiri
Error: Cannot tap miderwong/flutter: invalid syntax in tap!

@TuxujPes Сделал бочку для установки флаттера, который можно установить, запустив

brew tap probablykasper/tap
brew cask install flutter
flutter upgrade

https://github.com/probablykasper/homebrew-tap/blob/master/Casks/flutter.rb
Он просто загружает установочный zip-файл macOS flutter и связывает исполняемый файл flutter . Затем вы запустите flutter doctor .

Так что вместо того, чтобы мне приходилось устанавливать с пользовательского касания, будь то @MiderWong или @eclewlow , я должен доверять и надеяться, что:

  1. Тап этого пользователя станет «официальным», который будет хорошо поддерживаться и обновляться при необходимости.
  2. Этот пользователь не собирается внедрять вредоносное ПО на мою машину.

Я предлагаю сделать то же самое, что и Дарт, когда у Дарта есть кран для варки с именем dart-lang/dart есть ссылки в официальных документах Дарта.
Это объединяет Flutter с Dart (учитывая, что они, по сути, сестринские проекты), и делает вещи последовательными и простыми.
(Мысль о душе: учитывая, что Flutter является сестринским проектом Dart, а Flutter требует Dart, почему бы просто не связать его как другую формулу в кране dart-lang ?)

Я думаю, что мои вопросы, как разработчика, не занимающегося пивоварением, и новичка в этом обсуждении:

  1. Это в процессе? и если да, то какое обновление? Потому что это нерешенный вопрос с января 2018 года?
  2. Если это еще не началось, что нам, как сообществу, нужно сделать, чтобы это сделать?

@Harmelodic Очень справедливые опасения. Они могли бы сделать как минимум официальную бочку для пива - у меня буквально 10 строк кода.

Также стоит отметить, что из 6000+ открытых вопросов это четвертое в списке при сортировке по 👍 реакциям. Я ценю усилия сообщества, но я предпочитаю использовать то, что официально поддерживается там, где это возможно, и, похоже, я не одинок в этом. Пожалуйста, сделайте это приоритетом 🙏

какое-нибудь обновление?

Если кому-то интересно владеть этим, мы будем рады помочь вам настроить его в инфраструктуре сборки Flutter.

Если кому-то интересно владеть этим, мы будем рады помочь вам настроить его в инфраструктуре сборки Flutter.

Кто-нибудь работает над этим?

Я написал свою домашнюю формулу для Flutter.

https://github.com/miderwong/homebrew-flutter

Он устанавливает последнюю стабильную версию (v1.0.0) Flutter в репозиторий flutter (https://github.com/flutter/flutter) через Git.

brew install flutter
brew upgrade flutter

Просто простой пример, есть много недостатков, прошу меня поправить.

Отлично работает.
Но нам также нужна ветка MASTER (не только dev / stable), чтобы иметь возможность использовать Flutter для Интернета!

Это кажется такой легкой победой для проекта. Пожалуйста, потратьте немного времени и отправьте это!

Это означало бы кучу изменений в том, как мы используем наши инструменты. Поскольку в мире пивоварения Flutter не контролировал бы самообновление. Также необходимо знать макет Brew или то, как найти место с возможностью записи для кэширования. Это подпадает под мнение @zanderso и, вероятно, будет хорошей работой.

@eseidelGoogle А как насчет официальной бочки?

@probablykasper , это самая простая часть. :) Самая сложная часть - убедиться, что инструмент futter знает, как правильно себя вести при установке как часть обычного места / процесса установки контейнера и т. Д.

Самая сложная часть - убедиться, что инструмент futter знает, как правильно вести себя при установке в рамках обычного места / процесса установки контейнера и т. Д.

Это правильно. Научить инструмент flutter тому, что за установку, обновление отвечает что-то еще, и научить его понимать более разнообразный порядок разрешений файловых систем - это довольно хороший кусок работы.

Кроме того, это не жесткий блокировщик, но это также в некоторой степени противоречит нашему желанию иметь простой способ для людей вносить свой вклад во Flutter, что сложнее, если биты репозитория Flutter не управляются git.

@probablykasper , это самая простая часть. :) Самая сложная часть - убедиться, что инструмент futter знает, как правильно себя вести при установке как часть обычного места / процесса установки контейнера и т. Д.

Я тестирую Flutter на Homebrew Cask, у меня все работает нормально. Стоит ли пересмотреть использование Cask вместо Formula для домашнего пивоварения?

socheatsok78 / homebrew-flutter

Результат испытаний

Переключение на другой канал можно выполнить с помощью flutter CLI.
И каталог установки довольно прост для Cask с использованием Formula.

@ socheatsok78 попробует это сделать. Благодарность

brew cask install socheatsok78/flutter/flutter

x-MacBook-Pro:flutter apple$ which flutter
/usr/local/bin/flutter

Но похоже, что у него есть проблемы на Mac из-за новой безопасности в Catolina.

x-MacBook-Pro:mac apple$ flutter
/usr/local/bin/flutter: line 183: 73175 Killed: 9               "$DART" --packages="$FLUTTER_TOOLS_DIR/.packages" $FLUTTER_TOOL_ARGS "$SNAPSHOT_PATH" "$@"

Но похоже, что у него есть проблемы на Mac из-за новой безопасности в Catolina.

x-MacBook-Pro:mac apple$ flutter
/usr/local/bin/flutter: line 183: 73175 Killed: 9               "$DART" --packages="$FLUTTER_TOOLS_DIR/.packages" $FLUTTER_TOOL_ARGS "$SNAPSHOT_PATH" "$@"

Я на Каталине, я не совсем уверен в этом. Единственная проблема, с которой я столкнулся, была idevice_id которую можно найти здесь # 42302

Но похоже, что у него есть проблемы на Mac из-за новой безопасности в Catolina.

x-MacBook-Pro:mac apple$ flutter
/usr/local/bin/flutter: line 183: 73175 Killed: 9               "$DART" --packages="$FLUTTER_TOOLS_DIR/.packages" $FLUTTER_TOOL_ARGS "$SNAPSHOT_PATH" "$@"

Я на Каталине, я не совсем уверен в этом. Единственная проблема, с которой я столкнулся, была idevice_id которую можно найти здесь # 42302

перейдите в Системные настройки, откройте меню безопасности, в общем разделе вы можете разрешить доступ к Dart. Снова запустите flutter upgrade . Это могло произойти во второй раз, говоря, что что-то не работает в ядре. повторите ту же процедуру еще раз и вуаля!

Установка Fluter в / usr / local / Cellar / flutter и бинарных файлов softlinking в / usr / local / bin должна помочь ИМХО. Я не могу проверить это в настоящее время, так как еще не решился перейти на Catalina.

Есть новости по этой проблеме?

Все еще надеемся, что у нас будет канонический кран и бочка. Конфиг Catalina PATH просто напрягает!

это, вероятно, два часа работы и сэкономит кучу часов для многих людей, поэтому, пожалуйста,

С нетерпением жду этого.

Большой палец вверх, с нетерпением жду этого!

Мне

Привет, ребята! Напоминаем о наших правилах гигиены:

https://github.com/flutter/flutter/wiki/Issue-hygiene#do -not-add-me-too-or-same-comments-to-bugs

Однако, пожалуйста, знайте, что мы знаем об этой проблеме.

@zanderso Я ценю модерацию, но я думаю, что на данном

От имени всех участников этой ветки я прошу основную команду составить план решения этой проблемы и сообщить об этом плане пользовательской базе.

Привет, ребята! Напоминаем о наших правилах гигиены:

https://github.com/flutter/flutter/wiki/Issue-hygiene#do -not-add-me-too-or-same-comments-to-bugs

Однако, пожалуйста, знайте, что мы знаем об этой проблеме.

Это смешно. Я только что пришел с домашней страницы Flutter и был готов попробовать, когда увидел архаичный процесс установки. Пришел сюда и увидел, что эта проблема открыта целых два года без каких-либо существенных обновлений.

Ну что ж, тогда на Котлин.

Пришел сюда, потому что сайт flutter.dev, как и многие другие сайты Google, полон вещей, которые можно фильтровать и которые не работают с Adblocker. Поэтому я не могу загрузить flutter sdk, не отключив все.
apt-get / brew было бы намного удобнее.

Также, как и @timmyjose

Привет, ребята! Напоминаем о наших правилах гигиены:
https://github.com/flutter/flutter/wiki/Issue-hygiene#do -not-add-me-too-or-same-comments-to-bugs
Однако, пожалуйста, знайте, что мы знаем об этой проблеме.

Это смешно. Я только что пришел с домашней страницы Flutter и был готов попробовать, когда увидел архаичный процесс установки. Пришел сюда и увидел, что эта проблема открыта целых два года без каких-либо существенных обновлений.

Ну что ж, тогда на Котлин.

Почему это не адресовано ...

На сайте @CAoTx Flutter нет рекламы, и у меня нет проблем с загрузкой с установленными блокировщиками рекламы. Возможно, ваши пользовательские фильтры блокировки рекламы слишком строгие? Сам сайт с открытым исходным кодом , если вы хотите увидеть, как настроить фильтры.

Другой альтернативой является использование git clone как описано в нижней части страницы загрузок, для получения главного канала. Вы можете использовать это, а затем использовать flutter channel для переключения на другой канал, если вы не хотите использовать мастер.

Адаптация нового пользователя macOS к затруднительному процессу разработки и процесса установки в лучшем случае архаична и сбивает с толку. brew install flutter должен быть выполнимым и поддерживаться основной командой в качестве официального метода установки flutter.

Поскольку эта проблема была помечена как P6 , что является самым низким приоритетом, я думаю, она не будет решена в ближайшее время? Это довольно забавно, так как это одна из самых комментируемых и активных проблем в репозитории.

@ Timsneath есть ли способ добиться большей прозрачности в том, как расставить приоритеты для этих запросов сообщества?

https://github.com/flutter/flutter/wiki/Triage
https://github.com/flutter/flutter/wiki/Issue-hygiene
поговорим о процессах.

Хотя у наших команд в настоящее время нет пропускной способности для решения этой проблемы, это не значит, что кто-то другой не может. Это будет среднее / крупное предприятие, но оно должно быть осуществимо мотивированным участником.

Есть несколько вопросов, на которые, как мне кажется, нужно ответить:

  • Обучение flutter_tools (и другим скриптам) не записи в установочный каталог sdk, а использованию других каталогов кеша (это может быть полезно для гигиены кода независимо от этого).
  • Обучение fluttter_tools тому, что это нормально иметь установку без возможности обновления (без возможности записи) и каким-то образом указывать пользователям на различные методы обновления.
  • Совместим ли метод установки Flutter на основе git с этими инструментами? Мы уже предлагаем tarballs / zip для начальной загрузки, но в настоящее время предполагаем, что пользователи устанавливают flutter / flutter как репозиторий git. Если он несовместим, на стороне инфраструктуры может быть нетривиальный процесс для поддержки создания / распространения / тестирования не-git-дистрибутивов flutter.

Рад поспорить о приоритетах (может быть, на другом форуме), но я бы посоветовал посмотреть, какие еще ошибки помечены как более приоритетные, чем эта. У Flutter много пользователей и от них много (иногда срочных) запросов. Мы стараемся решать их в том порядке, в котором они оказывают наибольшее влияние на наши цели / цели пользователей.

@eseidelGoogle Спасибо за разъяснения и набросок стратегии, это очень ценится и дает очень много возможностей!

Чтобы ответить на вопрос об обновлении, я думаю, что если обычная команда flutter update может быть просто недоступна для установок, отличных от git, этого должно быть достаточно. Есть ли способ сделать это? В идеале это был бы не другой дистрибутив, а просто проверка кода if, чтобы увидеть, есть ли в расположении двоичного файла flutter папка .git . Это возможно?

Формула также может просто загрузить репозиторий git и запускать команды для пользователя. Формулы не должны просто устанавливать двоичные файлы.

Для справки вот как работает rustup:

rustup , менеджер инструментальной цепочки языка программирования Rust, его можно установить, запустив установочный скрипт (автономная установка) или установив из менеджера пакетов ОС. Если вы хотите обновить rustup, вы можете запустить rustup self update для автономной установки или выполнить обновление через диспетчер пакетов ОС, если вы установили rustup через диспетчер пакетов ОС. Если вы попытаетесь запустить rustup self update при установке rustup через диспетчер пакетов ОС, вы получите сообщение об ошибке, в котором говорится, пожалуйста, обновите его из диспетчера пакетов ОС. Мне очень нравится эта реализация, потому что, когда вы сначала устанавливаете что-то через диспетчер пакетов своей ОС и обновляете его с помощью встроенных функций, это может выйти из-под контроля диспетчера пакетов ОС и может вызвать некоторые неизвестные ошибки в будущем.

Я думаю, что лучший способ избавиться от флаттера - это принять ту же реализацию, что и в rustup, но это огромная работа (необходимо реорганизовать многие вещи, чтобы флаттер мог управляться системным менеджером пакетов) и может потребовать помощи со стороны основных членов команды flutter , поэтому я просто даю здесь свои предложения и не ожидаю, что это удастся сделать в ближайшее время.

Да, это звучит вааааай сложнее, чем предполагаемый 10 лайнер, на который упоминалось ранее в этой ветке.

TIL продолжается обсуждение этого вопроса: http://flutter.dev/go/sdk-per-platform-installers

Была ли эта страница полезной?
0 / 5 - 0 рейтинги