Flutter: Biarkan flutter dapat diinstal melalui homebrew

Dibuat pada 11 Jan 2018  ·  77Komentar  ·  Sumber: flutter/flutter

Tidak menemukan masalah yang ada tentang ini. Pembukaan untuk pelacakan.

Biarkan flutter menjadi brew install flutter mampu.

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

Komentar yang paling membantu

Jadi, alih-alih saya harus menginstal dari ketukan khusus pengguna, baik itu @SpectralKH 's atau @MiderWong 's atau @eclewlow 's, dan kemudian harus percaya & berharap bahwa:

  1. Ketukan pengguna itu akan menjadi "resmi" yang didukung dengan baik dan diperbarui bila perlu.
  2. Pengguna itu tidak akan menyuntikkan perangkat lunak berbahaya ke mesin saya.

Saran saya adalah melakukan hal yang sama seperti yang dilakukan Dart di mana Dart memiliki brew tap bernama dart-lang/dart dan dirujuk dalam dokumen resmi Dart.
Ini menyelaraskan Flutter dengan Dart (mengingat mereka adalah proyek saudara yang efektif) dan menjaga semuanya tetap konsisten dan sederhana.
(Pemikiran mandi: Mengingat Flutter adalah proyek saudara Dart dan Flutter membutuhkan Dart, mengapa tidak menggabungkannya sebagai formula lain di ketuk dart-lang ?)

Saya kira pertanyaan saya adalah, sebagai pengembang non-brew dan siapa yang baru dalam diskusi ini:

  1. Apakah ini sedang berlangsung? dan kalau ada apa updatenya? Karena ini sudah open issue sejak Jan 2018?
  2. Jika belum dimulai, apa yang perlu kita lakukan sebagai komunitas untuk menyelesaikannya?

Semua 77 komentar

@gspencergoog Anda mungkin tertarik

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

Prosesnya cukup lurus ke depan. Meskipun kami harus memastikannya terintegrasi dengan https://github.com/flutter/flutter/wiki/Release-process kami, idealnya dengan cara otomatis.

Halo tim Flutter! Saya mulai menambahkan rumus flutter ke Homebrew di https://github.com/Homebrew/homebrew-core/pull/27395 , tetapi saya pasti dapat menggunakan lebih banyak panduan untuk mengikuti arahan dalam komentar ini:

Meskipun kami harus memastikannya terintegrasi dengan https://github.com/flutter/flutter/wiki/Release-process kami, idealnya dengan cara otomatis.

Saat ini formula Homebrew hanya mengunduh rilis beta saat ini, membuka ritsletingnya, dan menyalinnya ke Flutter's Keg (mis. /usr/local/Cellar/flutter/0.3.1/ ).

Umpan balik akan diterima!

@jcollins-g wrt ke shlock dari https://github.com/Homebrew/homebrew-core/pull/27395 , mungkin kita dapat memeriksa apakah shlock kembali tidak diizinkan / 1 dan id proses induk dibuat, jangan shlock. Kami juga dapat mengunci penulisan ke bagian cache untuk mencegah pembaruan otomatis saat brew diinstal.

Untuk konteks dalam PR Homebrew itu, saya menulis tentang masalah shlock di komentar mulai di sini: https://github.com/Homebrew/homebrew-core/pull/27395/files#diff -b438c13e924f5f36b1ce4398a89436d2R36

Sebenarnya, kami membahas ide ini sedikit lebih banyak dan saya pikir pada akhirnya, kami ingin formula resmi berada di tap homebrew (repositori non-inti). Dengan cara ini, kita dapat menjaga upgrade flutter dan brew upgrade target tersinkronisasi secara hermetis.

Semoga kami dapat menghadirkan versi formula Anda ke dalam keran dalam waktu dekat dan menyederhanakan proses pemasangan resmi.

Tentu! Dalam hal ini, saya akan dengan senang hati menutup PR pada homebrew-core jika itu masuk akal?

Ya. Terima kasih telah memberikan kontribusi!

@xster fwiw itu tidak perlu. Rumus di Homebrew/homebew-core ditingkatkan dalam beberapa jam setelah rilis upstream karena kami menjalankan brew livecheck beberapa kali per hari.

