Não encontrou nenhum problema existente sobre isso. Abrindo para rastreamento.
Deixe flutuar brew install flutter
capaz.
@gspencergoog você pode estar interessado
https://docs.brew.sh/Formula-Cookbook
O processo é bastante simples. Embora tenhamos que nos certificar de que ele se integra ao nosso https://github.com/flutter/flutter/wiki/Release-process , de preferência de forma automatizada.
Olá, equipe do Flutter! Comecei adicionando uma fórmula flutter
ao Homebrew em https://github.com/Homebrew/homebrew-core/pull/27395 , mas definitivamente poderia usar mais orientações sobre como seguir as instruções neste comentário:
Embora tenhamos que nos certificar de que ele se integra ao nosso https://github.com/flutter/flutter/wiki/Release-process , de preferência de forma automatizada.
No momento, a fórmula do Homebrew apenas baixa a versão beta atual, descompacta-a e copia para o Flutter's Keg (por exemplo, /usr/local/Cellar/flutter/0.3.1/
).
Qualquer feedback seria bem-vindo!
@ jcollins-g escrito para o shlock de https://github.com/Homebrew/homebrew-core/pull/27395 , talvez possamos verificar se shlock retorna não permitido / 1 e o id do processo pai está pronto, não shlock. Também podemos bloquear a gravação em partes do cache para evitar a autoatualização quando o brew for instalado.
Para o contexto desse Homebrew PR, escrevi sobre o problema de shlock
nos comentários que começam aqui: https://github.com/Homebrew/homebrew-core/pull/27395/files#diff -b438c13e924f5f36b1ce4398a89436d2R36
Na verdade, passamos por essa ideia um pouco mais e acho que, no final das contas, gostaríamos que a fórmula oficial estivesse em uma torneira de homebrew (repositório não-core). Dessa forma, podemos manter os alvos de atualização de vibração e de fermentação hermeticamente sincronizados.
Esperamos poder trazer uma versão de sua fórmula para a torneira em um futuro próximo e simplificar o processo oficial de instalação.
Certo! Nesse caso, ficaria feliz em fechar o PR em homebrew-core
se isso fizer sentido.
sim. Obrigado por fazer a contribuição!
@xster fwiw isso não é necessário. As fórmulas no Homebrew / homebew-core são atualizadas horas após o lançamento, já que executamos brew livecheck
várias vezes por dia.
O comportamento de @xster / @briankung shlock na fermentação é um pouco surpreendente para mim. Não é como se houvesse algo especial acontecendo aqui:
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) {
Isso sempre deve ser válido em um sistema de arquivos POSIX - bem, a menos que você tenha definido chflags no diretório para evitar que ele seja gravado:
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$
Se algo no homebrew ou a maneira como você está configurando fizer isso, consertar o shlock não vai resolver, porque você falhará quando outras operações de gravação forem inevitavelmente tentadas no cache.
Se adicionar esta linha:
chflags -R nouchg "$FLUTTER_ROOT/bin/cache"
aqui corrige, você tem um problema de chflags e provavelmente deve lidar com isso de alguma forma. De alguma forma, bin / cache pode já existir no ponto em que você executa o flutter pela primeira vez (talvez você esteja começando com uma construção binária do flutter? Eles têm o cache pré-feito e, portanto, passarão pelo mkdir sem problemas, mas você não será capaz para gravar no cache).
[editado para corrigir chflags]
@ jcollins-g Ah, meu unix-fu não está à altura - eu não sabia sobre chflags
, mas faz sentido. Suponho que seja acadêmico neste momento, mas vou dar uma olhada nisso. Obrigado!
Eu adicionei a linha da seguinte maneira:
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.
E o teste flutter --version
ainda falha com o erro shlock
.
Eu perdi algo que você disse antes:
talvez você esteja começando com uma construção binária de vibração? Esses têm cache pré-feito e, portanto, passarão pelo mkdir sem problemas, mas você não será capaz de gravar no cache
Acho que estou usando uma versão binária de flutter. É o zip de https://flutter.io/setup-macos/#get -sdk.
Como estava curioso, apaguei a pasta cache
para ver se o script flutter
poderia criar a própria pasta. Não poderia: mkdir: /usr/local/Cellar/flutter/0.3.1-beta/bin/cache: Operation not permitted
e inserir echo $(whoami)
em flutter
mostra que o script está sendo executado como meu usuário pessoal (verificação de integridade).
Não estou muito familiarizado com as permissões do Unix, mas parece que preciso de sudo
para editar quaisquer arquivos em /usr/local/Cellar/flutter/
, e revisar as permissões mostra que todos os arquivos estão em admin
Grupo
$ 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
Copiar o diretório para o meu diretório inicial atribui a ele o grupo staff
e, em seguida, executar ~/flutter/bin/flutter --version
com o diretório cache
excluído inicia o download do idioma DART. No entanto, alterar o grupo na pasta flutter
do Homebrew, /usr/local/Cellar/flutter/
, não permite que o barril de cerveja crie a pasta, e quando eu mesmo crio a pasta, acabo de volta à shlock: open(/usr/local/Cellar/flutter/0.3.1-beta/bin/cache/shlock9849): Operation not permitted
Erro de
Obrigado pela resposta detalhada @briankung. Eu poderia mergulhar mais fundo nisso com você, mas parece que o bug fundamental é que não podemos garantir a capacidade de gravação em bin / cache na instalação do flutter por usuários regulares e o Flutter assume isso.
A maioria dos pacotes Unix separa os bits em cache que gerenciam da instalação binária. O método de empacotamento do Flutter é um pouco heterodoxo, pois os bits em cache incluem a maior parte da instalação binária. Homebrew, apt-get, virtualmente todos os gerenciadores de pacotes e sistemas operacionais terão alguma combinação de permissões, chroot durante a construção, chattr / chflags, etc, para tentar evitar que os pacotes instalados sejam modificados por usuários regulares.
Acho que a coisa certa a fazer aqui pode ser ter um sinalizador definido em um arquivo que bloqueia o cache de flutter como somente leitura e fazer com que as ferramentas de atualização integradas do flutter respeitem isso. Dessa forma, podemos distinguir entre o erro de configuração do usuário e o usuário usando um pacote instalado e exibir os erros apropriados. Ou, mais simplesmente, podemos apenas verificar a capacidade de gravação do cache e ignorá-la se não pudermos gravar no cache.
A sugestão original de @xster pode ser suficiente se o resto das ferramentas já suportarem isso. o que parece ser o caso.
Eu fiz um pouco mais de escavação. Parece que _principalmente_ não precisamos gravar em FLUTTER_ROOT e seus subdiretórios.
No entanto, existem exceções que parecem provavelmente resultar em falhas:
O choque que estamos enfrentando aqui é definitivamente um.
A atualização do travamento na vibração é outra.
O bloqueio de arquivos dourados é outra.
Além disso, a preferência por um cache de pub de raiz flutuante parece suspeita para mim - a menos que o pub seja codificado para lidar com esse caso, isso provavelmente não funcionará para os casos em que um desenvolvedor deseja usar um pacote diferente.
Dado que encontrei muitos pequenos problemas imediatamente, acho que para consertar isso de vez, provavelmente precisamos adicionar testes de integração em execução usando um FLUTTER_ROOT somente leitura e rastrear qualquer pequeno problema como este. Isso também evitará que isso apareça novamente, pois é muito fácil para um desenvolvedor de Flutter introduzir acidentalmente algo como isso.
+1 no teste com raiz somente leitura
Alguma atualização sobre isso?
No momento, isso não é algo que estamos planejando fazer, mas se alguém quisesse trabalhar nisso, apoiaríamos esse trabalho. Eu presumo que envolveria a integração com nossos scripts de integração contínua para publicar no homebrew de alguma maneira ou a criação de um script de bootstrap que sabe como se integrar com flutter e manter isso (e especialmente, escrever testes para ter certeza de que sabemos quando quebras, para que possamos corrigi-lo). Se você estiver interessado em trabalhar nisso, não hesite em entrar em contato comigo.
Eu mudei este bug para ser especificamente sobre homebrew, se você estiver interessado na mesma coisa para o apt-get, por favor, registre um bug separado (embora o comentário acima se aplique igualmente a isso).
Fiz um repositório de toque para Mac OS: (https://github.com/eclewlow/homebrew-formulas)
Tudo o que ele faz é instalar vibração, no entanto.
brew install eclewlow/formulas/flutter
Você ainda precisa fazer o download do IOS & Android Dev Tools sozinho.
Porém, ele não passou no brew audit
, então não posso adicioná-lo ao homebrew.
Aqui está o porquê:
* 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:
Como a versão 1.0 do flutter foi lançada, espero poder ver a fórmula😄.
Como a versão 1.0 do flutter foi lançada, espero poder ver a fórmula😄.
ansioso por isso também.
@eclewlow atualize para 1.0
Desculpe, estou em um cruzeiro e a Internet via satélite é terrível.
Estarei de volta no dia 10 e então posso fazer isso.
Se alguém quiser fazer isso sozinho, basta criar um repositório.
Mudei a fórmula para que ele realmente verifique o Flutter do git, em vez de baixar o pacote pré-compilado.
Mas eu não descobri como obter a marca da versão mais recente de um repositório.
Esta é a aparência da fórmula:
classe Flutter <Formula
desc "Construa lindos aplicativos nativos em tempo recorde"
página inicial " https://flutter.io/ "
versão “1.0.0"
url " https://github.com/flutter/flutter.git "
sha256 "6e3ba2da94fb150d2cb8e0596eeb92c86e5e437e91a5f39f211bd4b21d0b24f8"
garrafa: desnecessária
def instalar
sistema "git", "fetch", "--tags"
# checkout tag mais recente, algo assim?
# git checkout $ (git describe --abbrev = 0 --tags)
# e use em vez desta próxima linha:
sistema "git", "checkout", "tags / v1.0.0"
sistema "./bin/flutter"
allfiles = File.join (buildpath, " *", "{ ,. *}")
mv Dir.glob (allfiles), Dir.glob (prefixo),: force => true
# bin.install File.join(prefix, "bin/cache/dart-sdk/bin/dart")
# bin.install File.join(prefix, "bin/cache/dart-sdk/bin/pub")
fim
def post_install
rm File.join (HOMEBREW_PREFIX, "bin", "flutter.bat")
chmod_R "+ rwx", File.join (prefixo, "bin"),: verbose => true
# this line could be useful, it installs the dependencies
# of flutter, such as xcode and android if needed
# "flutter packages get"
fim
teste fazer
sistema "falso"
fim
fim
Em 6 de dezembro de 2018, às 11h39, Alberto Xamin [email protected] escreveu:
@eclewlow https://github.com/eclewlow atualize para 1.0
-
Você está recebendo isso porque foi mencionado.
Responda a este e-mail diretamente, visualize-o no GitHub https://github.com/flutter/flutter/issues/14050#issuecomment-445002396 ou desative o tópico https://github.com/notifications/unsubscribe-auth/AfVSYcUOrJtVDISTEwKF4pRcsO5PLpZRhks5WX2XWG2X2WRcsO5PLvMRhks5WX2 .
Olhando para a frente também 🚶
Uma vez que android-sdk
está disponível como barril, pensei que faria mais sentido que flutter
também estivesse disponível como barril. Então fui em frente e fiz um tapinha caseiro para o barril de flutter
. Você pode conferir aqui .
Tentei primeiro criar uma fórmula simples e falhei miseravelmente, pois não tenho absolutamente nenhuma experiência no desenvolvimento de fórmulas caseiras.
Se desejar, pode esclarecer o que realmente gostaria que fosse feito?
por exemplo, o que flutter channel beta
fazer depois de executar brew install flutter
? Você gostaria de poder enviar PRs para alterações de vibração de sua instalação local de vibração? Você gostaria que isso instale o Android SDK ou Xcode para você? Você gostaria de poder fazer flutter run
nos diretórios de exemplos?
Eu sou um usuário homebrew pesado, mas nunca escrevi um plug-in homebrew. Dito isso, aqui está a opinião de um homem:
o que
flutter channel beta
fazer depois de executarbrew install flutter
?
Mude para o canal beta.
Você gostaria de poder enviar PRs para alterações de vibração de sua instalação local de vibração?
Não. Homebrew neste caso de uso é para usar pacotes, não necessariamente modificando esses pacotes.
Você gostaria que isso instale o Android SDK ou Xcode para você?
Deve instalar todas as dependências.
Você gostaria de poder executar flutter nos diretórios de exemplos?
sim. Depois de executar brew install flutter
, flutter
estará no caminho e você pode usá-lo como se o tivesse instalado da mesma maneira descrita no tutorial do Flutter.
OK. Eu atualizei minha fórmula homebrew para Flutter.
https://github.com/eclewlow/homebrew-formulas
Ele instala a versão com tag mais recente do Flutter no repositório do flutter (https://github.com/flutter/flutter) via Git.
(Atualmente v1.1.1, mas irá detectar automaticamente o mais recente na instalação)
Para atualizar, você provavelmente terá que reinstalar o flutter via brew
brew uninstall flutter
brew install flutter
Escrevi um pequeno tutorial para alcançar outras pessoas.
https://medium.com/@sadmansamee/installing -flutter-via-homebrew-a5d7009c95ba? fbclid = IwAR0DJZOdi-av2X1ofmbc1MaO7SZ7c30bowlkPK9EjIztPCrOhTv2tGbdx7E
Eu escrevi minha fórmula homebrew para Flutter.
https://github.com/miderwong/homebrew-flutter
Ele instala a versão estável mais recente (v1.0.0) do Flutter no repositório do flutter (https://github.com/flutter/flutter) via Git.
brew install flutter
brew upgrade flutter
Apenas um exemplo simples, existem muitas deficiências, bem-vindo para me corrigir.
https://github.com/flutter/flutter/issues/14050#issuecomment -449447441
Isso funciona muito, por favor, não se confunda como eu pela mensagem antes da instalação ou pela longa espera na instalação, isso é normal e a mensagem só se aplica se você estiver na China ou tiver problemas para executar flutter doctor
após a instalação.
Obrigado :)
Relacionado a # 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 vai precisar de um toque, por exemplo brew tap MiderWong/flutter
. Isso é o que https://github.com/flutter/flutter/issues/14050#issuecomment -449447441 não disse, mas quis dizer. Basta seguir https://github.com/miderwong/homebrew-flutter .
Eu escrevi minha fórmula homebrew para Flutter.
https://github.com/miderwong/homebrew-flutter
Ele instala a versão estável mais recente (v1.0.0) do Flutter no repositório do flutter (https://github.com/flutter/flutter) via Git.
brew install flutter brew upgrade flutter
Apenas um exemplo simples, existem muitas deficiências, bem-vindo para me corrigir.
O script foi atualizado. Atualize o repositório git com o seguinte comando:
brew untap MiderWong/flutter
brew tap MiderWong/flutter
E siga as instruções do README:
Flutter-homebrew-README
@MiderWong
obtendo
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 Fez um barril para instalação de vibração, que pode ser instalado executando
brew tap probablykasper/tap
brew cask install flutter
flutter upgrade
https://github.com/probablykasper/homebrew-tap/blob/master/Casks/flutter.rb
Ele simplesmente baixa o zip de instalação do macOS flutter e vincula o executável flutter
. Então você executaria flutter doctor
depois.
Então, em vez de eu ter que instalar a partir de um toque personalizado do usuário, seja do @SpectralKH ou do @MiderWong ou do @eclewlow , e então tenho que confiar e esperar que:
Minha sugestão é fazer o mesmo que o Dart fez quando o Dart tem uma torneira de cerveja chamada dart-lang/dart
e é referenciado nos documentos oficiais do Dart.
Isso alinha Flutter com Dart (considerando que eles são efetivamente projetos irmãos) e mantém as coisas consistentes e simples.
(Pensamento no chuveiro: Considerando que Flutter é um projeto irmão do Dart e Flutter requer o Dart, por que não juntá-lo como outras fórmulas na torneira dart-lang
?)
Acho que minhas perguntas são, como um desenvolvedor não cervejeiro e quem é novo nesta discussão:
@Harmelodic Preocupações muito justas. Eles poderiam fazer um barril de cerveja oficial no mínimo - o meu tem literalmente 10 linhas de código.
Também é importante notar que, das mais de 6.000 questões em aberto, esta é a quarta na lista ao classificar por 👍 reações. Agradeço os esforços da comunidade, mas prefiro usar algo que seja oficialmente suportado sempre que possível, e parece que não estou sozinho nisso. Por favor, faça disso uma prioridade 🙏
Qualquer atualização?
Se alguém estiver interessado em possuir isso, ficaríamos felizes em ajudá-lo a configurar a infraestrutura de construção do Flutter.
Se alguém estiver interessado em possuir isso, ficaríamos felizes em ajudá-lo a configurar a infraestrutura de construção do Flutter.
Alguém está trabalhando nisso?
Eu escrevi minha fórmula homebrew para Flutter.
https://github.com/miderwong/homebrew-flutter
Ele instala a versão estável mais recente (v1.0.0) do Flutter no repositório do flutter (https://github.com/flutter/flutter) via Git.
brew install flutter brew upgrade flutter
Apenas um exemplo simples, existem muitas deficiências, bem-vindo para me corrigir.
Funciona muito bem.
Mas também precisamos de um branch MASTER (não apenas dev / stable) para poder usar o Flutter para Web!
Esta parece uma vitória fácil para o projeto. Por favor, gaste um pouco de tempo e envie isso!
Isso significaria um monte de mudanças na maneira como fazemos nossas ferramentas. Já que em um mundo de cerveja, Flutter não estaria no controle da autoatualização. Ele também precisaria estar ciente do layout de Brew ou de como encontrar um local gravável para armazenamento em cache. Isso cairia na opinião de
@eseidelGoogle Que tal ter um barril oficial?
@probablykasper essa é a parte fácil. :) A parte difícil é ter certeza de que a ferramenta futter
sabe como se comportar corretamente quando instalada como parte de um processo / local de instalação normal do barril, etc.
A parte difícil é ter certeza de que a ferramenta
futter
sabe como se comportar corretamente quando instalada como parte de um processo / local de instalação normal do barril, etc.
Está correto. Ensinar a ferramenta flutter
que outra coisa é responsável pela instalação, atualização e ensiná-la a entender um arranjo mais diversificado de permissões de sistemas de arquivos é uma boa parte do trabalho.
Além disso, não é um bloqueador de disco rígido, mas também está um tanto em conflito com nosso desejo de ter uma forma de baixo atrito para as pessoas contribuírem com o Flutter, o que é mais complicado se os bits de repositório do Flutter não forem gerenciados pelo git.
@probablykasper essa é a parte fácil. :) A parte difícil é ter certeza de que a ferramenta
futter
sabe como se comportar corretamente quando instalada como parte de um processo / local de instalação normal do barril, etc.
Estou testando o Flutter no Homebrew Cask, parece funcionar bem para mim. Você deveria reconsiderar o uso do Cask em vez do Formula for Homebrew?
socheatsok78 / homebrew-flutter
A mudança para um canal diferente pode ser realizada usando flutter
CLI.
E o diretório de instalação é bastante simples para o Cask e então para o Fórmula.
@ socheatsok78 vai tentar. obrigado
brew cask install socheatsok78/flutter/flutter
x-MacBook-Pro:flutter apple$ which flutter
/usr/local/bin/flutter
Mas, parece que tem problemas no Mac devido à nova segurança em 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" "$@"
Mas, parece que tem problemas no Mac devido à nova segurança em 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" "$@"
Estou no Catalina, não tenho muita certeza disso. O único problema que eu estava tendo era idevice_id
que pode ser encontrado aqui # 42302
Mas, parece que tem problemas no Mac devido à nova segurança em 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" "$@"
Estou no Catalina, não tenho muita certeza disso. O único problema que eu estava tendo era
idevice_id
que pode ser encontrado aqui # 42302
vá para Preferências do Sistema, abra o menu de segurança, na seção geral você pode permitir o acesso ao Dart. Execute flutter upgrade
novamente. Pode falhar uma segunda vez, dizendo que algo no kernel está falhando. repita o mesmo procedimento e voila!
Instalar o Fluter em / usr / local / Cellar / flutter e criar softlinking em / usr / local / bin deve resolver o problema IMHO. Não posso verificar isso atualmente, pois não me atrevi a atualizar para o Catalina ainda.
Alguma atualização para esse problema?
Ainda esperando que tenhamos uma torneira de cerveja canônica e barril. A configuração do Catalina PATH é simplesmente irritante!
isso é provavelmente duas horas de trabalho e economizará toneladas de horas para muitas pessoas, então, por favor
Ansioso por isso.
Polegar para cima, ansioso por isso!
Mim
Olá pessoal, um rápido lembrete sobre nosso problema de políticas de higiene:
https://github.com/flutter/flutter/wiki/Issue-hygiene#do -not-add-me-too-or-same-comments-to-bugs
Dito isso, saiba que estamos cientes desse problema.
@zanderso Agradeço a moderação, mas acho que alguma comunicação sobre este pedido em particular é necessária neste momento. Há claramente um grande interesse nisso e um desejo de apoio oficial em vez de apoio da comunidade. Embora vários usuários tenham proposto soluções, muitos mais usuários expressaram o desejo de suporte oficial para isso. Infelizmente, a resposta geral foi de nenhuma ação.
Em nome de todos neste tópico, peço à equipe principal que faça um plano para resolver isso e comunique esse plano à base de usuários.
Olá pessoal, um rápido lembrete sobre nosso problema de políticas de higiene:
https://github.com/flutter/flutter/wiki/Issue-hygiene#do -not-add-me-too-or-same-comments-to-bugs
Dito isso, saiba que estamos cientes desse problema.
Isto é ridículo. Acabei de sair da página inicial do Flutter e estava pronto para tentar quando vi o processo arcaico de instalação. Vim aqui e vi este problema aberto por dois anos inteiros sem atualizações tangíveis.
Bem, então para Kotlin.
Vim aqui porque o site flutter.dev, como muitos outros sites do Google, está cheio de coisas que são filtráveis e não funcionam com o Adblocker. Portanto, não consigo fazer o download do flutter sdk sem desativar tudo.
apt-get / brew seria muito mais conveniente.
Além disso, como mentianed por @timmyjose
Olá pessoal, um rápido lembrete sobre nosso problema de políticas de higiene:
https://github.com/flutter/flutter/wiki/Issue-hygiene#do -not-add-me-too-or-same-comments-to-bugs
Dito isso, saiba que estamos cientes desse problema.Isto é ridículo. Acabei de sair da página inicial do Flutter e estava pronto para tentar quando vi o processo arcaico de instalação. Vim aqui e vi este problema aberto por dois anos inteiros sem atualizações tangíveis.
Bem, então para Kotlin.
Por que isso não é endereçado ...
O site do @CAoTx Flutter não tem anúncios e não tenho problemas para fazer download com bloqueadores de anúncios instalados. Talvez seus filtros de adblock personalizados sejam muito restritivos? O próprio site é de código aberto , se você quiser ver como ajustar seus filtros.
Outra alternativa é usar git clone
conforme descrito na parte inferior da página de downloads para obter o canal mestre. Você pode usar isso e, em seguida, usar flutter channel
para mudar para outro canal se não quiser usar o master.
Integrar um novo usuário do macOS para agitar o desenvolvimento e o processo de instalação é arcaico e, na melhor das hipóteses, confuso. brew install flutter
deve ser factível e suportado pela equipe principal como o método oficial de instalação para flutter.
Como esse problema foi rotulado como P6 , que é a prioridade mais baixa possível, acho que não será resolvido tão cedo. É muito engraçado, já que este é um dos assuntos mais comentados e ativos no repositório.
@timsneath existe alguma maneira de conseguirmos mais transparência sobre como essas solicitações da comunidade são priorizadas?
https://github.com/flutter/flutter/wiki/Triage
https://github.com/flutter/flutter/wiki/Issue-hygiene
falar sobre os processos.
Embora nossas equipes atualmente não tenham largura de banda para lidar com esse problema, isso não significa que outra pessoa não tenha. Isso seria um esforço médio / grande, mas deve ser realizado por um colaborador motivado.
Há um monte de perguntas que eu poderia imaginar que precisariam ser respondidas aqui:
Fico feliz em discutir sobre as prioridades (talvez em outro fórum), mas eu encorajo olhar para os outros bugs que são rotulados de prioridade mais alta do que este. O Flutter tem muitos usuários e, a partir deles, muitas solicitações (às vezes urgentes). Tentamos abordá-los na ordem de causar o maior impacto em relação às metas de nossos / usuários.
@eseidelGoogle Obrigado pelo esclarecimento e pelo esboço da estratégia, é muito apreciado e super capacitador!
Para responder à pergunta sobre atualização, acho que se o comando normal flutter update
simplesmente não pode estar disponível para instalações não git, então isso deve ser bom o suficiente. Existe uma maneira de fazer isso? Idealmente, não seria outra distribuição, apenas uma verificação if no código para ver se a localização do binário flutter tem uma pasta .git
. Isso é possível?
A fórmula também pode simplesmente baixar o repositório git e executar os comandos para um usuário. As fórmulas não precisam apenas instalar binários.
Como referência, é assim que o rustup faz:
rustup , o gerenciador de conjunto de ferramentas da linguagem de programação Rust, pode ser instalado executando um script de instalação (instalação autônoma) ou instalado a partir de um gerenciador de pacotes do sistema operacional. Quando quiser atualizar o rustup, você pode executar rustup self update
para instalação autônoma ou atualizar por meio do gerenciador de pacotes do sistema operacional se instalou o rustup por meio do gerenciador de pacotes do sistema operacional. Se você tentar executar rustup self update
quando o rustup for instalado por meio do gerenciador de pacotes do sistema operacional, será exibido um erro, dizendo por favor atualize-o a partir do gerenciador de pacotes do sistema operacional. Eu realmente gosto dessa implementação, porque quando você instala pela primeira vez algo por meio do gerenciador de pacotes do sistema operacional e o atualiza usando a funcionalidade embutida dele, pode ficar fora de controle do gerenciador de pacotes do sistema operacional e pode causar alguns erros desconhecidos no futuro.
Acho que a melhor maneira de flutter é adotar uma implementação semelhante à do rustup, mas este é um trabalho enorme (é necessário refatorar muitas coisas para permitir que o flutter possa ser gerenciado por um gerenciador de pacotes do sistema) e pode requerer a ajuda de membros da equipe principal do flutter , então eu apenas dou minhas sugestões aqui e não espero que isso possa ser feito em breve.
Sim, parece muuuuito mais complicado do que o alegado 10 liner que foi mencionado anteriormente neste tópico.
TIL há mais discussão sobre isso em: http://flutter.dev/go/sdk-per-platform-installers
Comentários muito úteis
Então, em vez de eu ter que instalar a partir de um toque personalizado do usuário, seja do @SpectralKH ou do @MiderWong ou do @eclewlow , e então tenho que confiar e esperar que:
Minha sugestão é fazer o mesmo que o Dart fez quando o Dart tem uma torneira de cerveja chamada
dart-lang/dart
e é referenciado nos documentos oficiais do Dart.Isso alinha Flutter com Dart (considerando que eles são efetivamente projetos irmãos) e mantém as coisas consistentes e simples.
(Pensamento no chuveiro: Considerando que Flutter é um projeto irmão do Dart e Flutter requer o Dart, por que não juntá-lo como outras fórmulas na torneira
dart-lang
?)Acho que minhas perguntas são, como um desenvolvedor não cervejeiro e quem é novo nesta discussão: