Flutter: Deje que flutter sea instalable a través de homebrew

Creado en 11 ene. 2018  ·  77Comentarios  ·  Fuente: flutter/flutter

No encontré ningún problema existente sobre esto. Apertura para seguimiento.

Deje que flutter sea brew install flutter capaz.

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

Comentario más útil

Entonces, en lugar de tener que instalar desde el toque personalizado de un usuario, ya sea @SpectralKH 's o @MiderWong ' s o @eclewlow 's, y luego tener que confiar y esperar que:

  1. El grifo de ese usuario se convertirá en el "oficial" que está bien respaldado y actualizado cuando sea necesario.
  2. Ese usuario no va a inyectar software malicioso en mi máquina.

Mi sugerencia es hacer lo mismo que lo que ha hecho Dart donde Dart tiene un grifo de preparación llamado dart-lang/dart y se hace referencia en los documentos oficiales de Dart.
Esto alinea a Flutter con Dart (considerando que son efectivamente proyectos hermanos) y mantiene las cosas consistentes y simples.
(Pensamiento de ducha: considerando que Flutter es un proyecto hermano de Dart y Flutter requiere Dart, ¿por qué no simplemente agruparlo como otra fórmula en el grifo dart-lang ?)

Supongo que mis preguntas son, como desarrollador no cervecero y quién es nuevo en esta discusión:

  1. ¿Está esto en progreso? y si es así, ¿cuál es la actualización? ¿Porque este ha sido un problema abierto desde enero de 2018?
  2. Si aún no se ha iniciado, ¿qué debemos hacer como comunidad para lograrlo?

Todos 77 comentarios

@gspencergoog te puede interesar

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

El proceso es bastante sencillo. Aunque tendríamos que asegurarnos de que se integre con nuestro https://github.com/flutter/flutter/wiki/Release-process , idealmente de forma automatizada.

¡Hola equipo de Flutter! Comencé a agregar una fórmula flutter a Homebrew en https://github.com/Homebrew/homebrew-core/pull/27395 , pero definitivamente podría usar más orientación para seguir la dirección en este comentario:

Aunque tendríamos que asegurarnos de que se integre con nuestro https://github.com/flutter/flutter/wiki/Release-process , idealmente de forma automatizada.

En este momento, la fórmula Homebrew simplemente descarga la versión beta actual, la descomprime y la copia en Flutter's Keg (por ejemplo, /usr/local/Cellar/flutter/0.3.1/ ).

¡Cualquier comentario será bienvenido!

@ jcollins-g wrt al shlock de https://github.com/Homebrew/homebrew-core/pull/27395 , tal vez podamos verificar si shlock devuelve no permitido / 1 y la identificación del proceso padre es brew, don't shlock. También podemos bloquear la escritura en partes de la caché para evitar la actualización automática cuando se instala brew.

Para el contexto en ese Homebrew PR, escribí sobre el problema shlock en los comentarios que comienzan aquí: https://github.com/Homebrew/homebrew-core/pull/27395/files#diff -b438c13e924f5f36b1ce4398a89436d2R36

En realidad, analizamos esta idea un poco más y creo que, en última instancia, nos gustaría que la fórmula oficial estuviera en un grifo casero (repositorio no central). De esta manera, podemos mantener la actualización de flutter y preparar objetivos de actualización herméticamente sincronizados.

Con suerte, podemos traer una versión de su fórmula al grifo en un futuro cercano y simplificar el proceso de instalación oficial.

¡Seguro! En ese caso, estaría feliz de cerrar el PR en homebrew-core si eso tiene sentido.

Si. ¡Gracias por hacer la contribución!

@xster fwiw eso no es necesario. Las fórmulas en Homebrew / homebew-core se actualizan pocas horas después de las versiones anteriores, ya que ejecutamos brew livecheck varias veces al día.