@xster / @briankung shlock's perilaku dalam minuman sedikit mengejutkan bagi saya. Ini tidak seperti banyak hal spesial yang terjadi di sini:

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

Itu harus selalu valid untuk dilakukan pada sistem file POSIX -- yah, kecuali jika Anda telah menyetel chflags pada direktori untuk mencegahnya ditulis:

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$

Jika sesuatu di homebrew atau cara Anda mengaturnya melakukan itu, memperbaiki shlock tidak akan memotongnya karena Anda kemudian akan gagal ketika operasi penulisan lainnya pasti dicoba di cache.

Jika menambahkan baris ini:

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

di sini memperbaikinya, Anda punya masalah chflags dan mungkin harus mengatasinya. Entah bagaimana, bin/cache mungkin sudah ada pada saat Anda pertama kali menjalankan flutter (mungkin Anda memulai dengan build biner dari flutter? Mereka memiliki cache-premade sehingga mereka akan melewati mkdir dengan baik, tetapi Anda tidak akan bisa untuk menulis ke cache).

[diedit untuk memperbaiki chflags]

@jcollins-g Ah, unix-fu saya tidak siap - saya tidak tahu tentang chflags , tapi itu masuk akal. Saya kira itu akademis pada saat ini, tapi saya akan melihat ke dalamnya. Terima kasih!

Saya menambahkan baris sebagai berikut:

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.

Dan pengujian flutter --version masih gagal dengan kesalahan shlock .

Saya melewatkan sesuatu yang Anda katakan sebelumnya:

mungkin Anda mulai dengan build biner flutter? Itu memiliki cache-premade sehingga mereka akan melewati mkdir dengan baik, tetapi Anda tidak akan dapat menulis ke cache

Saya pikir saya menggunakan build biner dari flutter. Ini zip dari https://flutter.io/setup-macos/#get -sdk.

Karena penasaran, saya menghapus folder cache untuk melihat apakah skrip flutter dapat membuat folder itu sendiri. Itu tidak bisa: mkdir: /usr/local/Cellar/flutter/0.3.1-beta/bin/cache: Operation not permitted dan memasukkan echo $(whoami) ke flutter menunjukkan bahwa skrip berjalan sebagai pengguna pribadi saya (pemeriksaan kewarasan).

Saya tidak terlalu akrab dengan izin Unix, tetapi sepertinya saya perlu sudo untuk mengedit file apa pun di /usr/local/Cellar/flutter/ , dan meninjau izin menunjukkan bahwa semua file ada di admin grup

$ 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

Menyalin direktori ke direktori home saya memberinya grup staff , dan kemudian menjalankan ~/flutter/bin/flutter --version dengan direktori cache dihapus mulai mengunduh bahasa Dart. Namun, mengubah kelompok di Homebrew ini flutter folder, /usr/local/Cellar/flutter/ , tidak memungkinkan tong minuman untuk membuat folder, dan ketika saya membuat folder sendiri, saya akhirnya kembali tepat pada shlock: open(/usr/local/Cellar/flutter/0.3.1-beta/bin/cache/shlock9849): Operation not permitted kesalahan.

Terima kasih atas tanggapan detailnya @briankung. Saya bisa menyelam lebih jauh ke dalam ini dengan Anda, tetapi sepertinya bug mendasar adalah bahwa kami tidak dapat menjamin kemampuan menulis ke dalam bin/cache di bawah instalasi flutter oleh pengguna biasa dan Flutter mengasumsikan ini.

Kebanyakan paket Unix memisahkan bit cache yang mereka kelola dari instalasi biner. Metode pengemasan Flutter agak tidak lazim karena bit yang di-cache mencakup sebagian besar instalasi biner. Homebrew, apt-get, hampir semua manajer paket dan sistem operasi akan memiliki beberapa kombinasi izin, chroot selama pembuatan, chattr/chflags, dll untuk mencoba mencegah paket yang diinstal agar tidak dimodifikasi oleh pengguna biasa.

