Flutter: دع الرفرفة قابلة للتثبيت عبر البيرة المنزلية

تم إنشاؤها على ١١ يناير ٢٠١٨  ·  77تعليقات  ·  مصدر: flutter/flutter

لم يتم العثور على أي مشاكل حالية في هذا الشأن. فتح للتتبع.

دع الرفرفة تكون قادرة على brew install flutter .

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

التعليق الأكثر فائدة

لذا فبدلاً من أن أضطر إلى التثبيت من SpectralKH أو MiderWong 's أو eclewlow ، ثم يجب أن أثق وأتمنى أن:

  1. سيصبح نقرة المستخدم "رسمية" يتم دعمها وتحديثها عند الضرورة.
  2. لن يقوم هذا المستخدم بحقن برامج ضارة على جهازي.

اقتراحي هو القيام بنفس ما فعلته Dart حيث يوجد لدى Dart صنبور تخمير اسمه dart-lang/dart ومشار إليه في مستندات Dart الرسمية.
يؤدي هذا إلى محاذاة Flutter مع Dart (مع الأخذ في الاعتبار أنها مشاريع شقيقة بشكل فعال) وتبقي الأمور متسقة وبسيطة.
(فكرة الدش: يعتبر Flutter مشروعًا شقيقًا لـ Dart و Flutter يتطلب Dart ، فلماذا لا نجمعه فقط كصيغ أخرى في الحنفية dart-lang ؟)

أعتقد أن أسئلتي هي ، بصفتي مطورًا غير مشروب ومن جديد في هذه المناقشة:

  1. هل هذا قيد التقدم؟ وإذا كان الأمر كذلك فما هو التحديث؟ لأن هذه مشكلة مفتوحة منذ يناير 2018؟
  2. إذا لم يكن قد بدأ بعد ، فما الذي يتعين علينا القيام به كمجتمع لإنجازه؟

ال 77 كومينتر

gspencergoog قد تكون مهتمًا

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

العملية بسيطة جدًا. على الرغم من أنه يتعين علينا التأكد من تكامله مع https://github.com/flutter/flutter/wiki/Release-process ، بشكل مثالي بطريقة آلية.

مرحبا فريق Flutter! بدأت في إضافة صيغة flutter إلى Homebrew على https://github.com/Homebrew/homebrew-core/pull/27395 ، لكن يمكنني بالتأكيد استخدام المزيد من الإرشادات حول اتباع الاتجاه في هذا التعليق:

على الرغم من أنه يتعين علينا التأكد من تكامله مع https://github.com/flutter/flutter/wiki/Release-process ، بشكل مثالي بطريقة آلية.

في الوقت الحالي ، تقوم صيغة Homebrew بتنزيل الإصدار التجريبي الحالي وفك ضغطه ونسخه إلى Flutter's Keg (على سبيل المثال ، /usr/local/Cellar/flutter/0.3.1/ ).

سيكون موضع ترحيب أي ردود فعل!

@ jcollins-g wrt إلى shlock من https://github.com/Homebrew/homebrew-core/pull/27395 ، ربما يمكننا التحقق مما إذا كانت عمليات إرجاع shlock غير مسموح بها / 1 ومعرف العملية الأصل هو الشراب ، لا تغلق. كما يمكننا قفل الكتابة على أجزاء من ذاكرة التخزين المؤقت لمنع التحديث الذاتي عند تثبيت الشراب.

للسياق في Homebrew PR ، كتبت عن مشكلة shlock في التعليقات التي تبدأ هنا: https://github.com/Homebrew/homebrew-core/pull/27395/files#diff -b438c13e924f5f36b1ce4398a89436d2R36

في الواقع ، لقد مررنا بهذه الفكرة أكثر قليلاً وأعتقد في النهاية ، أننا نريد أن تكون الصيغة الرسمية في صنبور البيرة (مستودع غير أساسي). بهذه الطريقة ، يمكننا الحفاظ على ترقية الرفرفة وأهداف ترقية الشراب متزامنة بإحكام.

نأمل أن نتمكن من إحضار نسخة من الصيغة الخاصة بك إلى الصنبور في المستقبل القريب وتبسيط عملية التثبيت الرسمية.

بالتأكيد! في هذه الحالة ، سأكون سعيدًا بإغلاق PR على homebrew-core إذا كان ذلك منطقيًا؟

نعم فعلا. شكرا لتقديم المساهمة!

xster fwiw هذا ليس ضروريًا. تتم ترقية الصيغ في Homebrew / homebew-core في غضون ساعات من الإصدارات الأولية منذ تشغيلنا brew livecheck عدة مرات في اليوم.

إن سلوكxster / briankung shlock في الشراب مفاجئ بعض الشيء بالنسبة لي. الأمر لا يشبه الكثير من الأمور الخاصة التي تحدث هنا:

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

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