El comportamiento de @xster / @briankung shlock en brew me sorprende un poco. No es que haya mucho especial aquí:

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) {

Eso siempre debería ser válido para hacer en un sistema de archivos POSIX, bueno, a menos que haya configurado chflags en el directorio para evitar que se escriba:

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$

Si algo en homebrew o la forma en que lo está configurando lo hace, arreglar shlock no lo va a cortar porque luego fallará cuando se intenten inevitablemente otras operaciones de escritura en el caché.

Si agrega esta línea:

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

aquí lo soluciona, tienes un problema de chflags y probablemente deberías lidiar con eso de alguna manera. De alguna manera, es posible que bin / cache ya exista en el momento en que ejecuta flutter por primera vez (¿tal vez esté comenzando con una compilación binaria de flutter? Esos tienen caché prefabricado y, por lo tanto, pasarán bien el mkdir, pero no podrá para escribir en la caché).

[editado para corregir chflags]

@ jcollins-g Ah, mi unix-fu no está a la altura. No sabía nada de chflags , pero tiene sentido. Supongo que es académico en este punto, pero lo investigaré. ¡Gracias!

Agregué la línea de la siguiente manera:

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.

Y la prueba flutter --version aún falla con el error shlock .

Me perdí algo que dijiste antes:

¿tal vez estás comenzando con una compilación binaria de flutter? Esos tienen caché prefabricado, por lo que pasarán bien el mkdir, pero no podrá escribir en el caché

Creo que estoy usando una compilación binaria de flutter. Es el zip de https://flutter.io/setup-macos/#get -sdk.

Como tenía curiosidad, eliminé la carpeta cache para ver si el script flutter podía crear la carpeta en sí. No pudo: mkdir: /usr/local/Cellar/flutter/0.3.1-beta/bin/cache: Operation not permitted e insertar un echo $(whoami) en flutter muestra que el script se está ejecutando como mi usuario personal (verificación de cordura).

No estoy muy familiarizado con los permisos de Unix, pero parece que necesito sudo para editar cualquier archivo en /usr/local/Cellar/flutter/ , y revisar los permisos muestra que todos los archivos están en el 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 el directorio en mi directorio de inicio le asigna el grupo staff , y luego ejecutar ~/flutter/bin/flutter --version con el directorio cache eliminado comienza a descargar el idioma Dart. Sin embargo, cambiar el grupo en la carpeta flutter Homebrew, /usr/local/Cellar/flutter/ , no permite que el barril de cerveza cree la carpeta, y cuando creo la carpeta yo mismo, termino de nuevo en el shlock: open(/usr/local/Cellar/flutter/0.3.1-beta/bin/cache/shlock9849): Operation not permitted error.

Gracias por la respuesta detallada @briankung. Podría profundizar más en esto con usted, pero parece que el error fundamental es que no podemos garantizar la capacidad de escritura en bin / cache bajo la instalación de Flutter por parte de usuarios habituales y Flutter asume esto.

La mayoría de los paquetes de Unix separan los bits en caché que administran de la instalación binaria. El método de empaquetado de Flutter es un poco poco ortodoxo en el sentido de que los bits en caché incluyen la mayor parte de la instalación binaria. Homebrew, apt-get, prácticamente todos los administradores de paquetes y sistemas operativos tendrán alguna combinación de permisos, chroot durante la compilación, chattr / chflags, etc. para tratar de evitar que los usuarios habituales modifiquen los paquetes instalados.

Creo que lo correcto aquí podría ser establecer una bandera en un archivo que bloquee la caché de flutter como de solo lectura y hacer que las herramientas de actualización integradas de flutter la respeten. De esa manera, podemos distinguir entre el error de configuración del usuario y el usuario que usa un paquete instalado, y mostrar los errores correspondientes. O, más simplemente, podríamos verificar la capacidad de escritura de la caché y omitirla si no podemos escribir en la caché.

La sugerencia original de @xster podría ser suficiente si el resto de las herramientas ya lo admiten. que parece que podría ser el caso.

He investigado un poco más. Parece que, en la mayoría de los casos, no necesitamos escribir en FLUTTER_ROOT y sus subdirectorios.

Sin embargo, hay excepciones que pueden resultar en bloqueos:

El obstáculo con el que nos encontramos aquí es definitivamente uno.
La mejora de bloqueo en aleteo es otra.
El bloqueo de archivos dorados es otro.

Además, la preferencia por una caché de pub de raíz de flutter me parece sospechosa, a menos que pub esté codificado para manejar este caso, eso probablemente tampoco funcionará en los casos en que un desarrollador quiera usar un paquete diferente.

Dado que encontré todos estos pequeños problemas de inmediato, creo que para solucionarlo definitivamente, probablemente necesitemos agregar pruebas de integración en ejecución utilizando un FLUTTER_ROOT de solo lectura y rastrear cualquier pequeña excepción como esta. Eso también evitará que esto vuelva a aparecer, ya que es muy fácil como desarrollador de Flutter introducir accidentalmente algo como esto.

+1 en pruebas con root de solo lectura

¿Alguna actualización sobre esto?

Esto no es algo que planeemos hacer actualmente, pero si alguien quisiera trabajar en esto, apoyaríamos este trabajo. Supongo que implicaría la integración con nuestros scripts de integración continua para publicar en homebrew de alguna manera, o crear un script de arranque que sepa cómo integrarse con flutter y mantenerlo (y especialmente, escribir pruebas para asegurarnos de que sabemos cuándo se rompe, para que podamos arreglarlo). Si está interesado en trabajar en esto, no dude en comunicarse conmigo.

Cambié este error para que sea específicamente sobre homebrew, si está interesado en lo mismo para apt-get, presente un error por separado (aunque el comentario anterior se aplica igualmente a eso).

Hice un repositorio de tap para Mac OS: (https://github.com/eclewlow/homebrew-formulas)

Sin embargo, todo lo que hace es instalar Flutter.
brew install eclewlow/formulas/flutter

Aún tienes que descargar IOS y Android Dev Tools tú mismo.

Sin embargo, no pasó el brew audit , por lo que no puedo agregarlo a homebrew.
Este es el por qué:

  * 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:

Dado que se lanzó la versión 1.0 de flutter, espero poder ver la fórmula😄.

Dado que se lanzó la versión 1.0 de flutter, espero poder ver la fórmula😄.

deseando que lo haga también.

@eclewlow por favor actualice a 1.0

Lo siento, estoy en un crucero y la conexión a Internet por satélite es terrible.

Regresaré el día 10 y luego podré hacerlo.

Si alguien quiere hacerlo por sí mismo, puede crear un repositorio.

Cambié la fórmula para que realmente verifique Flutter de git, en lugar de descargar el paquete precompilado.

Pero no he descubierto cómo obtener la etiqueta de la última versión de un repositorio.

Así es como se vería la fórmula:

clase Flutter <Fórmula
desc "Cree hermosas aplicaciones nativas en un tiempo récord"
página de inicio " https://flutter.io/ "
versión "1.0.0"
url " https://github.com/flutter/flutter.git "
sha256 "6e3ba2da94fb150d2cb8e0596eeb92c86e5e437e91a5f39f211bd4b21d0b24f8"

botella: innecesario

def instalar
sistema "git", "buscar", "--tags"
# última etiqueta de pago, ¿algo como esto?
# git checkout $ (git describe --abbrev = 0 --tags)
# y use en lugar de esta siguiente línea:
sistema "git", "pago", "etiquetas / v1.0.0"
sistema "./bin/flutter"
allfiles = File.join (buildpath, " *", "{ ,. *}")
mv Dir.glob (todos los archivos), Dir.glob (prefijo),: force => true

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

fin

def post_install
rm File.join (HOMEBREW_PREFIX, "bin", "flutter.bat")
chmod_R "+ rwx", File.join (prefijo, "bin"),: verbose => true

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

fin

prueba hacer
sistema "falso"
fin
fin

El 6 de diciembre de 2018, a las 11:39 a.m., Alberto Xamin [email protected] escribió:

@eclewlow https://github.com/eclewlow , actualice a 1.0

-
Recibes esto porque te mencionaron.
Responda a este correo electrónico directamente, véalo en GitHub https://github.com/flutter/flutter/issues/14050#issuecomment-445002396 , o silencia el hilo https://github.com/notifications/unsubscribe-auth/AfVSYcUOrJtVDISTEwKF4pRcsO5PL2vRhks5 .

Mirando hacia adelante también 🚶

Dado que android-sdk está disponible como barril, pensé que tendría más sentido que flutter también estuviera disponible como barril. Así que seguí adelante e hice un toque casero para el barril flutter . Puedes comprobarlo aquí .

Primero intenté crear una fórmula simple y fracasé estrepitosamente, ya que no tengo absolutamente ninguna experiencia en el desarrollo de fórmulas caseras.

Si desea esto, ¿puede aclarar lo que realmente le gustaría que hiciera?

por ejemplo, ¿qué debería hacer flutter channel beta después de ejecutar brew install flutter ? ¿Le gustaría poder enviar PR para cambios en flutter desde su instalación local de flutter? ¿Le gustaría que esto instale el SDK de Android o Xcode por usted? ¿Le gustaría poder hacer flutter run en los directorios de ejemplos?

Soy un gran usuario de homebrew, pero nunca he escrito un complemento de homebrew. Dicho esto, aquí está la opinión de un hombre:

¿Qué debería hacer flutter channel beta después de ejecutar brew install flutter ?

Cambia al canal beta.

¿Le gustaría poder enviar PR para cambios en flutter desde su instalación local de flutter?

No. Homebrew en este caso de uso es para usar paquetes, no necesariamente para modificar esos paquetes.

¿Le gustaría que esto instale el SDK de Android o Xcode por usted?

Debería instalar todas las dependencias.

¿Le gustaría poder ejecutar flutter en los directorios de ejemplos?

Si. Una vez que ejecute brew install flutter , flutter estará en la ruta y podrá usarlo como si lo hubiera instalado de la misma manera que se describe en el tutorial de Flutter.

Está bien. Actualicé mi fórmula casera para Flutter.

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

Instala la versión etiquetada más reciente de Flutter en el repositorio de flutter (https://github.com/flutter/flutter) a través de Git.
(Actualmente v1.1.1, pero detectará automáticamente lo último en la instalación)

Para actualizar, probablemente tenga que reinstalar flutter a través de brew

brew uninstall flutter
brew install flutter

Escribí un pequeño tutorial para llegar a otras personas.
https://medium.com/@sadmansamee/installing -flutter-via-homebrew-a5d7009c95ba? fbclid = IwAR0DJZOdi-av2X1ofmbc1MaO7SZ7c30bowlkPK9EjIztPCrOhTv2tGbdx7E

Escribí mi fórmula casera para Flutter.

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

Instala la última versión estable (v1.0.0) de Flutter en el repositorio de flutter (https://github.com/flutter/flutter) a través de Git.

brew install flutter
brew upgrade flutter

Solo un ejemplo simple, hay muchas deficiencias, bienvenido a corregirme.

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

Esto funciona bien, no se confunda como yo con el mensaje antes de la instalación o la larga espera en la instalación, eso es normal y el mensaje solo se aplica si está en chine o tiene problemas para ejecutar flutter doctor después de la instalación.
Gracias :)

Relacionado con # 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 necesitará un toque, por ejemplo brew tap MiderWong/flutter . Esto es lo que https://github.com/flutter/flutter/issues/14050#issuecomment -449447441 no dijo, pero quiso decir. Simplemente siga https://github.com/miderwong/homebrew-flutter .

Escribí mi fórmula casera para Flutter.

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

Instala la última versión estable (v1.0.0) de Flutter en el repositorio de flutter (https://github.com/flutter/flutter) a través de Git.

brew install flutter
brew upgrade flutter

Solo un ejemplo simple, hay muchas deficiencias, bienvenido a corregirme.

La secuencia de comandos se ha actualizado. Actualice el repositorio de git con el siguiente comando:

brew untap MiderWong/flutter
brew tap MiderWong/flutter

Y siga las instrucciones del archivo README:
Flutter-homebrew-README

@MiderWong
obtener

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 Hizo un barril para instalar flutter, que se puede instalar ejecutando

brew tap probablykasper/tap
brew cask install flutter
flutter upgrade

https://github.com/probablykasper/homebrew-tap/blob/master/Casks/flutter.rb
Simplemente descarga el zip de instalación de macOS flutter y vincula el ejecutable flutter . Luego, ejecutarías flutter doctor después.

Entonces, en lugar de tener que instalar desde el toque personalizado de un usuario, ya sea @SpectralKH 's o @MiderWong ' s o @eclewlow 's, y luego tener que confiar y esperar que:

  1. El grifo de ese usuario se convertirá en el "oficial" que está bien respaldado y actualizado cuando sea necesario.
  2. Ese usuario no va a inyectar software malicioso en mi máquina.

Mi sugerencia es hacer lo mismo que lo que ha hecho Dart donde Dart tiene un grifo de preparación llamado dart-lang/dart y se hace referencia en los documentos oficiales de Dart.
Esto alinea a Flutter con Dart (considerando que son efectivamente proyectos hermanos) y mantiene las cosas consistentes y simples.
(Pensamiento de ducha: considerando que Flutter es un proyecto hermano de Dart y Flutter requiere Dart, ¿por qué no simplemente agruparlo como otra fórmula en el grifo dart-lang ?)

Supongo que mis preguntas son, como desarrollador no cervecero y quién es nuevo en esta discusión:

  1. ¿Está esto en progreso? y si es así, ¿cuál es la actualización? ¿Porque este ha sido un problema abierto desde enero de 2018?
  2. Si aún no se ha iniciado, ¿qué debemos hacer como comunidad para lograrlo?

@Harmelodic Muy justas preocupaciones. Podrían hacer un barril de cerveza oficial como mínimo: el mío es literalmente 10 líneas de código.

También vale la pena señalar que de los más de 6000 problemas abiertos, este es el cuarto en la lista cuando se clasifican por reacciones 👍. Aprecio los esfuerzos de la comunidad, pero prefiero usar algo que tenga soporte oficial siempre que sea posible, y parece que no estoy solo en eso. Por favor, haga de esto una prioridad 🙏

¿cualquier actualización?

Si alguien está interesado en poseer esto, esto es algo que nos complacerá ayudarlo a configurar en la infraestructura de compilación de Flutter.

Si alguien está interesado en poseer esto, esto es algo que nos complacerá ayudarlo a configurar en la infraestructura de compilación de Flutter.

¿Alguien está trabajando en esto?

Escribí mi fórmula casera para Flutter.

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

Instala la última versión estable (v1.0.0) de Flutter en el repositorio de flutter (https://github.com/flutter/flutter) a través de Git.

brew install flutter
brew upgrade flutter

Solo un ejemplo simple, hay muchas deficiencias, bienvenido a corregirme.

Funciona muy bien.
¡Pero también necesitamos una rama MASTER (no solo dev / stable) para poder usar Flutter para Web!

Esto parece una victoria muy fácil para el proyecto. ¡Por favor, dedique un poco de tiempo y envíe esto!

Esto significaría un montón de cambios en la forma en que hacemos nuestras herramientas. Dado que en un mundo de cerveza, Flutter no tendría el control de la actualización automática. También necesitaría conocer el diseño de Brew o cómo encontrar un lugar en el que se pueda escribir para el almacenamiento en caché. Esto caería bajo la perspectiva de @zanderso y probablemente sería un buen trabajo.

@eseidelGoogle ¿Qué tal tener un barril oficial?

@probablykasper esa es la parte fácil. :) La parte difícil es asegurarse de que la herramienta futter sepa cómo comportarse correctamente cuando se instala como parte de una ubicación / proceso de instalación normal del barril, etc.

La parte difícil es asegurarse de que la herramienta futter sepa cómo comportarse correctamente cuando se instala como parte de una ubicación / proceso de instalación normal de barrica, etc.

Eso es correcto. Enseñarle a la herramienta flutter que algo más es responsable de la instalación, actualización y enseñarle a comprender una disposición más diversa de permisos de sistemas de archivos es una buena parte del trabajo.

Además, no es un bloqueador duro, pero esto también entra en conflicto con nuestro deseo de tener una forma de baja fricción para que la gente contribuya a Flutter, que es más complicado si los bits de repositorio de Flutter no son administrados por git.

@probablykasper esa es la parte fácil. :) La parte difícil es asegurarse de que la herramienta futter sepa cómo comportarse correctamente cuando se instala como parte de una ubicación / proceso de instalación normal del barril, etc.

Estoy probando Flutter en Homebrew Cask, parece funcionar bien para mí. ¿Debería reconsiderar el uso de Cask en lugar de Formula for Homebrew?

socheatsok78 / homebrew-flutter

Resultado de la prueba

El cambio a un canal diferente se puede realizar usando flutter CLI.
Y el directorio de instalación es bastante sencillo para Cask y luego usa Formula.

@ socheatsok78 intentará esto. Gracias

brew cask install socheatsok78/flutter/flutter

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

Pero parece que tiene problemas en Mac debido a la nueva seguridad en 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" "$@"

Pero parece que tiene problemas en Mac debido a la nueva seguridad en 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" "$@"

Estoy en Catalina, no estoy muy seguro de eso. El único problema que tenía era idevice_id que se puede encontrar aquí # 42302

Pero parece que tiene problemas en Mac debido a la nueva seguridad en 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" "$@"

Estoy en Catalina, no estoy muy seguro de eso. El único problema que tenía era idevice_id que se puede encontrar aquí # 42302

vaya a Preferencias del Sistema, abra el menú de seguridad, en la sección general puede permitir el acceso a Dart. Ejecute flutter upgrade nuevamente. Podría fallar una segunda vez, diciendo que algo del kernel está fallando. Repite el mismo procedimiento de nuevo y ¡voilá!

Instalar Fluter en / usr / local / Cellar / flutter y vincular binarios en / usr / local / bin debería hacer el truco en mi humilde opinión. No puedo verificarlo actualmente porque no me atrevía a actualizar a Catalina todavía.

¿Alguna actualización sobre este tema?

Todavía con la esperanza de que tengamos un barril y un barril de cerveza canónicos. ¡La configuración de Catalina PATH es simplemente molesta!

esto es probablemente dos horas de trabajo y ahorrará toneladas de horas para muchas personas, así que por favor

Lo espero con ansias.

Pulgar hacia arriba, ¡Esperamos con ansias esto!

Yo

Hola a todos, un breve recordatorio sobre nuestras políticas de higiene de problemas:

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

Sin embargo, habiendo dicho eso, tenga en cuenta que estamos al tanto de este problema.

@zanderso Agradezco la moderación, pero creo que en este momento se justifica alguna comunicación sobre esta solicitud en particular. Claramente, hay un interés muy importante en esto y un deseo de apoyo oficial en lugar de apoyo de la comunidad. Si bien varios usuarios han propuesto soluciones, muchos más usuarios han expresado su deseo de contar con soporte oficial para esto. Desafortunadamente, la respuesta general ha sido de no acción.

En nombre de todos en este hilo, le pido al equipo central que haga un plan para abordar esto y comunicar ese plan a la base de usuarios.

Hola a todos, un breve recordatorio sobre nuestras políticas de higiene de problemas:

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

Sin embargo, habiendo dicho eso, tenga en cuenta que estamos al tanto de este problema.

Esto es ridículo. Acabo de llegar de la página de inicio de Flutter y estaba listo para intentarlo cuando vi el arcaico proceso de instalación. Vine aquí y vi este problema abierto durante dos años completos sin actualizaciones tangibles.

Bueno, entonces en Kotlin.

Vine aquí porque el sitio flutter.dev, como muchos otros sitios de Google, está lleno de cosas que se pueden filtrar y no funcionan con Adblocker. Entonces no puedo descargar flutter sdk sin deshabilitar todo.
apt-get / brew sería mucho más conveniente.

Además, como lo mencionó @timmyjose

Hola a todos, un breve recordatorio sobre nuestras políticas de higiene de problemas:
https://github.com/flutter/flutter/wiki/Issue-hygiene#do -not-add-me-too-or-same-comments-to-bugs
Sin embargo, habiendo dicho eso, tenga en cuenta que estamos al tanto de este problema.

Esto es ridículo. Acabo de llegar de la página de inicio de Flutter y estaba listo para intentarlo cuando vi el arcaico proceso de instalación. Vine aquí y vi este problema abierto durante dos años completos sin actualizaciones tangibles.

Bueno, entonces en Kotlin.

¿Por qué no se aborda eso ...

El sitio de @CAoTx Flutter no tiene anuncios y no tengo problemas para descargar con los bloqueadores de anuncios instalados. ¿Quizás sus filtros de bloques de anuncios personalizados son demasiado restrictivos? El sitio en sí es de código abierto , si desea ver cómo ajustar sus filtros.

Otra alternativa es usar git clone como se describe en la parte inferior de la página de descargas para obtener el canal maestro. Puedes usar eso, y luego usar flutter channel para cambiar a otro canal si no quieres usar master.

Incorporar un nuevo usuario de macOS para acelerar el desarrollo y el proceso de instalación es arcaico y, en el mejor de los casos, confuso. brew install flutter debería ser factible y respaldado por el equipo central como método de instalación oficial para flutter.

Dado que este problema se ha etiquetado con P6 , que es la prioridad más baja posible, supongo que no se resolverá pronto. Es bastante divertido, ya que este es uno de los problemas más comentados y activos en el repositorio.

@timsneath, ¿hay alguna forma de que podamos obtener más transparencia sobre cómo se priorizan estas solicitudes de la comunidad?

https://github.com/flutter/flutter/wiki/Triage
https://github.com/flutter/flutter/wiki/Issue-hygiene
hablar sobre los procesos.

Aunque nuestros equipos actualmente no tienen ancho de banda para abordar este problema, eso no significa que alguien más no pueda hacerlo. Este sería un esfuerzo mediano / grande, pero debería ser posible para un colaborador motivado.

Hay un montón de preguntas que imagino que necesitan respuesta aquí:

  • Enseñar a flutter_tools (y otros scripts) a no escribir en el directorio de instalación de sdk sino a usar otros directorios de caché (esto puede ser útil para la higiene del código independientemente).
  • Enseñar a fluttter_tools que está bien tener una instalación que no se puede actualizar (que no se puede escribir) y que de alguna manera señalar a los usuarios a diferentes métodos de actualización.
  • ¿El método de instalación basado en git de Flutter es compatible con estas herramientas? Ya ofrecemos tarballs / zips para la descarga inicial, pero actualmente asumimos que los usuarios instalan flutter / flutter como un repositorio de git. Si no es compatible, puede haber algún trabajo de proceso no trivial en el lado de la infraestructura para respaldar la producción / distribución / prueba de distribuciones no git de flutter.

Feliz de discutir sobre prioridades (tal vez en otro foro), pero animo a mirar a través de qué otros errores están etiquetados como de mayor prioridad que este. Flutter tiene muchos usuarios y muchas solicitudes (a veces urgentes). Intentamos abordarlos en el orden de mayor impacto hacia nuestros objetivos / usuarios.

@eseidelGoogle ¡ Gracias por la aclaración y el bosquejo de la estrategia, es muy apreciado y superpoderoso!

Para responder a la pregunta sobre la actualización, creo que si el comando regular flutter update no puede estar disponible para instalaciones que no sean de git, entonces eso debería ser lo suficientemente bueno. ¿Hay una manera de hacerlo? Idealmente, no sería otra distribución, solo una verificación en el código para ver si la ubicación del binario flutter tiene una carpeta .git . es posible?

La fórmula también podría simplemente descargar el repositorio de git y ejecutar los comandos para un usuario. Las fórmulas no solo tienen que instalar binarios.

Como referencia, así es como lo hace rustup:

rustup , el administrador de la cadena de herramientas del lenguaje de programación Rust, se puede instalar ejecutando un script de instalación (instalación independiente) o desde un administrador de paquetes del sistema operativo. Cuando desee actualizar rustup, puede ejecutar rustup self update para una instalación independiente, o actualizar a través del administrador de paquetes de su sistema operativo si instaló rustup a través del administrador de paquetes del sistema operativo. Si intenta ejecutar rustup self update cuando rustup está instalado a través del administrador de paquetes del sistema operativo, le dará un error, por favor actualícelo desde el administrador de paquetes del sistema operativo. Realmente me gusta esta implementación, porque cuando instaló algo por primera vez a través de su administrador de paquetes del sistema operativo y lo actualizó utilizando la funcionalidad incorporada, puede quedar fuera de control del administrador de paquetes del sistema operativo y puede causar algunos errores desconocidos en el futuro.

Creo que la mejor manera de flutter es adoptar una implementación similar a la que hace rustup, pero este es un trabajo enorme (es necesario refactorizar muchas cosas para permitir que flutter pueda ser administrado por un administrador de paquetes del sistema) y puede requerir la ayuda de los miembros del equipo central de flutter. , así que solo doy mis sugerencias aquí y no espero que esto se pueda hacer pronto.

Sí, suena muuuucho más complicado que el supuesto 10 delineador al que se hizo referencia anteriormente en este hilo.

HASTA que haya más discusión sobre esto: http://flutter.dev/go/sdk-per-platform-installers

¿Fue útil esta página
0 / 5 - 0 calificaciones