Saya pikir hal yang benar untuk dilakukan di sini mungkin memiliki flag yang diatur dalam file yang mengunci cache flutter sebagai hanya-baca, dan membuat alat pembaruan bawaan flutter menghormatinya. Dengan begitu kita dapat membedakan antara kesalahan konfigurasi pengguna dan pengguna yang menggunakan paket yang diinstal, dan menampilkan kesalahan yang sesuai. Atau, lebih sederhana, kita bisa memeriksa kemampuan menulis cache dan melewatkannya jika kita tidak bisa menulis ke cache.

Saran asli

Saya telah melakukan sedikit penggalian lagi. Sepertinya kita _kebanyakan_ tidak perlu menulis ke FLUTTER_ROOT dan subdirektorinya.

Namun, ada pengecualian yang tampaknya dapat menyebabkan error:

Shlock yang kita hadapi di sini pasti satu.
Penguncian dalam peningkatan flutter adalah hal lain.
Penguncian untuk file emas adalah hal lain.

Selain itu, preferensi untuk cache pub root flutter tampak mencurigakan bagi saya -- kecuali pub dikodekan untuk menangani kasus ini yang mungkin tidak akan berfungsi untuk kasus di mana pengembang juga ingin menggunakan paket yang berbeda.

Mengingat bahwa saya segera menemukan banyak masalah kecil ini, saya pikir untuk memperbaikinya selamanya, kita mungkin perlu menambahkan pengujian integrasi yang berjalan menggunakan FLUTTER_ROOT hanya-baca dan melacak kesalahan kecil seperti ini. Itu juga akan mencegah ini muncul lagi karena sangat mudah bagi pengembang Flutter untuk secara tidak sengaja memperkenalkan sesuatu seperti ini.

+1 pada pengujian dengan root hanya-baca

Ada pembaruan tentang ini?

Saat ini ini bukan sesuatu yang kami rencanakan untuk dilakukan, tetapi jika seseorang ingin mengerjakan ini, kami akan mendukung pekerjaan ini. Saya kira itu akan melibatkan integrasi dengan skrip integrasi berkelanjutan kami untuk diterbitkan ke homebrew dalam beberapa cara, atau membuat skrip bootstrap yang tahu bagaimana mengintegrasikan dengan flutter, dan mempertahankannya (dan terutama, menulis tes untuk memastikan bahwa kami tahu kapan itu rusak, sehingga kami dapat memperbaikinya). Jika Anda tertarik untuk mengerjakan ini, jangan ragu untuk menghubungi saya.

Saya telah mengubah bug ini menjadi khusus tentang homebrew, jika Anda tertarik pada hal yang sama untuk apt-get, silakan ajukan bug terpisah (meskipun komentar di atas berlaku sama untuk itu).