يجب أن يكون ذلك دائمًا صالحًا للقيام به على نظام ملفات POSIX - حسنًا ، ما لم تقم بتعيين chflags في الدليل لمنع كتابته:

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

إذا كان هناك شيء ما في homebrew أو الطريقة التي تقوم بإعداده بها يفعل ذلك ، فلن يؤدي إصلاح shlock إلى قطعه لأنك ستفشل بعد ذلك عندما تتم محاولة إجراء عمليات كتابة أخرى في ذاكرة التخزين المؤقت.

في حالة إضافة هذا السطر:

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

هنا يصلحه ، لديك مشكلة chflags وربما يجب التعامل معها بطريقة ما. بطريقة ما ، قد يكون bin / cache موجودًا بالفعل في النقطة التي تقوم فيها بتشغيل الرفرفة لأول مرة (ربما تكون قد بدأت ببناء ثنائي من الرفرفة؟ للكتابة إلى ذاكرة التخزين المؤقت).

[تم تعديله لإصلاح chflags]

@ jcollins-g آه ، إن نظام unix-fu الخاص بي لا يصل إلى حد السعوط - لم أكن أعرف شيئًا عن chflags ، لكن هذا منطقي. أفترض أنها أكاديمية في هذه المرحلة ، لكنني سأبحث فيها. شكرا!

أضفت السطر كالتالي:

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

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

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

ولا يزال الاختبار flutter --version يفشل مع ظهور الخطأ shlock .

فاتني شيء قلته سابقًا:

ربما بدأت ببناء ثنائي من الرفرفة؟ هؤلاء لديهم ذاكرة تخزين مؤقت مسبقة وبالتالي سيمررون mkdir جيدًا ، لكن لن تتمكن من الكتابة إلى ذاكرة التخزين المؤقت

أعتقد أنني أستخدم بناء ثنائي من الرفرفة. إنه الرمز البريدي من https://flutter.io/setup-macos/#get -sdk.

نظرًا لأنني كنت فضوليًا ، قمت بحذف المجلد cache لمعرفة ما إذا كان البرنامج النصي flutter يمكنه إنشاء المجلد نفسه. تعذر: mkdir: /usr/local/Cellar/flutter/0.3.1-beta/bin/cache: Operation not permitted وإدخال echo $(whoami) في flutter يظهر أن البرنامج النصي يعمل كمستخدم شخصي (فحص العقل).

لست على دراية كبيرة بأذونات Unix ، ولكن يبدو أنني بحاجة إلى sudo لتحرير أي ملفات في /usr/local/Cellar/flutter/ ، وتوضح مراجعة الأذونات أن جميع الملفات موجودة في admin مجموعة

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

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

يؤدي نسخ الدليل إلى الدليل الرئيسي الخاص بي إلى تعيين المجموعة staff ، ثم تشغيل ~/flutter/bin/flutter --version مع حذف الدليل cache لبدء تنزيل لغة Dart. ومع ذلك ، فإن تغيير المجموعة في مجلد Homebrew flutter ، /usr/local/Cellar/flutter/ ، لا يسمح لبرميل الشراب بإنشاء المجلد ، وعندما أقوم بإنشاء المجلد بنفسي ، ينتهي بي الحال في shlock: open(/usr/local/Cellar/flutter/0.3.1-beta/bin/cache/shlock9849): Operation not permitted خطأ.

شكرا على الرد التفصيليbriankung. يمكنني التعمق أكثر في هذا الأمر معك ، ولكن يبدو أن الخطأ الأساسي هو أنه لا يمكننا ضمان قابلية الكتابة في الحاوية / ذاكرة التخزين المؤقت تحت تثبيت الرفرفة من قبل المستخدمين العاديين ويفترض Flutter ذلك.

تفصل معظم حزم Unix وحدات البت المخزنة مؤقتًا التي تديرها عن التثبيت الثنائي. طريقة التغليف في Flutter غير تقليدية بعض الشيء من حيث أن البتات المخزنة مؤقتًا تشمل معظم التركيبات الثنائية. Homebrew ، apt-get ، جميع مديري الحزم وأنظمة التشغيل تقريبًا سيكون لديهم مزيج من الأذونات ، chroot أثناء الإنشاء ، chattr / chflags ، إلخ لمحاولة منع تعديل الحزم المثبتة من قبل المستخدمين العاديين.

أعتقد أن الشيء الصحيح الذي يجب فعله هنا قد يكون تعيين علامة في ملف يقوم بتأمين ذاكرة التخزين المؤقت للرفرفة للقراءة فقط ، وجعل أدوات التحديث المضمنة في flutter تحترمها. بهذه الطريقة يمكننا التمييز بين خطأ تكوين المستخدم والمستخدم الذي يستخدم حزمة مثبتة ، وعرض الأخطاء المناسبة. أو ، بشكل أكثر بساطة ، يمكننا فقط التحقق من إمكانية الكتابة في ذاكرة التخزين المؤقت وتخطيها إذا لم نتمكن من الكتابة إلى ذاكرة التخزين المؤقت.

قد يكون اقتراح xster الأصلي كافيًا إذا كانت بقية الأدوات تدعم ذلك بالفعل. الذي يبدو أنه قد يكون الأمر كذلك.

لقد فعلت المزيد من الحفر. يبدو أننا _ في الغالب_ لا نحتاج إلى الكتابة إلى FLUTTER_ROOT والأدلة الفرعية الخاصة به.

ومع ذلك ، هناك استثناءات من المحتمل أن تؤدي إلى حوادث:

المأزق الذي نواجهه هنا هو بالتأكيد واحد.
القفل في ترقية الرفرفة شيء آخر.
قفل الملفات الذهبية شيء آخر.

بالإضافة إلى ذلك ، فإن التفضيل الخاص بذاكرة التخزين المؤقت لجذر الرفرفة يبدو مريبًا بالنسبة لي - ما لم يتم تشفير الحانة للتعامل مع هذه الحالة ، فمن المحتمل ألا يعمل ذلك في الحالات التي يريد فيها المطور استخدام حزمة مختلفة أيضًا.

نظرًا لأنني وجدت العديد من المشكلات الصغيرة على الفور ، أعتقد أنه لإصلاح هذا للأبد ، فربما نحتاج إلى إضافة اختبارات تكامل قيد التشغيل باستخدام FLUTTER_ROOT للقراءة فقط وتعقب أي عمليات فردية صغيرة مثل هذا. سيؤدي ذلك أيضًا إلى منع هذا من الظهور مرة أخرى لأنه من السهل حقًا كمطور Flutter تقديم شيء كهذا عن طريق الخطأ.

+1 في الاختبار باستخدام جذر للقراءة فقط

أي تحديثات على هذا؟

هذا ليس شيئًا نخطط للقيام به حاليًا ، ولكن إذا أراد شخص ما العمل على هذا ، فسندعم هذا العمل. أفترض أنه سيتضمن إما التكامل مع البرامج النصية للتكامل المستمر الخاصة بنا للنشر إلى homebrew بطريقة ما ، أو إنشاء برنامج نصي bootstrap يعرف كيفية الاندماج مع الرفرفة ، والحفاظ على ذلك (وخاصة كتابة الاختبارات للتأكد من أننا نعرف متى فواصل ، حتى نتمكن من إصلاحها). إذا كنت مهتمًا بالعمل على هذا ، فلا تتردد في التواصل معي.

لقد غيرت هذا الخطأ ليكون على وجه التحديد حول البيرة المنزلية ، إذا كنت مهتمًا بنفس الشيء بالنسبة لـ apt-get ، فيرجى تقديم خطأ منفصل (على الرغم من أن التعليق أعلاه ينطبق بشكل متساوٍ على ذلك).