Saya membuat repo ketuk untuk Mac OS: (https://github.com/eclewlow/homebrew-formulas)

Yang dilakukannya hanyalah menginstal flutter.
brew install eclewlow/formulas/flutter

Anda tetap harus mendownload IOS & Android Dev Tools sendiri.

Itu tidak lulus brew audit , jadi saya tidak bisa menambahkannya ke homebrew.
Inilah alasannya:

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

Sejak versi 1.0 dari flutter telah dirilis, saya harap saya dapat melihat formulanya😄.

Sejak versi 1.0 dari flutter telah dirilis, saya harap saya dapat melihat formulanya😄.

menantikannya juga.

@eclewlow tolong perbarui ke 1.0

Maaf, saya sedang dalam pelayaran dan internet satelit buruk.

Saya akan kembali pada tanggal 10, dan kemudian saya bisa melakukannya.

Jika seseorang ingin melakukannya sendiri, mereka bisa membuat repositori.

Saya mengubah rumus sehingga benar-benar memeriksa Flutter dari git, daripada mengunduh paket yang telah dikompilasi.

Tapi saya belum menemukan cara untuk mendapatkan tag versi terbaru dari repositori.

Berikut adalah apa rumusnya akan terlihat seperti:

kelas Flutter < Rumus
desc "Bangun aplikasi asli yang indah dalam waktu singkat"
beranda " https://flutter.io/ "
versi "1.0.0"
url " https://github.com/flutter/flutter.git "
sha256 "6e3ba2da94fb150d2cb8e0596eeb92c86e5e437e91a5f39f211bd4b21d0b24f8"

botol: tidak dibutuhkan

def install
sistem "git", "ambil", "--tag"
# checkout tag terbaru, seperti ini?
# git checkout $(git menjelaskan --abbrev=0 --tags)
# dan gunakan sebagai ganti baris berikut ini:
sistem "git", "checkout", "tags/v1.0.0"
sistem "./bin/flutter"
allfiles = File.join(buildpath, " *", "{ ,.*}")
mv Dir.glob(semua file), Dir.glob(awalan), :force => true

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

akhir

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

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

akhir

tes lakukan
sistem "salah"
akhir
akhir

Pada 6 Desember 2018, pukul 11:39, Alberto Xamin [email protected] menulis:

@eclewlow https://github.com/eclewlow harap perbarui ke 1.0


Anda menerima ini karena Anda disebutkan.
Balas email ini secara langsung, lihat di GitHub https://github.com/flutter/flutter/issues/14050#issuecomment-445002396 , atau matikan utasnya https://github.com/notifications/unsubscribe-auth/AfVSYcUOrJtVDISTEwKF4pRcsO5PLvRhks5uM4KRhks5u

Nantikan juga

Karena android-sdk tersedia sebagai tong, saya pikir akan lebih masuk akal jika flutter juga tersedia sebagai tong. Jadi saya melanjutkan dan melakukan ketukan buatan sendiri untuk tong flutter . Anda dapat memeriksanya di sini .

Saya pertama kali mencoba membuat formula sederhana dan gagal total karena saya sama sekali tidak memiliki pengalaman dalam mengembangkan formula homebrew.

Jika Anda menginginkan ini, dapatkah Anda menjelaskan apa yang sebenarnya Anda inginkan?

misalnya apa yang harus dilakukan flutter channel beta setelah Anda menjalankan brew install flutter ? Apakah Anda ingin dapat mengirimkan PR untuk perubahan flutter dari instalasi flutter lokal Anda? Apakah Anda ingin ini menginstal Android SDK atau Xcode untuk Anda? Apakah Anda ingin dapat melakukan flutter run di direktori contoh?

Saya adalah pengguna homebrew yang berat, tetapi tidak pernah menulis plugin homebrew. Yang mengatakan, inilah pendapat satu orang:

apa yang harus dilakukan flutter channel beta setelah Anda menjalankan brew install flutter ?

Beralih ke saluran beta.

Apakah Anda ingin dapat mengirimkan PR untuk perubahan flutter dari instalasi flutter lokal Anda?

Tidak. Homebrew dalam kasus penggunaan ini adalah untuk menggunakan paket, tidak harus memodifikasi paket tersebut.

Apakah Anda ingin ini menginstal Android SDK atau Xcode untuk Anda?

Itu harus menginstal semua dependensi.

Apakah Anda ingin dapat melakukan flutter run di direktori contoh?

Ya. Setelah Anda menjalankan brew install flutter , flutter akan berada di jalur dan Anda dapat menggunakannya seolah-olah Anda menginstalnya dengan cara yang sama seperti yang dijelaskan dalam tutorial Flutter.

Oke. Saya memperbarui formula homebrew saya untuk Flutter.

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

Ini menginstal versi terbaru dari Flutter yang diberi tag di repositori flutter (https://github.com/flutter/flutter) melalui Git.
(Saat ini v1.1.1, tetapi akan otomatis mendeteksi yang terbaru saat instalasi)

Untuk meningkatkan, Anda mungkin harus menginstal ulang flutter melalui minuman

brew uninstall flutter
brew install flutter

Saya menulis tutorial yang sangat kecil untuk menjangkau orang lain.
https://medium.com/@sadmansamee/installing -flutter-via-homebrew-a5d7009c95ba?fbclid=IwAR0DJZOdi-av2X1ofmbc1MaO7SZ7c30bowlkPK9EjIztPCrOhTv2tGbdx7E

Saya menulis formula homebrew saya untuk Flutter.

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

Ini menginstal Flutter versi stabil terbaru (v1.0.0) di repositori flutter (https://github.com/flutter/flutter) melalui Git.

brew install flutter
brew upgrade flutter

Sekedar contoh sederhana saja, masih banyak kekurangannya, selamat mengoreksi saya.

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

Ini berfungsi dengan baik, tolong jangan bingung seperti saya untuk pesan sebelum instalasi atau menunggu lama saat menginstal, Itu normal dan pesan hanya berlaku jika Anda berada di Cina atau Anda memiliki masalah untuk menjalankan flutter doctor setelah menginstal.
Terima kasih :)

Terkait dengan #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 akan membutuhkan ketukan, misalnya brew tap MiderWong/flutter . Inilah yang tidak dikatakan https://github.com/flutter/flutter/issues/14050#issuecomment -449447441, tetapi maksudnya. Cukup ikuti https://github.com/miderwong/homebrew-flutter .

Saya menulis formula homebrew saya untuk Flutter.

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

Ini menginstal Flutter versi stabil terbaru (v1.0.0) di repositori flutter (https://github.com/flutter/flutter) melalui Git.

brew install flutter
brew upgrade flutter

Sekedar contoh sederhana saja, masih banyak kekurangannya, selamat mengoreksi saya.

Script telah diperbarui. Harap perbarui repositori git dengan perintah berikut:

brew untap MiderWong/flutter
brew tap MiderWong/flutter

Dan ikuti instruksi di README:
Flutter-homebrew-README

@MiderWong
mendapatkan

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 Membuat tong untuk memasang flutter, yang dapat diinstal dengan menjalankan

brew tap probablykasper/tap
brew cask install flutter
flutter upgrade

https://github.com/probablykasper/homebrew-tap/blob/master/Casks/flutter.rb
Ini hanya mengunduh zip instalasi flutter macOS dan menautkan flutter dapat dieksekusi. Kemudian Anda akan menjalankan flutter doctor sesudahnya.

Jadi, alih-alih saya harus menginstal dari ketukan khusus pengguna, baik itu @SpectralKH 's atau @MiderWong 's atau @eclewlow 's, dan kemudian harus percaya & berharap bahwa:

  1. Ketukan pengguna itu akan menjadi "resmi" yang didukung dengan baik dan diperbarui bila perlu.
  2. Pengguna itu tidak akan menyuntikkan perangkat lunak berbahaya ke mesin saya.

Saran saya adalah melakukan hal yang sama seperti yang dilakukan Dart di mana Dart memiliki brew tap bernama dart-lang/dart dan dirujuk dalam dokumen resmi Dart.
Ini menyelaraskan Flutter dengan Dart (mengingat mereka adalah proyek saudara yang efektif) dan menjaga semuanya tetap konsisten dan sederhana.
(Pemikiran mandi: Mengingat Flutter adalah proyek saudara Dart dan Flutter membutuhkan Dart, mengapa tidak menggabungkannya sebagai formula lain di ketuk dart-lang ?)

Saya kira pertanyaan saya adalah, sebagai pengembang non-brew dan siapa yang baru dalam diskusi ini:

  1. Apakah ini sedang berlangsung? dan kalau ada apa updatenya? Karena ini sudah open issue sejak Jan 2018?
  2. Jika belum dimulai, apa yang perlu kita lakukan sebagai komunitas untuk menyelesaikannya?

@Harmelodic Kekhawatiran yang sangat wajar. Mereka bisa membuat tong minuman resmi setidaknya - Milik saya secara harfiah 10 baris kode.

Perlu juga dicatat bahwa dari 6000+ terbitan terbuka, ini berada di urutan keempat dalam daftar saat menyortir berdasarkan reaksi 👍. Saya menghargai upaya komunitas, tetapi saya lebih suka menggunakan sesuatu yang secara resmi didukung jika memungkinkan, dan tampaknya saya tidak sendirian dalam hal itu. Tolong jadikan ini prioritas

perubahan apapun?

Jika ada yang tertarik untuk memilikinya, kami akan dengan senang hati membantu Anda menyiapkannya di infrastruktur build Flutter.

Jika ada yang tertarik untuk memilikinya, kami akan dengan senang hati membantu Anda menyiapkannya di infrastruktur build Flutter.

Ada yang sedang mengerjakan ini?

Saya menulis formula homebrew saya untuk Flutter.

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

Ini menginstal Flutter versi stabil terbaru (v1.0.0) di repositori flutter (https://github.com/flutter/flutter) melalui Git.

brew install flutter
brew upgrade flutter

Sekedar contoh sederhana saja, masih banyak kekurangannya, selamat mengoreksi saya.

Ini bekerja dengan baik.
Tetapi kami juga membutuhkan cabang MASTER (tidak hanya dev/stable) untuk dapat menggunakan Flutter untuk Web!

Ini sepertinya kemenangan yang mudah untuk proyek ini. Silakan luangkan sedikit waktu dan kirimkan ini!

Ini berarti banyak perubahan pada cara kami melakukan perkakas kami. Karena di dunia pembuatan bir, Flutter tidak akan mengendalikan pembaruan diri. Itu juga perlu mengetahui tata letak Brew, atau bagaimana menemukan tempat yang dapat ditulis untuk caching. Ini akan termasuk dalam pandangan @zanderso dan kemungkinan akan menjadi pekerjaan yang bagus.

@eseidelGoogle Bagaimana dengan memiliki tong resmi?

@probablykasper itu bagian yang mudah. :) Bagian yang sulit adalah memastikan bahwa alat futter mengetahui bagaimana berperilaku dengan benar ketika diinstal sebagai bagian dari lokasi/proses instalasi tong normal, dll.

Bagian yang sulit adalah memastikan bahwa alat futter mengetahui bagaimana berperilaku dengan benar ketika diinstal sebagai bagian dari lokasi/proses instalasi tong normal, dll.

Itu benar. Mengajarkan alat flutter bahwa sesuatu yang lain bertanggung jawab untuk menginstal, memperbarui, dan mengajarkannya untuk memahami pengaturan yang lebih beragam dari izin sistem file adalah pekerjaan yang cukup bagus.

Selain itu, ini bukan pemblokir yang sulit, tetapi ini juga agak bertentangan dengan keinginan kami untuk memiliki cara gesekan rendah bagi orang-orang untuk berkontribusi pada Flutter, yang lebih sulit jika bit repo Flutter tidak dikelola oleh git.

@probablykasper itu bagian yang mudah. :) Bagian yang sulit adalah memastikan bahwa alat futter mengetahui bagaimana berperilaku dengan benar ketika diinstal sebagai bagian dari lokasi/proses instalasi tong normal, dll.

Saya sedang menguji Flutter di Homebrew Cask, sepertinya berfungsi dengan baik untuk saya. Haruskah Anda mempertimbangkan kembali menggunakan Tong daripada Formula untuk Homebrew?

socheatsok78/homebrew-flutter

Hasil tes

Beralih ke saluran yang berbeda dapat dilakukan dengan menggunakan flutter CLI.
Dan direktori instalasi cukup mudah untuk Cask kemudian menggunakan Formula.

@ socheatsok78 akan mencobanya. Terima kasih

brew cask install socheatsok78/flutter/flutter

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

Tapi, sepertinya ada masalah di Mac karena keamanan baru di 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" "$@"

Tapi, sepertinya ada masalah di Mac karena keamanan baru di 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" "$@"

Saya di Catalina, saya tidak yakin tentang itu. Satu-satunya masalah yang saya alami adalah idevice_id yang dapat ditemukan di sini #42302

Tapi, sepertinya ada masalah di Mac karena keamanan baru di 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" "$@"

Saya di Catalina, saya tidak yakin tentang itu. Satu-satunya masalah yang saya alami adalah idevice_id yang dapat ditemukan di sini #42302

pergi ke System Preferences, buka menu keamanan, di bawah bagian umum Anda dapat mengizinkan akses ke Dart. Jalankan flutter upgrade lagi. Mungkin gagal untuk kedua kalinya, mengatakan bahwa ada kernel yang gagal. ulangi prosedur yang sama lagi dan voila!

Menginstal Fluter di /usr/local/Cellar/flutter dan binari softlinking di /usr/local/bin harus melakukan trik IMHO. Saya tidak dapat memeriksanya saat ini karena saya belum berani meningkatkan ke Catalina.

Adakah pembaruan tentang masalah ini?

Masih berharap bahwa kita akan memiliki keran dan tong minuman kanonik. Konfigurasi Catalina PATH hanya mengganggu!

ini mungkin dua jam kerja dan akan menghemat banyak waktu untuk banyak orang, jadi tolong

Menantikan ini.

Jempol, Menantikan ini!

Aku

Hai teman-teman, pengingat singkat tentang masalah kebijakan kebersihan kami:

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

Meskipun demikian, perlu diketahui bahwa kami mengetahui masalah ini.

@zanderso Saya menghargai moderasi, tetapi saya pikir beberapa komunikasi tentang permintaan khusus ini diperlukan pada saat ini. Jelas ada minat yang sangat besar dalam hal ini, dan keinginan untuk mendapatkan dukungan resmi daripada dukungan masyarakat. Sementara beberapa pengguna telah mengusulkan solusi, lebih banyak lagi pengguna telah menyatakan keinginan untuk dukungan resmi untuk ini. Sayangnya, tanggapan umum adalah tidak ada tindakan.

Atas nama semua orang di utas ini, saya meminta tim inti untuk membuat rencana untuk mengatasi ini dan mengomunikasikan rencana itu ke basis pengguna.

Hai teman-teman, pengingat singkat tentang masalah kebijakan kebersihan kami:

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

Meskipun demikian, perlu diketahui bahwa kami mengetahui masalah ini.

Ini konyol. Saya baru saja datang dari beranda Flutter, dan saya siap untuk mencobanya ketika saya melihat proses instalasi yang kuno. Datang ke sini, dan melihat masalah ini terbuka selama dua tahun penuh tanpa pembaruan nyata.

Oh well, ke Kotlin kalau begitu.

Datang ke sini karena situs flutter.dev, seperti banyak situs Google lainnya, penuh dengan hal-hal yang dapat difilter dan tidak berfungsi dengan Adblocker. Jadi saya tidak dapat mengunduh flutter SDK tanpa menonaktifkan semuanya.
apt-get / brew akan jauh lebih nyaman.

Juga, seperti yang disebutkan oleh @timmyjose

Hai teman-teman, pengingat singkat tentang masalah kebijakan kebersihan kami:
https://github.com/flutter/flutter/wiki/Issue-hygiene#do -not-add-me-too-or-same-comments-to-bugs
Meskipun demikian, perlu diketahui bahwa kami mengetahui masalah ini.

Ini konyol. Saya baru saja datang dari beranda Flutter, dan saya siap untuk mencobanya ketika saya melihat proses instalasi yang kuno. Datang ke sini, dan melihat masalah ini terbuka selama dua tahun penuh tanpa pembaruan nyata.

Oh well, ke Kotlin kalau begitu.

Kenapa tidak ditanggapi...

Situs @CAoTx Flutter tidak memiliki iklan di dalamnya, dan saya tidak memiliki masalah mengunduh dengan pemblokir iklan terpasang. Mungkin filter adblock khusus Anda terlalu membatasi? Situs itu sendiri adalah open source , jika Anda ingin melihat cara menyesuaikan filter Anda.

Alternatif lain adalah menggunakan git clone seperti yang dijelaskan di bagian bawah halaman unduhan untuk mendapatkan saluran master. Anda dapat menggunakannya, dan kemudian gunakan flutter channel untuk beralih ke saluran lain jika Anda tidak ingin menggunakan master.

Orientasi pengguna macOS baru untuk mengembangkan pengembangan dan proses instalasinya kuno dan membingungkan. brew install flutter harus dapat dilakukan dan didukung oleh tim inti sebagai metode instalasi resmi untuk flutter.

Karena masalah ini telah diberi label dengan P6 , yang merupakan prioritas serendah mungkin, saya kira itu tidak akan diselesaikan dalam waktu dekat? Ini cukup lucu, karena ini adalah salah satu masalah yang paling banyak dikomentari dan aktif di repositori.

@timsneath apakah ada cara agar kami bisa mendapatkan lebih banyak transparansi tentang bagaimana permintaan komunitas ini diprioritaskan?

https://github.com/flutter/flutter/wiki/Triage
https://github.com/flutter/flutter/wiki/Issue-hygiene
berbicara tentang proses.

Meskipun tim kami saat ini tidak memiliki bandwidth untuk menangani masalah ini, itu tidak berarti orang lain tidak dapat melakukannya. Ini akan menjadi usaha menengah/besar, tetapi harus dapat dilakukan oleh kontributor yang termotivasi.

Ada banyak pertanyaan yang bisa saya bayangkan perlu dijawab di sini:

  • Mengajarkan flutter_tools (dan skrip lainnya) untuk tidak menulis ke direktori instal SDK melainkan menggunakan direktori cache lainnya (ini mungkin berguna untuk kebersihan kode).
  • Mengajarkan fluttter_tools bahwa tidak apa-apa untuk menginstal yang tidak dapat diupgrade (tidak dapat ditulis) dan entah bagaimana mengarahkan pengguna ke metode peningkatan yang berbeda.
  • Apakah metode penginstalan berbasis git Flutter kompatibel dengan alat ini? Kami sudah menawarkan tarball/zip untuk unduhan awal, tetapi saat ini kami menganggap pengguna menginstal flutter/flutter sebagai git repo. Jika tidak kompatibel, mungkin ada beberapa proses non-sepele yang bekerja di sisi infrastruktur untuk mendukung produksi/distribusi/pengujian distribusi flutter non-git.

Senang berdebat tentang prioritas (mungkin di forum lain), tetapi saya mendorong untuk melihat bug lain yang diberi label prioritas lebih tinggi daripada yang ini. Flutter memiliki banyak pengguna dan dari itu banyak permintaan (terkadang mendesak). Kami mencoba mengatasinya dalam urutan yang paling berdampak terhadap tujuan kami/pengguna.

@eseidelGoogle Terima kasih atas klarifikasinya, dan sketsa strateginya, sangat dihargai dan sangat memberdayakan!

Untuk menjawab pertanyaan tentang pembaruan, saya pikir jika perintah flutter update tidak dapat tersedia karena tidak menginstal git maka itu sudah cukup baik. Apakah ada cara untuk melakukan itu? Idealnya, itu bukan distribusi lain, hanya jika memeriksa kode untuk melihat apakah lokasi biner flutter memiliki folder .git . Apakah ini mungkin?

Rumusnya juga bisa mengunduh repositori git dan menjalankan perintah untuk pengguna. Rumus tidak harus hanya menginstal binari.

Sebagai referensi, beginilah cara rustup:

rustup , manajer toolchain dari bahasa pemrograman Rust, dapat diinstal dengan menjalankan skrip penginstalan (instalasi mandiri) atau diinstal dari manajer paket OS. Ketika Anda ingin mengupgrade rustup, Anda dapat menjalankan rustup self update untuk instalasi standalone, atau mengupgrade melalui manajer paket OS Anda jika Anda menginstal rustup melalui manajer paket OS. Jika Anda mencoba menjalankan rustup self update ketika rustup diinstal melalui manajer paket OS, itu akan memberi Anda kesalahan, mengatakan harap tingkatkan dari manajer paket OS Anda. Saya sangat menyukai implementasi ini, karena ketika Anda pertama kali menginstal sesuatu melalui manajer paket OS Anda dan memutakhirkannya menggunakan fungsionalitas bawaannya, itu mungkin lepas kendali dari manajer paket OS dan dapat menyebabkan beberapa kesalahan yang tidak diketahui di masa depan.

Saya pikir cara terbaik untuk flutter adalah dengan mengadopsi implementasi serupa seperti yang dilakukan rustup, tetapi ini adalah pekerjaan besar (perlu melakukan refactor banyak hal agar flutter dapat dikelola oleh manajer paket sistem) dan mungkin memerlukan bantuan dari anggota tim inti flutter , jadi saya hanya memberikan saran saya di sini dan saya tidak berharap ini dapat dilakukan segera.

Ya kedengarannya waaaaaay lebih rumit daripada dugaan 10 liner yang dirujuk sebelumnya di utas ini.

TIL ada lebih banyak diskusi tentang hal ini terjadi: http://flutter.dev/go/sdk-per-platform-installers

Apakah halaman ini membantu?
0 / 5 - 0 peringkat