لقد قمت بعمل إعادة ضغط لنظام التشغيل Mac OS: (https://github.com/eclewlow/homebrew-formulas)

كل ما يفعله هو تثبيت الرفرفة.
brew install eclewlow/formulas/flutter

لا يزال يتعين عليك تنزيل IOS & Android Dev Tools بنفسك.

لم ينجح في تمرير brew audit الرغم من ذلك ، لذلك لا يمكنني إضافته إلى البيرة المنزلية.
إليكم السبب:

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

منذ إصدار الإصدار 1.0 من flutter ، آمل أن أرى الصيغة😄.

منذ إصدار الإصدار 1.0 من flutter ، آمل أن أرى الصيغة😄.

نتطلع لذلك أيضا.

eclewlow الرجاء التحديث إلى 1.0

آسف ، أنا في رحلة بحرية والإنترنت عبر الأقمار الصناعية سيء للغاية.

سأعود في العاشر ، وبعد ذلك يمكنني القيام بذلك.

إذا أراد شخص ما القيام بذلك بنفسه ، فيمكنه فقط إنشاء مستودع.

لقد قمت بتغيير الصيغة بحيث تقوم بالفعل بفحص Flutter من git ، بدلاً من تنزيل الحزمة المترجمة مسبقًا.

لكني لم أتوصل بعد إلى كيفية الحصول على أحدث علامة إصدار من أحد المستودعات.

إليك ما ستبدو عليه الصيغة:

فئة رفرفة <صيغة
وصف "إنشاء تطبيقات أصلية جميلة في وقت قياسي"
الصفحة الرئيسية " https://flutter.io/ "
الإصدار "1.0.0"
عنوان url " https://github.com/flutter/flutter.git "
sha256 "6e3ba2da94fb150d2cb8e0596eeb92c86e5e437e91a5f39f211bd4b21d0b24f8"

زجاجة: لا لزوم لها

تثبيت مواطنه
النظام "git" و "fetch" و "--tags"
# checkout أحدث علامة ، شيء من هذا القبيل؟
# git checkout $ (git description --abbrev = 0 --tags)
# واستخدم بدلاً من هذا السطر التالي:
نظام "git" ، "checkout" ، "tags / v1.0.0"
نظام "./bin/flutter"
allfiles = File.join (buildpath، " *"، "{ ،. *}")
mv Dir.glob (allfiles) ، Dir.glob (بادئة) ،: force => true

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

نهاية

def post_install
rm File.join (HOMEBREW_PREFIX، "bin"، "flutter.bat")
chmod_R "+ rwx"، File.join (بادئة، "bin")،: verbose => true

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

نهاية

تفعل الاختبار
النظام "خطأ"
نهاية
نهاية

في 6 ديسمبر 2018 ، في الساعة 11:39 صباحًا ، كتب Alberto Xamin [email protected] :

eclewlow https://github.com/eclewlow يرجى التحديث إلى الإصدار 1.0

-
أنت تتلقى هذا لأنه تم ذكرك.
قم بالرد على هذه الرسالة الإلكترونية مباشرةً ، أو قم بعرضها على GitHub https://github.com/flutter/flutter/issues/14050#issuecomment-445002396 ، أو كتم صوت الموضوع https://github.com/notifications/unsubscribe-auth/AfVSYcUOrJtVDISTEwKF4pRcsO5PLvRhks5 .

نتطلع أيضا 🚶

نظرًا لأن android-sdk متاح كبرميل برميل ، اعتقدت أنه سيكون من المنطقي أن يكون flutter متاحًا أيضًا كبرميل برميل. لذلك تقدمت وقمت بصنبور البيرة من أجل برميل flutter . يمكنك التحقق من ذلك هنا .

حاولت أولاً إنشاء صيغة بسيطة وفشلت فشلاً ذريعاً لأنني لا أمتلك أي خبرة على الإطلاق في تطوير صيغ البيرة المنزلية.

إذا كنت ترغب في ذلك ، فهل يمكنك توضيح ما تريده فعلاً أن يفعله؟

على سبيل المثال ، ما الذي يجب أن يفعله flutter channel beta بعد تشغيل brew install flutter ؟ هل تريد أن تكون قادرًا على إرسال تقارير العلاقات العامة للتغييرات التي تحدث من تثبيت الرفرفة المحلي لديك؟ هل تريد هذا لتثبيت Android SDK أو Xcode لك؟ هل تريد أن تكون قادرًا على القيام بـ flutter run في أدلة الأمثلة؟

أنا من مستخدمي البيرة المنزلية الثقيلة ، لكني لم أكتب أبدًا مكونًا إضافيًا للجعة المنزلية. بعد قولي هذا ، هذا رأي رجل واحد:

ما الذي يجب أن يفعله flutter channel beta بعد تشغيل brew install flutter ؟

قم بالتبديل إلى القناة التجريبية.

هل تريد أن تكون قادرًا على إرسال تقارير العلاقات العامة للتغييرات التي تحدث من تثبيت الرفرفة المحلي لديك؟

لا. البيرة في حالة الاستخدام هذه مخصصة لاستخدام الحزم ، وليس بالضرورة تعديل تلك الحزم.

هل تريد هذا لتثبيت Android SDK أو Xcode لك؟

يجب تثبيت جميع التبعيات.

هل تريد أن تكون قادرًا على تشغيل الرفرفة في أدلة الأمثلة؟

نعم فعلا. بمجرد تشغيل brew install flutter ، سيكون flutter على المسار ويمكنك استخدامه كما لو قمت بتثبيته بنفس الطريقة الموضحة في البرنامج التعليمي Flutter.

نعم. لقد قمت بتحديث صيغة البيرة الخاصة بي من أجل Flutter.

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

يقوم بتثبيت أحدث إصدار مميز من Flutter في مستودع الرفرفة (https://github.com/flutter/flutter) عبر Git.
(حاليًا الإصدار 1.1.1 ، ولكنه سيكتشف تلقائيًا أحدث إصدار عند التثبيت)

للترقية ، ربما يتعين عليك إعادة تثبيت الرفرفة عبر الشراب

brew uninstall flutter
brew install flutter

لقد كتبت تعليميًا صغيرًا جدًا للتواصل مع الآخرين.
https://medium.com/@sadmansamee/installing -flutter-via-homebrew-a5d7009c95ba؟ fbclid = IwAR0DJZOdi-av2X1ofmbc1MaO7SZ7c30bowlkPK9EjIztPCrOhTv2tGbdx7E

لقد كتبت معادلة البيرة الخاصة بي من أجل Flutter.

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

يقوم بتثبيت أحدث إصدار مستقر (v1.0.0) من Flutter في مستودع الرفرفة (https://github.com/flutter/flutter) عبر Git.

brew install flutter
brew upgrade flutter

مجرد مثال بسيط ، هناك الكثير من أوجه القصور ، مرحبًا بكم لتصحيحها.

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

يعمل هذا ، من فضلك لا تخلط بيني وبين الرسالة قبل التثبيت أو الانتظار الطويل للتثبيت ، هذا أمر طبيعي ولا تنطبق الرسالة إلا إذا كنت في مأزق أو لديك مشاكل في تشغيل flutter doctor بعد التثبيت.
شكرا :)

متعلق بـ # 9401

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

ستحتاجjesusvallez إلى brew tap MiderWong/flutter . هذا ما لم يقله https://github.com/flutter/flutter/issues/14050#issuecomment -449447441 ، ولكنه كان يقصده. ما عليك سوى اتباع

لقد كتبت معادلة البيرة الخاصة بي من أجل Flutter.

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

يقوم بتثبيت أحدث إصدار مستقر (v1.0.0) من Flutter في مستودع الرفرفة (https://github.com/flutter/flutter) عبر Git.

brew install flutter
brew upgrade flutter

مجرد مثال بسيط ، هناك الكثير من أوجه القصور ، مرحبًا بكم لتصحيحها.

تم تحديث البرنامج النصي. يرجى تحديث مستودع git بالأمر التالي:

brew untap MiderWong/flutter
brew tap MiderWong/flutter

واتبع التعليمات في README:
رفرفة-البيرة-التمهيدي

تضمين التغريدة
الحصول على

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

TuxujPes صنع

brew tap probablykasper/tap
brew cask install flutter
flutter upgrade

https://github.com/probablykasper/homebrew-tap/blob/master/Casks/flutter.rb
إنه ببساطة يقوم بتنزيل ملف التثبيت المضغوط لنظام macOS flutter ويربط الملف القابل للتنفيذ flutter . ثم تقوم بتشغيل flutter doctor بعد ذلك.

لذا فبدلاً من أن أضطر إلى التثبيت من SpectralKH أو MiderWong 's أو eclewlow ، ثم يجب أن أثق وأتمنى أن:

  1. سيصبح نقرة المستخدم "رسمية" يتم دعمها وتحديثها عند الضرورة.
  2. لن يقوم هذا المستخدم بحقن برامج ضارة على جهازي.

اقتراحي هو القيام بنفس ما فعلته Dart حيث يوجد لدى Dart صنبور تخمير اسمه dart-lang/dart ومشار إليه في مستندات Dart الرسمية.
يؤدي هذا إلى محاذاة Flutter مع Dart (مع الأخذ في الاعتبار أنها مشاريع شقيقة بشكل فعال) وتبقي الأمور متسقة وبسيطة.
(فكرة الدش: يعتبر Flutter مشروعًا شقيقًا لـ Dart و Flutter يتطلب Dart ، فلماذا لا نجمعه فقط كصيغ أخرى في الحنفية dart-lang ؟)

أعتقد أن أسئلتي هي ، بصفتي مطورًا غير مشروب ومن جديد في هذه المناقشة:

  1. هل هذا قيد التقدم؟ وإذا كان الأمر كذلك فما هو التحديث؟ لأن هذه مشكلة مفتوحة منذ يناير 2018؟
  2. إذا لم يكن قد بدأ بعد ، فما الذي يتعين علينا القيام به كمجتمع لإنجازه؟

Harmelodic مخاوف عادلة جدا. يمكنهم عمل برميل تخمير رسمي على الأقل - المنجم هو حرفياً 10 أسطر من الكود.

تجدر الإشارة أيضًا إلى أنه من بين أكثر من 6000 إصدار مفتوح ، يحتل هذا المركز المرتبة الرابعة في القائمة عند الفرز حسب 👍 ردود الفعل. أقدر جهود المجتمع ، لكنني أفضل استخدام شيء مدعوم رسميًا حيثما أمكن ، ويبدو أنني لست وحدي في ذلك. من فضلك اجعل هذا أولوية 🙏

أي تحديث؟

إذا كان أي شخص مهتمًا بامتلاك هذا ، فهذا شيء يسعدنا مساعدتك في إعداده في البنية التحتية لبناء Flutter.

إذا كان أي شخص مهتمًا بامتلاك هذا ، فهذا شيء يسعدنا مساعدتك في إعداده في البنية التحتية لبناء Flutter.

أي شخص يعمل على هذا؟

لقد كتبت معادلة البيرة الخاصة بي من أجل Flutter.

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

يقوم بتثبيت أحدث إصدار مستقر (v1.0.0) من Flutter في مستودع الرفرفة (https://github.com/flutter/flutter) عبر Git.

brew install flutter
brew upgrade flutter

مجرد مثال بسيط ، هناك الكثير من أوجه القصور ، مرحبًا بكم لتصحيحها.

إنه يعمل بشكل رائع.
لكننا نحتاج إلى فرع MASTER أيضًا (ليس فقط dev / stabil) حتى نتمكن من استخدام Flutter للويب!

يبدو هذا فوزًا سهلاً للمشروع. يرجى قضاء بعض الوقت وشحن هذا!

قد يعني هذا مجموعة من التغييرات على الطريقة التي نستخدم بها أدواتنا. نظرًا لأنه في عالم الشراب ، لن يتحكم Flutter في التحديث الذاتي. كما يجب أن يكون على دراية بتخطيط Brew ، أو كيفية العثور على مكان قابل للكتابة للتخزين المؤقت. هذا من شأنه أن يندرج تحت نظرة zanderso ومن المحتمل أن يكون جزءًا جيدًا من العمل.

eseidelGoogle ماذا عن امتلاك برميل خشبي رسمي؟

probablykasper هذا هو الجزء السهل. :) الجزء الصعب هو التأكد من أن الأداة futter تعرف كيفية التصرف بشكل صحيح عند تثبيتها كجزء من موقع / عملية تثبيت البراميل العادية ، إلخ.

يتمثل الجزء الصعب في التأكد من أن الأداة futter تعرف كيفية التصرف بشكل صحيح عند تثبيتها كجزء من موقع / عملية تثبيت البراميل العادية ، إلخ.

هذا صحيح. يعد تعليم الأداة flutter أن شيئًا آخر مسؤولاً عن التثبيت والتحديث والتعليم لفهم ترتيب أكثر تنوعًا لأذونات أنظمة الملفات هو جزء كبير من العمل.

أيضًا ، إنه ليس مانعًا صعبًا ، ولكن هذا أيضًا يتعارض إلى حد ما مع رغبتنا في الحصول على طريقة احتكاك منخفضة للأشخاص للمساهمة في Flutter ، وهو أمر أكثر صعوبة إذا لم تتم إدارة بتات Flutter repo بواسطة git.

probablykasper هذا هو الجزء السهل. :) الجزء الصعب هو التأكد من أن الأداة futter تعرف كيفية التصرف بشكل صحيح عند تثبيتها كجزء من موقع / عملية تثبيت البراميل العادية ، إلخ.

أنا أختبر Flutter على Homebrew Cask ، يبدو أنه يعمل بشكل جيد بالنسبة لي. هل يجب إعادة النظر في استخدام Cask بدلاً من Formula for Homebrew؟

socheatsok78 / homebrew-flutter

نتيجة الاختبار

يمكن إجراء التبديل إلى قناة مختلفة باستخدام flutter CLI.
ودليل التثبيت مستقيم إلى حد كبير بالنسبة لـ Cask ثم باستخدام Formula.

@ socheatsok78 سيعطي هذه المحاولة. شكرا

brew cask install socheatsok78/flutter/flutter

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

ولكن ، يبدو أن لديها مشكلات على Mac بسبب الأمان الجديد في Catolina.

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

ولكن ، يبدو أن لديها مشكلات على Mac بسبب الأمان الجديد في Catolina.

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

أنا في كاتالينا ، لست متأكدًا تمامًا من ذلك. المشكلة الوحيدة التي كنت أواجهها كانت idevice_id والتي يمكن العثور عليها هنا # 42302

ولكن ، يبدو أن لديها مشكلات على Mac بسبب الأمان الجديد في Catolina.

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

أنا في كاتالينا ، لست متأكدًا تمامًا من ذلك. المشكلة الوحيدة التي كنت أواجهها كانت idevice_id والتي يمكن العثور عليها هنا # 42302

انتقل إلى تفضيلات النظام ، وافتح قائمة الأمان ، ضمن القسم العام ، يمكنك السماح بالوصول إلى Dart. قم بتشغيل flutter upgrade مرة أخرى. قد يفشل مرة أخرى ، قائلاً إن شيئًا ما يفشل النواة. كرر نفس الإجراء مرة أخرى وفويلا!

يجب أن يؤدي تثبيت Fluter في / usr / local / Cellar / flutter و softlinking baries في / usr / local / bin إلى أداء خدعة IMHO. لا يمكنني التحقق من ذلك حاليًا لأنني لم أجرؤ على الترقية إلى Catalina حتى الآن.

أي تحديثات بشأن هذه المسألة؟

ما زلت آمل أن يكون لدينا حنفية وبرميل مشروبات متعارف عليهما. تهيئة Catalina PATH أمر مزعج فقط!

ربما تكون هذه ساعتين من العمل وستوفر الكثير من الساعات للعديد من الأشخاص ، لذا من فضلك

نتطلع إلى هذا.

ممتاز ، نتطلع إلى هذا!

أنا

مرحبًا يا رفاق ، تذكير سريع حول سياسات النظافة الخاصة بنا:

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

بعد قولي هذا ، يرجى العلم أننا على دراية بهذه المشكلة.

zanderso أقدر الاعتدال ، ولكن أعتقد أن بعض الاتصالات بشأن هذا الطلب بالذات لها ما يبررها في هذه المرحلة. من الواضح أن هناك اهتمامًا كبيرًا بهذا الأمر ، ورغبة في الحصول على دعم رسمي بدلاً من دعم المجتمع. بينما اقترح العديد من المستخدمين حلولاً ، أعرب عدد أكبر من المستخدمين عن رغبتهم في الحصول على دعم رسمي لذلك. لسوء الحظ ، كانت الاستجابة العامة هي عدم اتخاذ أي إجراء.

بالنيابة عن كل فرد في هذا الموضوع ، أطلب من الفريق الأساسي وضع خطة لمعالجة هذا الأمر وإيصال تلك الخطة إلى قاعدة المستخدمين.

مرحبًا يا رفاق ، تذكير سريع حول سياسات النظافة الخاصة بنا:

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

بعد قولي هذا ، يرجى العلم أننا على دراية بهذه المشكلة.

هذا سخيف. لقد جئت للتو من صفحة Flutter الرئيسية ، وقد تم إعدادها جميعًا لتجربتها عندما رأيت عملية التثبيت القديمة. جئت هنا ، ورأيت هذه القضية مفتوحة لمدة عامين كاملين دون أي تحديثات ملموسة.

حسنًا ، إلى Kotlin بعد ذلك.

أتيت هنا لأن موقع flutter.dev ، مثل العديد من مواقع Google الأخرى ، مليء بالأشياء التي يمكن تصفيتها ولا تعمل مع Adblocker. لذلك لا يمكنني تنزيل flutter sdk دون تعطيل كل شيء.
سيكون apt-get / brew أكثر ملاءمة.

أيضًا ، مثل معلمtimmyjose

مرحبًا يا رفاق ، تذكير سريع حول سياسات النظافة الخاصة بنا:
https://github.com/flutter/flutter/wiki/Issue-hygiene#do -not-add-me-too-or-same-comments to-bugs
بعد قولي هذا ، يرجى العلم أننا على دراية بهذه المشكلة.

هذا سخيف. لقد جئت للتو من صفحة Flutter الرئيسية ، وقد تم إعدادها جميعًا لتجربتها عندما رأيت عملية التثبيت القديمة. جئت هنا ، ورأيت هذه القضية مفتوحة لمدة عامين كاملين دون أي تحديثات ملموسة.

حسنًا ، إلى Kotlin بعد ذلك.

لماذا لم يتم تناول ذلك ...

لا يحتوي موقع CAoTx Flutter على أي إعلانات ، ولا أواجه أي مشاكل في التنزيل مع تثبيت مفتوح المصدر ، إذا كنت تريد معرفة كيفية ضبط عوامل التصفية الخاصة بك.

بديل آخر هو استخدام git clone كما هو موضح في أسفل صفحة التنزيلات للحصول على القناة الرئيسية. يمكنك استخدام ذلك ، ثم استخدام flutter channel للتبديل إلى قناة أخرى إذا كنت لا تريد استخدام master.

يعد إعداد مستخدم macOS جديد لرفرفة التطوير وعملية التثبيت قديمة ومربكة في أحسن الأحوال. يجب أن يكون brew install flutter ممكنًا ومدعومًا من قبل الفريق الأساسي كطريقة التثبيت الرسمية للرفرفة.

نظرًا لأنه تم تصنيف هذه المشكلة بـ P6 ، ما هو أدنى أولوية ممكنة ، أعتقد أنه لن يتم حلها في أي وقت قريبًا؟ إنه أمر مضحك للغاية ، نظرًا لأن هذه واحدة من أكثر المشكلات التي تم تعليقها ونشاطها في المستودع.

timsneath هل هناك أي طريقة يمكننا من خلالها الحصول على مزيد من الشفافية حول كيفية ترتيب أولويات طلبات المجتمع هذه؟

https://github.com/flutter/flutter/wiki/Triage
https://github.com/flutter/flutter/wiki/Issue-hygiene
نتحدث عن العمليات.

على الرغم من أن فرقنا ليس لديها حاليًا نطاق ترددي للتعامل مع هذه المشكلة ، فإن هذا لا يعني أن شخصًا آخر لا يمكنه ذلك. سيكون هذا مسعى متوسط ​​/ كبير ، ولكن يجب أن يكون ممكنًا من قبل مساهم متحمس.

هناك مجموعة من الأسئلة التي يمكن أن أتخيل أنها بحاجة إلى إجابة هنا:

  • تعليم flutter_tools (والنصوص الأخرى) عدم الكتابة في دليل تثبيت sdk بل استخدام أدلة ذاكرة التخزين المؤقت الأخرى (قد يكون هذا مفيدًا لنظافة التعليمات البرمجية بغض النظر).
  • تعليم fluttter_tools أنه من المقبول أن يكون لديك تثبيت غير قابل للترقية (غير قابل للكتابة) وأن يوجه المستخدمين بطريقة ما إلى طرق ترقية مختلفة.
  • هل طريقة التثبيت المعتمدة على بوابة Flutter متوافقة مع هذه الأدوات؟ نحن نقدم بالفعل كرات القطران / الكود البريدية للتنزيل الأولي ، لكننا نفترض حاليًا أن المستخدمين يقومون بتثبيت flutter / flutter كمستودع git. إذا لم يكن متوافقًا ، فقد يكون هناك بعض الأعمال غير التافهة على جانب البنية التحتية لدعم إنتاج / توزيع / اختبار التوزيعات غير المتوافقة مع الرفرفة.

يسعدني الجدال حول الأولويات (ربما في منتدى آخر) ، لكنني أشجع البحث في الأخطاء الأخرى التي تم تصنيفها على أنها ذات أولوية أعلى من هذه. لدى Flutter الكثير من المستخدمين ومن تلك الطلبات (العاجلة أحيانًا). نحاول معالجتها بالترتيب لإحداث أكبر تأثير تجاه أهدافنا / مستخدمينا.

eseidelGoogle نشكرك على التوضيح ورسم الإستراتيجية ، إنه موضع تقدير كبير

للإجابة على السؤال المتعلق بالتحديث ، أعتقد أنه إذا كان الأمر العادي flutter update لا يمكن أن يكون متاحًا لعدم وجود تثبيتات git ، فيجب أن يكون ذلك جيدًا بما فيه الكفاية. هل هناك طريقة للقيام بذلك؟ من الناحية المثالية ، لن يكون توزيعًا آخر ، مجرد فحص في الكود لمعرفة ما إذا كان موقع ثنائي الرفرفة يحتوي على مجلد .git . هل هذا ممكن؟

يمكن للصيغة أيضًا تنزيل مستودع git وتشغيل الأوامر للمستخدم. لا يجب أن تقوم الصيغ فقط بتثبيت الثنائيات.

كمرجع ، هذه هي الطريقة التي يعمل بها Rustup:

rustup ، مدير أدوات لغة البرمجة Rust ، يمكن تثبيته عن طريق تشغيل برنامج نصي للتثبيت (تثبيت مستقل) أو تثبيته من مدير حزم نظام التشغيل. عندما تريد ترقية Rustup ، يمكنك تشغيل rustup self update للتثبيت المستقل ، أو الترقية عبر مدير حزمة نظام التشغيل إذا قمت بتثبيت rustup عبر مدير حزم نظام التشغيل. إذا حاولت تشغيل rustup self update عند تثبيت rustup عبر مدير حزمة نظام التشغيل ، فسوف يعطيك خطأ ، يقول الرجاء ترقيته من مدير حزمة نظام التشغيل الخاص بك. يعجبني هذا التطبيق حقًا ، لأنه عند تثبيت شيء ما لأول مرة عبر مدير حزمة نظام التشغيل لديك وترقيته باستخدام الوظيفة المضمنة فيه ، فقد يخرج عن سيطرة مدير حزمة نظام التشغيل وقد يتسبب في بعض الأخطاء غير المعروفة في المستقبل.

أعتقد أن أفضل طريقة للرفرفة هي اعتماد تطبيق مشابه كما يفعل Rustup ، لكن هذا عمل ضخم (تحتاج إلى إعادة تشكيل العديد من الأشياء للسماح بإدارة flutter بواسطة مدير حزم النظام) وقد تتطلب المساعدة من أعضاء الفريق الأساسي من flutter ، لذلك أقدم اقتراحاتي هنا ولن أتوقع أن يتم ذلك قريبًا.

نعم ، يبدو الأمر أكثر تعقيدًا من الأسطر العشرة المزعومة التي تمت الإشارة إليها سابقًا في هذا الموضوع.

سمسم هناك المزيد من النقاش حول هذا الأمر: http://flutter.dev/go/sdk-per-platform-installers

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات