Flutter: homebrew๋ฅผ ํ†ตํ•ด flutter๋ฅผ ์„ค์น˜ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•˜์‹ญ์‹œ์˜ค.

์— ๋งŒ๋“  2018๋…„ 01์›” 11์ผ  ยท  77์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: flutter/flutter

์ด์— ๋Œ€ํ•œ ๊ธฐ์กด ๋ฌธ์ œ๋ฅผ ์ฐพ์ง€ ๋ชปํ–ˆ์Šต๋‹ˆ๋‹ค. ์ถ”์ ์„ ์œ„ํ•ด ์—ฝ๋‹ˆ๋‹ค.

Flutter๊ฐ€ brew install flutter ๊ฐ€๋Šฅํ•˜๋„๋ก ํ•ฉ๋‹ˆ๋‹ค.

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

๊ฐ€์žฅ ์œ ์šฉํ•œ ๋Œ“๊ธ€

๋”ฐ๋ผ์„œ ์‚ฌ์šฉ์ž์˜ ๋งž์ถค ํƒญ์—์„œ ์„ค์น˜ํ•˜๋Š” ๋Œ€์‹  @SpectralKH ๋˜๋Š” @MiderWong ๋˜๋Š” @eclewlow๊ฐ€ ๋œ ๋‹ค์Œ ๋‹ค์Œ์„ ์‹ ๋ขฐํ•˜๊ณ  ํฌ๋งํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

  1. ํ•ด๋‹น ์‚ฌ์šฉ์ž์˜ ํƒญ์€ ์ž˜ ์ง€์›๋˜๊ณ  ํ•„์š”ํ•  ๋•Œ ์—…๋ฐ์ดํŠธ๋˜๋Š” "๊ณต์‹" ํƒญ์ด ๋ฉ๋‹ˆ๋‹ค.
  2. ๊ทธ ์‚ฌ์šฉ์ž๋Š” ๋‚ด ์ปดํ“จํ„ฐ์— ์•…์„ฑ ์†Œํ”„ํŠธ์›จ์–ด๋ฅผ ์ฃผ์ž…ํ•˜์ง€ ์•Š์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๋‚ด ์ œ์•ˆ์€ Dart์— dart-lang/dart ๋ผ๋Š” ์–‘์กฐ ํƒญ์ด ์žˆ๊ณ  ๊ณต์‹ Dart ๋ฌธ์„œ์—์„œ ์ฐธ์กฐ๋˜๋Š” Dart๊ฐ€ ํ•œ ๊ฒƒ๊ณผ ๋™์ผ ํ•˜๊ฒŒ ์ˆ˜ํ–‰ ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.
์ด๊ฒƒ์€ Flutter๋ฅผ Dart์™€ ์ •๋ ฌํ•˜๊ณ (ํšจ๊ณผ์ ์œผ๋กœ ์ž๋งค ํ”„๋กœ์ ํŠธ๋ผ๊ณ  ์ƒ๊ฐํ•จ) ์ผ์„ ์ผ๊ด€๋˜๊ณ  ๋‹จ์ˆœํ•˜๊ฒŒ ์œ ์ง€ํ•ฉ๋‹ˆ๋‹ค.
(์ƒค์›Œ ์ƒ๊ฐ: Flutter๋Š” Dart์˜ ์ž๋งค ํ”„๋กœ์ ํŠธ์ด๊ณ  Flutter์—๋Š” Dart๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. dart-lang ํƒญ์—์„œ ๋‹ค๋ฅธ ๊ณต์‹์œผ๋กœ ๋ฒˆ๋“ค๋กœ ๋ฌถ์ง€ ์•Š๋Š” ์ด์œ ๋Š” ๋ฌด์—‡์ž…๋‹ˆ๊นŒ?)

์ œ ์งˆ๋ฌธ์€ ์–‘์กฐ๋ฅผ ํ•˜์ง€ ์•Š๋Š” ๊ฐœ๋ฐœ์ž๋กœ์„œ ์ด ํ† ๋ก ์„ ์ฒ˜์Œ ์ ‘ํ•˜๋Š” ์‚ฌ๋žŒ์ž…๋‹ˆ๋‹ค.

  1. ์ง„ํ–‰ ์ค‘์ธ๊ฐ€์š”? ๊ทธ๋ ‡๋‹ค๋ฉด ์—…๋ฐ์ดํŠธ๋Š” ๋ฌด์—‡์ž…๋‹ˆ๊นŒ? ์ด๊ฒƒ์ด 2018๋…„ 1์›”๋ถ€ํ„ฐ ๊ณต๊ฐœ๋œ ๋ฌธ์ œ์˜€๊ธฐ ๋•Œ๋ฌธ์—?
  2. ์•„์ง ์‹œ์ž‘ํ•˜์ง€ ์•Š์•˜๋‹ค๋ฉด ์ด๋ฅผ ์™„๋ฃŒํ•˜๊ธฐ ์œ„ํ•ด ์ปค๋ฎค๋‹ˆํ‹ฐ์—์„œ ๋ฌด์—‡์„ ํ•ด์•ผ ํ•ฉ๋‹ˆ๊นŒ?

๋ชจ๋“  77 ๋Œ“๊ธ€

@gspencergoog ๋‹น์‹ ์ด ๊ด€์‹ฌ์„ ๊ฐ€์งˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค

https://docs.brew.sh/Formula-์ฟก๋ถ

ํ”„๋กœ์„ธ์Šค๋Š” ๋งค์šฐ ๊ฐ„๋‹จํ•ฉ๋‹ˆ๋‹ค. ์ด์ƒ์ ์œผ๋กœ๋Š” ์ž๋™ํ™”๋œ ๋ฐฉ์‹์œผ๋กœ https://github.com/flutter/flutter/wiki/Release-process ์™€ ํ†ตํ•ฉํ•ด์•ผ ํ•˜์ง€๋งŒ.

์•ˆ๋…•ํ•˜์„ธ์š” Flutter ํŒ€์ž…๋‹ˆ๋‹ค! https://github.com/Homebrew/homebrew-core/pull/27395 ์—์„œ Homebrew์— flutter ๊ณต์‹์„ ์ถ”๊ฐ€ํ•˜๊ธฐ ์‹œ์ž‘ํ–ˆ์ง€๋งŒ ์ด ์ฃผ์„์˜ ์ง€์นจ์„ ๋”ฐ๋ฅด๋Š” ๋ฐ ๋” ๋งŽ์€ ์ง€์นจ์„ ํ™•์‹คํžˆ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด์ƒ์ ์œผ๋กœ๋Š” ์ž๋™ํ™”๋œ ๋ฐฉ์‹์œผ๋กœ https://github.com/flutter/flutter/wiki/Release-process ์™€ ํ†ตํ•ฉํ•ด์•ผ ํ•˜์ง€๋งŒ.

ํ˜„์žฌ Homebrew ๊ณต์‹์€ ํ˜„์žฌ ๋ฒ ํƒ€ ๋ฆด๋ฆฌ์Šค๋ฅผ ๋‹ค์šด๋กœ๋“œํ•˜๊ณ  ์••์ถ•์„ ํ’€๊ณ  Flutter์˜ Keg(์˜ˆ: /usr/local/Cellar/flutter/0.3.1/ )์— ๋ณต์‚ฌํ•ฉ๋‹ˆ๋‹ค.

๋ชจ๋“  ํ”ผ๋“œ๋ฐฑ์„ ํ™˜์˜ํ•ฉ๋‹ˆ๋‹ค!

@jcollins-g wrt https://github.com/Homebrew/homebrew-core/pull/27395 , ์•„๋งˆ๋„ shlock์ด ํ—ˆ์šฉ๋˜์ง€ ์•Š๋Š” / 1์„ ๋ฐ˜ํ™˜ํ•˜๊ณ  ์ƒ์œ„ ํ”„๋กœ์„ธ์Šค ID๊ฐ€ brew์ธ์ง€, shlockํ•˜์ง€ ์•Š๋Š”์ง€ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ brew๊ฐ€ ์„ค์น˜๋œ ๊ฒฝ์šฐ ์ž์ฒด ์—…๋ฐ์ดํŠธ๋ฅผ ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•ด ์บ์‹œ์˜ ์ผ๋ถ€์— ๋Œ€ํ•œ ์“ฐ๊ธฐ๋ฅผ ์ž ๊ธ€ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ทธ ๋ธŒ๋ฃจ PR์˜ ์ปจํ…์ŠคํŠธ๋ฅผ ๋“ค์–ด, ๋‚ด๊ฐ€ ์“ด shlock ์—ฌ๊ธฐ ์‹œ์ž‘ ์ฝ”๋ฉ˜ํŠธ์— ๋ฌธ์ œ : https://github.com/Homebrew/homebrew-core/pull/27395/files#diff -b438c13e924f5f36b1ce4398a89436d2R36

์‚ฌ์‹ค, ์šฐ๋ฆฌ๋Š” ์ด ์•„์ด๋””์–ด๋ฅผ ์กฐ๊ธˆ ๋” ๊ฒ€ํ† ํ–ˆ๊ณ  ๊ถ๊ทน์ ์œผ๋กœ ๊ณต์‹ ๊ณต์‹์ด ํ™ˆ๋ธŒ๋ฅ˜ ํƒญ(๋น„ํ•ต์‹ฌ ์ €์žฅ์†Œ)์— ์žˆ๊ธฐ๋ฅผ ์›ํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฐ ์‹์œผ๋กœ ํ”Œ๋Ÿฌํ„ฐ ์—…๊ทธ๋ ˆ์ด๋“œ์™€ ์–‘์กฐ ์—…๊ทธ๋ ˆ์ด๋“œ ๋Œ€์ƒ์„ ์™„์ „ํžˆ ๋™๊ธฐํ™”๋œ ์ƒํƒœ๋กœ ์œ ์ง€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ฐ€๊นŒ์šด ์‹œ์ผ ๋‚ด์— ๊ณต์‹ ๋ฒ„์ „์„ ํƒญ์œผ๋กœ ๊ฐ€์ ธ์™€ ๊ณต์‹ ์„ค์น˜ ํ”„๋กœ์„ธ์Šค๋ฅผ ๊ฐ„์†Œํ™”ํ•  ์ˆ˜ ์žˆ๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค.

ํ™•์‹ ํ•˜๋Š”! ์ด ๊ฒฝ์šฐ, ํƒ€๋‹นํ•˜๋‹ค๋ฉด homebrew-core ์— ๋Œ€ํ•œ ํ™๋ณด๋ฅผ ์ข…๋ฃŒํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

์˜ˆ. ๊ธฐ์—ฌํ•ด์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค!

@xster fwiw ํ•„์š”ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. Homebrew/homebew-core์˜ ๊ณต์‹์€ ํ•˜๋ฃจ์— ์—ฌ๋Ÿฌ ๋ฒˆ brew livecheck ์‹คํ–‰ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์—…์ŠคํŠธ๋ฆผ ๋ฆด๋ฆฌ์Šค ํ›„ ๋ช‡ ์‹œ๊ฐ„ ์ด๋‚ด์— ์—…๊ทธ๋ ˆ์ด๋“œ๋ฉ๋‹ˆ๋‹ค.

@xster / @briankung shlock์˜ brew์—์„œ์˜ ํ–‰๋™์€ ๋‚˜์—๊ฒŒ ์กฐ๊ธˆ ๋†€๋ž์Šต๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์—์„œ ํŠน๋ณ„ํ•œ ์ผ์ด ๋ฒŒ์–ด์ง€๊ณ  ์žˆ๋Š” ๊ฒƒ์€ ์•„๋‹™๋‹ˆ๋‹ค.

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$

ํ™ˆ๋ธŒ๋ฅ˜์˜ ๋ฌด์–ธ๊ฐ€ ๋˜๋Š” ์„ค์ •ํ•˜๋Š” ๋ฐฉ์‹์ด ๊ทธ๋ ‡๊ฒŒ ํ•˜๋Š” ๊ฒฝ์šฐ ์บ์‹œ์—์„œ ๋‹ค๋ฅธ ์“ฐ๊ธฐ ์ž‘์—…์ด ๋ถˆ๊ฐ€ํ”ผํ•˜๊ฒŒ ์‹œ๋„๋  ๋•Œ ์‹คํŒจํ•  ๊ฒƒ์ด๊ธฐ ๋•Œ๋ฌธ์— shlock์„ ์ˆ˜์ •ํ•ด๋„ ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์ด ์ค„์„ ์ถ”๊ฐ€ํ•˜๋Š” ๊ฒฝ์šฐ:

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

์—ฌ๊ธฐ์—์„œ ์ˆ˜์ •ํ•˜๋ฉด chflags ๋ฌธ์ œ๊ฐ€ ์žˆ๊ณ  ์–ด๋–ป๊ฒŒ๋“  ์ฒ˜๋ฆฌํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์—ฌํ•˜ํŠผ, bin/cache๋Š” ์ฒ˜์Œ flutter๋ฅผ ์‹คํ–‰ํ•˜๋Š” ์ง€์ ์— ์ด๋ฏธ ์กด์žฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค(์•„๋งˆ๋„ flutter์˜ ๋ฐ”์ด๋„ˆ๋ฆฌ ๋นŒ๋“œ๋กœ ์‹œ์ž‘ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๊นŒ? ์บ์‹œ๊ฐ€ ๋ฏธ๋ฆฌ ๋งŒ๋“ค์–ด์กŒ๊ธฐ ๋•Œ๋ฌธ์— mkdir์„ ์ž˜ ํ†ต๊ณผํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ์บ์‹œ์— ์“ฐ๊ธฐ ์œ„ํ•ด).

[chflags ์ˆ˜์ •์„ ์œ„ํ•ด ์ˆ˜์ •๋จ]

@jcollins-g ์•„, ๋‚ด unix-fu๋Š” ์Šค๋„ˆํ”„์— ๋‹ฌ๋ ค ์žˆ์ง€ ์•Š์Šต๋‹ˆ๋‹ค. chflags ์— ๋Œ€ํ•ด ๋ชฐ๋ž์ง€๋งŒ ์˜๋ฏธ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ํ˜„์žฌ๋กœ์„œ๋Š” ํ•™๋ฌธ์ ์ด๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค๋งŒ, ์‚ดํŽด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ๊ฐ์‚ฌ ํ•ด์š”!

๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ค„์„ ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค.

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

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

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

๊ทธ๋ฆฌ๊ณ  flutter --version ํ…Œ์ŠคํŠธ๋Š” ์—ฌ์ „ํžˆ shlock ์˜ค๋ฅ˜์™€ ํ•จ๊ป˜ ์‹คํŒจํ•ฉ๋‹ˆ๋‹ค.

๋‚˜๋Š” ๋‹น์‹ ์ด ์ด์ „์— ๋งํ•œ ๊ฒƒ์„ ๋†“์ณค์Šต๋‹ˆ๋‹ค.

์•„๋งˆ๋„ ๋‹น์‹ ์€ flutter์˜ ๋ฐ”์ด๋„ˆ๋ฆฌ ๋นŒ๋“œ๋กœ ์‹œ์ž‘ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๊นŒ? ๊ทธ๊ฒƒ๋“ค์€ ์บ์‹œ๊ฐ€ ๋ฏธ๋ฆฌ ๋งŒ๋“ค์–ด์กŒ์œผ๋ฏ€๋กœ mkdir์„ ์ž˜ ํ†ต๊ณผํ•˜์ง€๋งŒ ์บ์‹œ์— ์“ธ ์ˆ˜๋Š” ์—†์Šต๋‹ˆ๋‹ค.

๋‚˜๋Š” Flutter์˜ ๋ฐ”์ด๋„ˆ๋ฆฌ ๋นŒ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. https://flutter.io/setup-macos/#get -sdk์˜ zip์ž…๋‹ˆ๋‹ค.

๊ถ๊ธˆํ•ด์„œ cache ํด๋”๋ฅผ ์‚ญ์ œํ•˜์—ฌ flutter ์Šคํฌ๋ฆฝํŠธ๊ฐ€ ํด๋” ์ž์ฒด๋ฅผ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ๋Š”์ง€ ํ™•์ธํ–ˆ์Šต๋‹ˆ๋‹ค. mkdir: /usr/local/Cellar/flutter/0.3.1-beta/bin/cache: Operation not permitted ๋ฐ echo $(whoami) ๋ฅผ flutter ์— ์‚ฝ์ž…ํ•˜๋ฉด ์Šคํฌ๋ฆฝํŠธ๊ฐ€ ๋‚ด ๊ฐœ์ธ ์‚ฌ์šฉ์ž๋กœ ์‹คํ–‰๋˜๊ณ  ์žˆ์Œ์„ ์•Œ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค(์˜จ์ „์„ฑ ๊ฒ€์‚ฌ).

์ €๋Š” Unix ๊ถŒํ•œ์— ์ต์ˆ™ํ•˜์ง€ ์•Š์ง€๋งŒ /usr/local/Cellar/flutter/ ํŒŒ์ผ์„ ํŽธ์ง‘ํ•˜๋ ค๋ฉด sudo ์ด ํ•„์š”ํ•œ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ๊ถŒํ•œ์„ ๊ฒ€ํ† ํ•˜๋ฉด ๋ชจ๋“  ํŒŒ์ผ์ด 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 ๊ทธ๋ฃน์ด ํ• ๋‹น๋˜๊ณ  cache ๋””๋ ‰ํ† ๋ฆฌ๊ฐ€ ์‚ญ์ œ๋œ ์ƒํƒœ์—์„œ ~/flutter/bin/flutter --version ๋ฅผ ์‹คํ–‰ํ•˜๋ฉด Dart ์–ธ์–ด ๋‹ค์šด๋กœ๋“œ๊ฐ€ ์‹œ์ž‘๋ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ Homebrew์˜ flutter ํด๋”์—์„œ ๊ทธ๋ฃน์„ ๋ณ€๊ฒฝํ•˜๋ฉด /usr/local/Cellar/flutter/ brew keg์—์„œ ํด๋”๋ฅผ ์ƒ์„ฑํ•  ์ˆ˜ ์—†์œผ๋ฉฐ ํด๋”๋ฅผ ์ง์ ‘ ์ƒ์„ฑํ•˜๋ฉด shlock: open(/usr/local/Cellar/flutter/0.3.1-beta/bin/cache/shlock9849): Operation not permitted ์˜ค๋ฅ˜.

@briankung ์ž์„ธํ•œ ๋‹ต๋ณ€ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ์ด ๋ฌธ์ œ์— ๋Œ€ํ•ด ๋” ์ž์„ธํžˆ ์•Œ์•„๋ณผ ์ˆ˜๋Š” ์žˆ์ง€๋งŒ ๊ธฐ๋ณธ์ ์ธ ๋ฒ„๊ทธ๋Š” ์ผ๋ฐ˜ ์‚ฌ์šฉ์ž๊ฐ€ Flutter ์„ค์น˜์—์„œ bin/cache์— ์“ฐ๊ธฐ ๊ฐ€๋Šฅ์„ฑ์„ ๋ณด์žฅํ•  ์ˆ˜ ์—†๊ณ  Flutter๊ฐ€ ์ด๋ฅผ ๊ฐ€์ •ํ•œ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๋Œ€๋ถ€๋ถ„์˜ Unix ํŒจํ‚ค์ง€๋Š” ๋ฐ”์ด๋„ˆ๋ฆฌ ์„ค์น˜์—์„œ ๊ด€๋ฆฌํ•˜๋Š” ์บ์‹œ๋œ ๋น„ํŠธ๋ฅผ ๋ถ„๋ฆฌํ•ฉ๋‹ˆ๋‹ค. Flutter์˜ ํŒจํ‚ค์ง• ๋ฐฉ๋ฒ•์€ ์บ์‹œ๋œ ๋น„ํŠธ๊ฐ€ ๋Œ€๋ถ€๋ถ„์˜ ๋ฐ”์ด๋„ˆ๋ฆฌ ์„ค์น˜๋ฅผ ํฌํ•จํ•œ๋‹ค๋Š” ์ ์—์„œ ์•ฝ๊ฐ„ ์ด๋ก€์ ์ž…๋‹ˆ๋‹ค. Homebrew, apt-get, ๊ฑฐ์˜ ๋ชจ๋“  ํŒจํ‚ค์ง€ ๊ด€๋ฆฌ์ž ๋ฐ ์šด์˜ ์ฒด์ œ์—๋Š” ์ผ๋ฐ˜ ์‚ฌ์šฉ์ž๊ฐ€ ์„ค์น˜๋œ ํŒจํ‚ค์ง€๋ฅผ ์ˆ˜์ •ํ•˜๋Š” ๊ฒƒ์„ ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•ด ๋นŒ๋“œ ์ค‘ chroot, chattr/chflags ๋“ฑ์˜ ๊ถŒํ•œ ์กฐํ•ฉ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

์—ฌ๊ธฐ์„œ ํ•ด์•ผ ํ•  ์˜ฌ๋ฐ”๋ฅธ ์ผ์€ flutter ์บ์‹œ๋ฅผ ์ฝ๊ธฐ ์ „์šฉ์œผ๋กœ ์ž ๊ทธ๋Š” ํ”Œ๋ž˜๊ทธ๋ฅผ ํŒŒ์ผ์— ์„ค์ •ํ•˜๊ณ  flutter์˜ ๋‚ด์žฅ ์—…๋ฐ์ดํŠธ ๋„๊ตฌ๊ฐ€ ์ด๋ฅผ ์ค€์ˆ˜ํ•˜๋„๋ก ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ์‚ฌ์šฉ์ž ๊ตฌ์„ฑ ์˜ค๋ฅ˜์™€ ์„ค์น˜๋œ ํŒจํ‚ค์ง€๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์‚ฌ์šฉ์ž๋ฅผ ๊ตฌ๋ถ„ํ•˜๊ณ  ์ ์ ˆํ•œ ์˜ค๋ฅ˜๋ฅผ ํ‘œ์‹œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋˜๋Š” ๋” ๊ฐ„๋‹จํ•˜๊ฒŒ ์บ์‹œ ์“ฐ๊ธฐ ๊ฐ€๋Šฅ์„ฑ์„ ํ™•์ธํ•˜๊ณ  ์บ์‹œ์— ์“ธ ์ˆ˜ ์—†์œผ๋ฉด ๊ฑด๋„ˆ๋›ธ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋‚˜๋จธ์ง€ ๋„๊ตฌ๊ฐ€ ์ด๋ฏธ ์ด๊ฒƒ์„ ์ง€์›ํ•œ๋‹ค๋ฉด @xster ์˜ ์›๋ž˜ ์ œ์•ˆ์œผ๋กœ ์ถฉ๋ถ„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿด ์ˆ˜๋„ ์žˆ์„ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

์กฐ๊ธˆ ๋” ํŒŒํ—ค์ณ๋ดค์Šต๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” _๋Œ€๋ถ€๋ถ„_ FLUTTER_ROOT ๋ฐ ๊ทธ ํ•˜์œ„ ๋””๋ ‰ํ† ๋ฆฌ์— ์“ธ ํ•„์š”๊ฐ€ ์—†๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

๊ทธ๋Ÿฌ๋‚˜ ์ถฉ๋Œ์„ ์ผ์œผํ‚ฌ ๊ฐ€๋Šฅ์„ฑ์ด ์žˆ๋Š” ์˜ˆ์™ธ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

์—ฌ๊ธฐ์„œ ์šฐ๋ฆฌ๊ฐ€ ๋งˆ์ฃผ์น˜๋Š” shlock์€ ํ™•์‹คํžˆ ํ•˜๋‚˜์ž…๋‹ˆ๋‹ค.
ํ”Œ๋Ÿฌํ„ฐ ์—…๊ทธ๋ ˆ์ด๋“œ ์ž ๊ธˆ ์€ ๋˜ ๋‹ค๋ฅธ ๊ฒƒ์ž…๋‹ˆ๋‹ค.
๊ณจ๋“  ํŒŒ์ผ์— ๋Œ€ํ•œ ์ž ๊ธˆ ์€ ๋˜ ๋‹ค๋ฅธ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๋˜ํ•œ ํ”Œ๋Ÿฌํ„ฐ ๋ฃจํŠธ pub ์บ์‹œ์— ๋Œ€ํ•œ ์„ ํ˜ธ๋„ ๊ฐ€ ์˜์‹ฌ์Šค๋Ÿฌ์›Œ ๋ณด์ž…๋‹ˆ๋‹ค. pub์ด ์ด ๊ฒฝ์šฐ๋ฅผ ์ฒ˜๋ฆฌํ•˜๋„๋ก ์ฝ”๋”ฉ๋˜์ง€ ์•Š๋Š” ํ•œ ๊ฐœ๋ฐœ์ž๊ฐ€ ๋‹ค๋ฅธ ํŒจํ‚ค์ง€๋ฅผ ์‚ฌ์šฉํ•˜๋ ค๋Š” ๊ฒฝ์šฐ์—๋„ ์ž‘๋™ํ•˜์ง€ ์•Š์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์ด ๋งŽ์€ ์ž‘์€ ๋ฌธ์ œ๋ฅผ ์ฆ‰์‹œ ๋ฐœ๊ฒฌํ–ˆ๋‹ค๋Š” ์ ์„ ๊ฐ์•ˆํ•  ๋•Œ ์ด ๋ฌธ์ œ๋ฅผ ์ž˜ ํ•ด๊ฒฐํ•˜๋ ค๋ฉด ์ฝ๊ธฐ ์ „์šฉ FLUTTER_ROOT๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์‹คํ–‰ ์ค‘์ธ ํ†ตํ•ฉ ํ…Œ์ŠคํŠธ๋ฅผ ์ถ”๊ฐ€ํ•˜๊ณ  ์ด์™€ ๊ฐ™์€ ์ž‘์€ ์ผํšŒ์„ฑ์„ ์ถ”์ ํ•ด์•ผ ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค. Flutter ๊ฐœ๋ฐœ์ž๊ฐ€ ์‹ค์ˆ˜๋กœ ์ด์™€ ๊ฐ™์€ ๊ฒƒ์„ ๋„์ž…ํ•˜๋Š” ๊ฒƒ์ด ์ •๋ง ์‰ฝ๊ธฐ ๋•Œ๋ฌธ์— ์ด๊ฒƒ์ด ๋‹ค์‹œ ์ž˜๋ฆฌ์ง€ ์•Š๋„๋ก ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์ฝ๊ธฐ ์ „์šฉ ๋ฃจํŠธ๋กœ ํ…Œ์ŠคํŠธํ•  ๋•Œ +1

์ด์— ๋Œ€ํ•œ ์—…๋ฐ์ดํŠธ๊ฐ€ ์žˆ์Šต๋‹ˆ๊นŒ?

์ด๊ฒƒ์€ ํ˜„์žฌ ์šฐ๋ฆฌ๊ฐ€ ๊ณ„ํšํ•˜๊ณ  ์žˆ๋Š” ๊ฒƒ์€ ์•„๋‹ˆ์ง€๋งŒ ๋ˆ„๊ตฐ๊ฐ€๊ฐ€ ์ด ์ž‘์—…์„ ํ•˜๊ณ  ์‹ถ์–ดํ•œ๋‹ค๋ฉด ์šฐ๋ฆฌ๋Š” ์ด ์ž‘์—…์„ ์ง€์›ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋‚˜๋Š” ๊ทธ๊ฒƒ์ด ์–ด๋–ค ๋ฐฉ์‹์œผ๋กœ๋“  homebrew์— ๊ฒŒ์‹œํ•˜๊ธฐ ์œ„ํ•ด ์ง€์†์ ์ธ ํ†ตํ•ฉ ์Šคํฌ๋ฆฝํŠธ์™€ ํ†ตํ•ฉํ•˜๊ฑฐ๋‚˜, Flutter์™€ ํ†ตํ•ฉํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์•Œ๊ณ  ์žˆ๋Š” ๋ถ€ํŠธ์ŠคํŠธ๋žฉ ์Šคํฌ๋ฆฝํŠธ๋ฅผ ๋งŒ๋“ค๊ณ  ์œ ์ง€ ๊ด€๋ฆฌํ•˜๋Š” ๊ฒƒ๊ณผ ๊ด€๋ จ์ด ์žˆ์„ ๊ฒƒ์ด๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ๊ทธ๊ฒƒ์„ ๊ณ ์น  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค). ์ด ์ž‘์—…์— ๊ด€์‹ฌ์ด ์žˆ์œผ์‹œ๋ฉด ์ฃผ์ €ํ•˜์ง€ ๋ง๊ณ  ์ €์—๊ฒŒ ์—ฐ๋ฝํ•ด ์ฃผ์‹ญ์‹œ์˜ค.

๋‚˜๋Š” ์ด ๋ฒ„๊ทธ๋ฅผ ํŠนํžˆ homebrew์— ๋Œ€ํ•ด ๋ณ€๊ฒฝํ–ˆ์Šต๋‹ˆ๋‹ค. apt-get์— ๋Œ€ํ•ด ๊ฐ™์€ ๊ฒƒ์— ๊ด€์‹ฌ์ด ์žˆ๋‹ค๋ฉด ๋ณ„๋„์˜ ๋ฒ„๊ทธ๋ฅผ ์ œ์ถœํ•˜์‹ญ์‹œ์˜ค(์œ„์˜ ์„ค๋ช…์ด ์ด์— ๋™์ผํ•˜๊ฒŒ ์ ์šฉ๋จ).

Mac OS์šฉ ํƒญ ์ €์žฅ์†Œ๋ฅผ ๋งŒ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค. (https://github.com/eclewlow/homebrew-formulas)

๊ทธ๋ž˜๋„ ํ”Œ๋Ÿฌํ„ฐ๋ฅผ ์„ค์น˜ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.
brew install eclewlow/formulas/flutter

์—ฌ์ „ํžˆ IOS ๋ฐ Android ๊ฐœ๋ฐœ์ž ๋„๊ตฌ๋ฅผ ์ง์ ‘ ๋‹ค์šด๋กœ๋“œํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

ํ•˜์ง€๋งŒ 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 ๋ฒ„์ „์ด ๋‚˜์™”์œผ๋‹ˆ ๊ณต์‹์„ ๋ณผ ์ˆ˜ ์žˆ์—ˆ์œผ๋ฉด ์ข‹๊ฒ ์Šต๋‹ˆ๋‹ค๐Ÿ˜„.

ํ”Œ๋Ÿฌํ„ฐ 1.0 ๋ฒ„์ „์ด ๋‚˜์™”์œผ๋‹ˆ ๊ณต์‹์„ ๋ณผ ์ˆ˜ ์žˆ์—ˆ์œผ๋ฉด ์ข‹๊ฒ ์Šต๋‹ˆ๋‹ค๐Ÿ˜„.

๊ทธ๊ฒƒ๋„ ๊ธฐ๋Œ€๋ฉ๋‹ˆ๋‹ค.

@eclewlow 1.0์œผ๋กœ ์—…๋ฐ์ดํŠธํ•˜์„ธ์š”

์ฃ„์†กํ•ฉ๋‹ˆ๋‹ค. ์ €๋Š” ํฌ๋ฃจ์ฆˆ๋ฅผ ํƒ€๊ณ  ์žˆ๋Š”๋ฐ ์œ„์„ฑ ์ธํ„ฐ๋„ท์ด ๋”์ฐํ•ฉ๋‹ˆ๋‹ค.

10์ผ์— ๋Œ์•„์™€์„œ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋ˆ„๊ตฐ๊ฐ€ ์Šค์Šค๋กœ ํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด ์ €์žฅ์†Œ๋ฅผ ๋งŒ๋“ค๋ฉด ๋ฉ๋‹ˆ๋‹ค.

๋ฏธ๋ฆฌ ์ปดํŒŒ์ผ๋œ ํŒจํ‚ค์ง€๋ฅผ ๋‹ค์šด๋กœ๋“œํ•˜๋Š” ๋Œ€์‹  git์—์„œ ์‹ค์ œ๋กœ Flutter๋ฅผ ํ™•์ธํ•˜๋„๋ก ๊ณต์‹์„ ๋ณ€๊ฒฝํ–ˆ์Šต๋‹ˆ๋‹ค.

๊ทธ๋Ÿฌ๋‚˜ ์ €์žฅ์†Œ์—์„œ ์ตœ์‹  ๋ฒ„์ „ ํƒœ๊ทธ๋ฅผ ๊ฐ€์ ธ์˜ค๋Š” ๋ฐฉ๋ฒ•์„ ์ฐพ์ง€ ๋ชปํ–ˆ์Šต๋‹ˆ๋‹ค.

๊ณต์‹์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

ํด๋ž˜์Šค Flutter < ์ˆ˜์‹
desc "๊ธฐ๋ก์ ์ธ ์‹œ๊ฐ„ ๋‚ด์— ์•„๋ฆ„๋‹ค์šด ๋„ค์ดํ‹ฐ๋ธŒ ์•ฑ ๋นŒ๋“œ"
ํ™ˆํŽ˜์ด์ง€ " https://flutter.io/ "
๋ฒ„์ „ "1.0.0"
URL " https://github.com/flutter/flutter.git "
sha256 "6e3ba2da94fb150d2cb8e0596eeb92c86e5e437e91a5f39f211bd4b21d0b24f8"

๋ณ‘: ๋ถˆํ•„์š”

๋ฐํ”„ ์„ค์น˜
์‹œ์Šคํ…œ "git", "ํŽ˜์น˜", "--ํƒœ๊ทธ"
# ์ฒดํฌ์•„์›ƒ ์ตœ์‹  ํƒœ๊ทธ, ์ด๋Ÿฐ ๊ฒƒ?
# git checkout $(git ์„ค๋ช… --abbrev=0 --tags)
# ๋‹ค์Œ ์ค„ ๋Œ€์‹  ์‚ฌ์šฉํ•˜์‹ญ์‹œ์˜ค.
์‹œ์Šคํ…œ "git", "์ฒดํฌ์•„์›ƒ", "tags/v1.0.0"
์‹œ์Šคํ…œ "./bin/flutter"
allfiles = File.join(๋นŒ๋“œ ๊ฒฝ๋กœ, " *", "{ ,.*}")
mv Dir.glob(๋ชจ๋“  ํŒŒ์ผ), Dir.glob(์ ‘๋‘์‚ฌ), :force => true

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

๋

def post_install
rm File.join(HOMEBREW_PREFIX, "bin", "flutter.bat")
chmod_R "+rwx", File.join(์ ‘๋‘์‚ฌ, "bin"), :verbose => true

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

๋

ํ…Œ์ŠคํŠธ
์‹œ์Šคํ…œ "๊ฑฐ์ง“"
๋
๋

2018๋…„ 12์›” 6์ผ ์˜ค์ „ 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/AfVSYcUOrJtVDISTEwKF4pRcsO5ZPLvRhga ์Šค๋ ˆ๋“œ๋ฅผ ์Œ์†Œ๊ฑฐ

๐Ÿšถ๋„ ๊ธฐ๋Œ€ํ•ด์ฃผ์„ธ์š”๐Ÿšถ

๋•Œ๋ฌธ์— android-sdk ๋‚˜๋Š” ๊ทธ๊ฒƒ์ด ๋” ๋‚˜์„ ์ƒ๊ฐ ์บ์Šค ํฌ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค flutter ๋˜ํ•œ ํ†ต๋กœ ์‚ฌ์šฉํ•  ์ˆ˜. ๊ทธ๋ž˜์„œ ์ €๋Š” flutter ํ†ต์„ ์œ„ํ•ด ํ™ˆ๋ธŒ๋ฅ˜ ํƒญ์„ ํ–ˆ์Šต๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์—์„œ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ฒ˜์Œ์—๋Š” ๊ฐ„๋‹จํ•œ ์ˆ˜์‹์„ ๋งŒ๋“ค๋ ค๊ณ  ํ–ˆ์ง€๋งŒ ์ž์ž‘ ์ˆ˜์‹์„ ๊ฐœ๋ฐœํ•œ ๊ฒฝํ—˜์ด ์ „ํ˜€ ์—†๊ธฐ ๋•Œ๋ฌธ์— ๋น„์ฐธํ•˜๊ฒŒ ์‹คํŒจํ–ˆ์Šต๋‹ˆ๋‹ค.

๋งŒ์•ฝ ๋‹น์‹ ์ด ์ด๊ฒƒ์„ ์›ํ•œ๋‹ค๋ฉด, ๋‹น์‹ ์ด ์‹ค์ œ๋กœ ํ•˜๊ณ  ์‹ถ์€ ๊ฒƒ์„ ๋ช…ํ™•ํžˆ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

์˜ˆ๋ฅผ ๋“ค์–ด brew install flutter ๋ฅผ ์‹คํ–‰ํ•œ ํ›„ flutter channel beta ๋Š” ๋ฌด์—‡์„ ํ•ด์•ผ ํ•ฉ๋‹ˆ๊นŒ? ๋กœ์ปฌ flutter ์„ค์น˜์—์„œ flutter ๋ณ€๊ฒฝ ์‚ฌํ•ญ์— ๋Œ€ํ•œ PR์„ ์ œ์ถœํ•  ์ˆ˜ ์žˆ๊ธฐ๋ฅผ ์›ํ•˜์‹ญ๋‹ˆ๊นŒ? Android SDK ๋˜๋Š” Xcode๋ฅผ ์„ค์น˜ํ•˜์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ? ์˜ˆ์ œ ๋””๋ ‰ํ† ๋ฆฌ์—์„œ flutter run ๋ฅผ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๊ธฐ๋ฅผ ์›ํ•˜์‹ญ๋‹ˆ๊นŒ?

์ €๋Š” ํ™ˆ๋ธŒ๋ฅ˜ ์‚ฌ์šฉ์ž์ด์ง€๋งŒ ํ™ˆ๋ธŒ๋ฅ˜ ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ์ž‘์„ฑํ•œ ์ ์ด ์—†์Šต๋‹ˆ๋‹ค. ๋‹ค์Œ์€ ํ•œ ์‚ฌ๋žŒ์˜ ์˜๊ฒฌ์ž…๋‹ˆ๋‹ค.

brew install flutter ๋ฅผ ์‹คํ–‰ํ•œ ํ›„ flutter channel beta ๋Š” ๋ฌด์—‡์„ ํ•ด์•ผ ํ•ฉ๋‹ˆ๊นŒ?

๋ฒ ํƒ€ ์ฑ„๋„๋กœ ์ „ํ™˜ํ•ฉ๋‹ˆ๋‹ค.

๋กœ์ปฌ flutter ์„ค์น˜์—์„œ flutter ๋ณ€๊ฒฝ ์‚ฌํ•ญ์— ๋Œ€ํ•œ PR์„ ์ œ์ถœํ•  ์ˆ˜ ์žˆ๊ธฐ๋ฅผ ์›ํ•˜์‹ญ๋‹ˆ๊นŒ?

์•„๋‹ˆ์š”. ์ด ์‚ฌ์šฉ ์‚ฌ๋ก€์—์„œ Homebrew๋Š” ํŒจํ‚ค์ง€๋ฅผ ์‚ฌ์šฉ ํ•˜๊ธฐ ์œ„ํ•œ ๊ฒƒ์ด๋ฉฐ ๋ฐ˜๋“œ์‹œ ํ•ด๋‹น ํŒจํ‚ค์ง€๋ฅผ ์ˆ˜์ •ํ•  ํ•„์š”๋Š” ์—†์Šต๋‹ˆ๋‹ค.

Android SDK ๋˜๋Š” Xcode๋ฅผ ์„ค์น˜ํ•˜์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ?

๋ชจ๋“  ์ข…์†์„ฑ์„ ์„ค์น˜ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์˜ˆ์ œ ๋””๋ ‰ํ† ๋ฆฌ์—์„œ ํ”Œ๋Ÿฌํ„ฐ๋ฅผ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๊ธฐ๋ฅผ ์›ํ•˜์‹ญ๋‹ˆ๊นŒ?

์˜ˆ. brew install flutter ๋ฅผ ์‹คํ–‰ํ•˜๋ฉด flutter ๊ฐ€ ๊ฒฝ๋กœ์— ์žˆ๊ณ  Flutter ํŠœํ† ๋ฆฌ์–ผ์—์„œ ์„ค๋ช…ํ•œ ๊ฒƒ๊ณผ ๊ฐ™์€ ๋ฐฉ์‹์œผ๋กœ ์„ค์น˜ํ•œ ๊ฒƒ์ฒ˜๋Ÿผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

ํ™•์ธ. Flutter์šฉ ํ™ˆ๋ธŒ๋ฅ˜ ๊ณต์‹์„ ์—…๋ฐ์ดํŠธํ–ˆ์Šต๋‹ˆ๋‹ค.

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

Git์„ ํ†ตํ•ด Flutter ์ €์žฅ์†Œ(https://github.com/flutter/flutter)์— ๊ฐ€์žฅ ์ตœ๊ทผ์— ํƒœ๊ทธ๋œ Flutter ๋ฒ„์ „์„ ์„ค์น˜ํ•ฉ๋‹ˆ๋‹ค.
(ํ˜„์žฌ v1.1.1์ด์ง€๋งŒ ์„ค์น˜์‹œ ์ตœ์‹  ๋ฒ„์ „์„ ์ž๋™ ๊ฐ์ง€ํ•ฉ๋‹ˆ๋‹ค)

์—…๊ทธ๋ ˆ์ด๋“œํ•˜๋ ค๋ฉด brew๋ฅผ ํ†ตํ•ด flutter๋ฅผ ๋‹ค์‹œ ์„ค์น˜ํ•ด์•ผ ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

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

Git์„ ํ†ตํ•ด Flutter ์ €์žฅ์†Œ(https://github.com/flutter/flutter)์— ์ตœ์‹  ์•ˆ์ •์ ์ธ Flutter ๋ฒ„์ „(v1.0.0)์„ ์„ค์น˜ํ•ฉ๋‹ˆ๋‹ค.

brew install flutter
brew upgrade flutter

๊ฐ„๋‹จํ•œ ์˜ˆ๋ฅผ ๋“ค์ž๋ฉด ๋ถ€์กฑํ•œ ๋ถ€๋ถ„์ด ๋งŽ์Šต๋‹ˆ๋‹ค. ์ˆ˜์ •ํ•ด ์ฃผ์‹œ๋ฉด ๊ฐ์‚ฌํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

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

์ด๊ฒƒ์€ ์ฐฝ์‚ด๋กœ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. ์„ค์น˜ ์ „ ๋ฉ”์‹œ์ง€๋‚˜ ์„ค์น˜ ์‹œ ์˜ค๋žœ ๊ธฐ๋‹ค๋ฆผ์— ๋Œ€ํ•ด ์ €์ฒ˜๋Ÿผ ํ˜ผ๋™ํ•˜์ง€ ๋งˆ์‹ญ์‹œ์˜ค. ์ด๋Š” ์ •์ƒ์ด๋ฉฐ ๋ฉ”์‹œ์ง€๋Š” ์ค‘๊ตญ์— ์žˆ๊ฑฐ๋‚˜ flutter doctor ๋ฅผ ์‹คํ–‰ํ•˜๋Š” ๋ฐ ๋ฌธ์ œ๊ฐ€ ์žˆ๋Š” ๊ฒฝ์šฐ์—๋งŒ ์ ์šฉ๋ฉ๋‹ˆ๋‹ค. ์„ค์น˜ ํ›„.
๊ฐ์‚ฌ ํ•ด์š” :)

๊ด€๋ จ #9401

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

@jesusvallez ๋Š” ํƒญ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค(์˜ˆ brew tap MiderWong/flutter . ์ด๊ฒƒ์€ https://github.com/flutter/flutter/issues/14050#issuecomment -449447441์ด ๋งํ•˜์ง€ ์•Š์•˜์ง€๋งŒ ์˜๋ฏธํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค. https://github.com/miderwong/homebrew-flutter๋ฅผ ๋”ฐ๋ฅด์‹ญ์‹œ์˜ค.

Flutter์— ๋Œ€ํ•œ ์ž์ž‘ ์ˆ˜์‹์„ ์ž‘์„ฑํ–ˆ์Šต๋‹ˆ๋‹ค.

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

Git์„ ํ†ตํ•ด Flutter ์ €์žฅ์†Œ(https://github.com/flutter/flutter)์— ์ตœ์‹  ์•ˆ์ •์ ์ธ Flutter ๋ฒ„์ „(v1.0.0)์„ ์„ค์น˜ํ•ฉ๋‹ˆ๋‹ค.

brew install flutter
brew upgrade flutter

๊ฐ„๋‹จํ•œ ์˜ˆ๋ฅผ ๋“ค์ž๋ฉด ๋ถ€์กฑํ•œ ๋ถ€๋ถ„์ด ๋งŽ์Šต๋‹ˆ๋‹ค. ์ˆ˜์ •ํ•ด ์ฃผ์‹œ๋ฉด ๊ฐ์‚ฌํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

์Šคํฌ๋ฆฝํŠธ๊ฐ€ ์—…๋ฐ์ดํŠธ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋‹ค์Œ ๋ช…๋ น์œผ๋กœ git ์ €์žฅ์†Œ๋ฅผ ์—…๋ฐ์ดํŠธํ•˜์‹ญ์‹œ์˜ค.

brew untap MiderWong/flutter
brew tap MiderWong/flutter

๊ทธ๋ฆฌ๊ณ  README์˜ ์ง€์นจ์„ ๋”ฐ๋ฅด์‹ญ์‹œ์˜ค.
Flutter-homebrew-README

@MiderWong
๊ตฌํ•˜๋Š”

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

@TuxujPes ๋‹ค์Œ ์„ ์‹คํ–‰ํ•˜์—ฌ ์„ค์น˜ํ•  ์ˆ˜ ์žˆ๋Š” flutter ์„ค์น˜์šฉ ์บ์Šคํฌ๋ฅผ ๋งŒ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค.

brew tap probablykasper/tap
brew cask install flutter
flutter upgrade

https://github.com/probablykasper/homebrew-tap/blob/master/Casks/flutter.rb
๋‹จ์ˆœํžˆ macOS flutter ์„ค์น˜ zip์„ ๋‹ค์šด๋กœ๋“œํ•˜๊ณ  flutter ์‹คํ–‰ ํŒŒ์ผ์„ ์—ฐ๊ฒฐํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ ๋‹ค์Œ ๋‚˜์ค‘์— flutter doctor ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

๋”ฐ๋ผ์„œ ์‚ฌ์šฉ์ž์˜ ๋งž์ถค ํƒญ์—์„œ ์„ค์น˜ํ•˜๋Š” ๋Œ€์‹  @SpectralKH ๋˜๋Š” @MiderWong ๋˜๋Š” @eclewlow๊ฐ€ ๋œ ๋‹ค์Œ ๋‹ค์Œ์„ ์‹ ๋ขฐํ•˜๊ณ  ํฌ๋งํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

  1. ํ•ด๋‹น ์‚ฌ์šฉ์ž์˜ ํƒญ์€ ์ž˜ ์ง€์›๋˜๊ณ  ํ•„์š”ํ•  ๋•Œ ์—…๋ฐ์ดํŠธ๋˜๋Š” "๊ณต์‹" ํƒญ์ด ๋ฉ๋‹ˆ๋‹ค.
  2. ๊ทธ ์‚ฌ์šฉ์ž๋Š” ๋‚ด ์ปดํ“จํ„ฐ์— ์•…์„ฑ ์†Œํ”„ํŠธ์›จ์–ด๋ฅผ ์ฃผ์ž…ํ•˜์ง€ ์•Š์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๋‚ด ์ œ์•ˆ์€ Dart์— dart-lang/dart ๋ผ๋Š” ์–‘์กฐ ํƒญ์ด ์žˆ๊ณ  ๊ณต์‹ Dart ๋ฌธ์„œ์—์„œ ์ฐธ์กฐ๋˜๋Š” Dart๊ฐ€ ํ•œ ๊ฒƒ๊ณผ ๋™์ผ ํ•˜๊ฒŒ ์ˆ˜ํ–‰ ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.
์ด๊ฒƒ์€ Flutter๋ฅผ Dart์™€ ์ •๋ ฌํ•˜๊ณ (ํšจ๊ณผ์ ์œผ๋กœ ์ž๋งค ํ”„๋กœ์ ํŠธ๋ผ๊ณ  ์ƒ๊ฐํ•จ) ์ผ์„ ์ผ๊ด€๋˜๊ณ  ๋‹จ์ˆœํ•˜๊ฒŒ ์œ ์ง€ํ•ฉ๋‹ˆ๋‹ค.
(์ƒค์›Œ ์ƒ๊ฐ: Flutter๋Š” Dart์˜ ์ž๋งค ํ”„๋กœ์ ํŠธ์ด๊ณ  Flutter์—๋Š” Dart๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. dart-lang ํƒญ์—์„œ ๋‹ค๋ฅธ ๊ณต์‹์œผ๋กœ ๋ฒˆ๋“ค๋กœ ๋ฌถ์ง€ ์•Š๋Š” ์ด์œ ๋Š” ๋ฌด์—‡์ž…๋‹ˆ๊นŒ?)

์ œ ์งˆ๋ฌธ์€ ์–‘์กฐ๋ฅผ ํ•˜์ง€ ์•Š๋Š” ๊ฐœ๋ฐœ์ž๋กœ์„œ ์ด ํ† ๋ก ์„ ์ฒ˜์Œ ์ ‘ํ•˜๋Š” ์‚ฌ๋žŒ์ž…๋‹ˆ๋‹ค.

  1. ์ง„ํ–‰ ์ค‘์ธ๊ฐ€์š”? ๊ทธ๋ ‡๋‹ค๋ฉด ์—…๋ฐ์ดํŠธ๋Š” ๋ฌด์—‡์ž…๋‹ˆ๊นŒ? ์ด๊ฒƒ์ด 2018๋…„ 1์›”๋ถ€ํ„ฐ ๊ณต๊ฐœ๋œ ๋ฌธ์ œ์˜€๊ธฐ ๋•Œ๋ฌธ์—?
  2. ์•„์ง ์‹œ์ž‘ํ•˜์ง€ ์•Š์•˜๋‹ค๋ฉด ์ด๋ฅผ ์™„๋ฃŒํ•˜๊ธฐ ์œ„ํ•ด ์ปค๋ฎค๋‹ˆํ‹ฐ์—์„œ ๋ฌด์—‡์„ ํ•ด์•ผ ํ•ฉ๋‹ˆ๊นŒ?

@Harmelodic ๋งค์šฐ ๊ณต์ •ํ•œ ์šฐ๋ ค์ž…๋‹ˆ๋‹ค. ๊ทธ๋“ค์€ ์ตœ์†Œํ•œ ๊ณต์‹์ ์ธ ์–‘์กฐ ์ˆ ํ†ต์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ œ ๊ฒƒ์€ ๋ง ๊ทธ๋Œ€๋กœ 10์ค„์˜ ์ฝ”๋“œ์ž…๋‹ˆ๋‹ค.

6000๊ฐœ ์ด์ƒ์˜ ๊ณต๊ฐœ ๋ฌธ์ œ ์ค‘ ๐Ÿ‘ ๋ฐ˜์‘์œผ๋กœ ์ •๋ ฌํ•  ๋•Œ ๋ชฉ๋ก์—์„œ 4๋ฒˆ์งธ๋ผ๋Š” ์ ๋„ ์ฃผ๋ชฉํ•  ๊ฐ€์น˜๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์ปค๋ฎค๋‹ˆํ‹ฐ์˜ ๋…ธ๋ ฅ์— ๊ฐ์‚ฌํ•˜์ง€๋งŒ ๊ฐ€๋Šฅํ•˜๋ฉด ๊ณต์‹์ ์œผ๋กœ ์ง€์›๋˜๋Š” ๊ฒƒ์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์„ ์„ ํ˜ธํ•˜๋ฉฐ, ์ € ํ˜ผ์ž๋งŒ์ด ์•„๋‹Œ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ์ตœ์šฐ์„ ์œผ๋กœ ํ•ด์ฃผ์„ธ์š”๐Ÿ™

๋ชจ๋“  ์—…๋ฐ์ดํŠธ?

๋ˆ„๊ตฌ๋“ ์ง€ ์ด๊ฒƒ์„ ์†Œ์œ ํ•˜๋Š” ๋ฐ ๊ด€์‹ฌ์ด ์žˆ๋‹ค๋ฉด Flutter ๋นŒ๋“œ ์ธํ”„๋ผ์—์„œ ์„ค์ •ํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๋ˆ„๊ตฌ๋“ ์ง€ ์ด๊ฒƒ์„ ์†Œ์œ ํ•˜๋Š” ๋ฐ ๊ด€์‹ฌ์ด ์žˆ๋‹ค๋ฉด Flutter ๋นŒ๋“œ ์ธํ”„๋ผ์—์„œ ์„ค์ •ํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์ด ์ž‘์—…์„ ํ•˜๋Š” ์‚ฌ๋žŒ์ด ์žˆ์Šต๋‹ˆ๊นŒ?

Flutter์— ๋Œ€ํ•œ ์ž์ž‘ ์ˆ˜์‹์„ ์ž‘์„ฑํ–ˆ์Šต๋‹ˆ๋‹ค.

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

Git์„ ํ†ตํ•ด Flutter ์ €์žฅ์†Œ(https://github.com/flutter/flutter)์— ์ตœ์‹  ์•ˆ์ •์ ์ธ Flutter ๋ฒ„์ „(v1.0.0)์„ ์„ค์น˜ํ•ฉ๋‹ˆ๋‹ค.

brew install flutter
brew upgrade flutter

๊ฐ„๋‹จํ•œ ์˜ˆ๋ฅผ ๋“ค์ž๋ฉด ๋ถ€์กฑํ•œ ๋ถ€๋ถ„์ด ๋งŽ์Šต๋‹ˆ๋‹ค. ์ˆ˜์ •ํ•ด ์ฃผ์‹œ๋ฉด ๊ฐ์‚ฌํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

๊ทธ๊ฒƒ์€ ์ž˜ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.
ํ•˜์ง€๋งŒ ์›น์šฉ Flutter๋ฅผ ์‚ฌ์šฉํ•˜๋ ค๋ฉด MASTER ๋ธŒ๋žœ์น˜(dev/stable ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ)๋„ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค!

์ด๊ฒƒ์€ ํ”„๋กœ์ ํŠธ์˜ ์‰ฌ์šด ์Šน๋ฆฌ์ฒ˜๋Ÿผ ๋ณด์ž…๋‹ˆ๋‹ค. ์กฐ๊ธˆ๋งŒ ์‹œ๊ฐ„์„ ๋‚ด์„œ ๋ณด๋‚ด์ฃผ์„ธ์š”!

์ด๊ฒƒ์€ ์šฐ๋ฆฌ๊ฐ€ ๋„๊ตฌ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ์‹์— ๋งŽ์€ ๋ณ€ํ™”๋ฅผ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ์–‘์กฐ ์„ธ๊ณ„์—์„œ Flutter๋Š” ์ž์ฒด ์—…๋ฐ์ดํŠธ๋ฅผ ์ œ์–ดํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ Brew์˜ ๋ ˆ์ด์•„์›ƒ์ด๋‚˜ ์บ์‹ฑ์„ ์œ„ํ•œ ์“ฐ๊ธฐ ๊ฐ€๋Šฅํ•œ ์œ„์น˜๋ฅผ ์ฐพ๋Š” ๋ฐฉ๋ฒ•์„ ์•Œ๊ณ  ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ @zanderso ์˜ ๊ด€์ ์— ์†ํ•˜๋ฉฐ ์•„๋งˆ๋„ ์ข‹์€ ์ž‘์—…์ด ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

@eseidelGoogle ๊ณต์‹ ํ†ต์„ ๊ฐ–๋Š” ๊ฒƒ์€ ์–ด๋–ป์Šต๋‹ˆ๊นŒ?

@probablykasper ๊ทธ๊ฒƒ์€ ์‰ฌ์šด ๋ถ€๋ถ„์ž…๋‹ˆ๋‹ค. :) ์–ด๋ ค์šด ๋ถ€๋ถ„์€ futter ๋„๊ตฌ๊ฐ€ ์ผ๋ฐ˜ ์บ์Šคํฌ ์„ค์น˜ ์œ„์น˜/ํ”„๋กœ์„ธ์Šค ๋“ฑ์˜ ์ผ๋ถ€๋กœ ์„ค์น˜๋  ๋•Œ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์ž‘๋™ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์•Œ๊ณ  ์žˆ๋Š”์ง€ ํ™•์ธํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์–ด๋ ค์šด ๋ถ€๋ถ„์€ futter ๋„๊ตฌ๊ฐ€ ์ผ๋ฐ˜ ์บ์Šคํฌ ์„ค์น˜ ์œ„์น˜/ํ”„๋กœ์„ธ์Šค ๋“ฑ์˜ ์ผ๋ถ€๋กœ ์„ค์น˜๋  ๋•Œ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์ž‘๋™ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์•Œ๊ณ  ์žˆ๋Š”์ง€ ํ™•์ธํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๋งž์Šต๋‹ˆ๋‹ค. flutter ๋„๊ตฌ์— ์„ค์น˜, ์—…๋ฐ์ดํŠธ ๋ฐ ๋” ๋‹ค์–‘ํ•œ ํŒŒ์ผ ์‹œ์Šคํ…œ ๊ถŒํ•œ ๋ฐฐ์—ด์„ ์ดํ•ดํ•˜๋„๋ก ๊ฐ€๋ฅด์น˜๋Š” ๊ฒƒ์€ ๊ฝค ์ข‹์€ ์ž‘์—…์ž…๋‹ˆ๋‹ค.

๋˜ํ•œ ์ด๊ฒƒ์€ ํ•˜๋“œ ๋ธ”๋กœ์ปค๊ฐ€ ์•„๋‹ˆ์ง€๋งŒ ์‚ฌ๋žŒ๋“ค์ด Flutter์— ๊ธฐ์—ฌํ•  ์ˆ˜ ์žˆ๋Š” ๋งˆ์ฐฐ์ด ์ ์€ ๋ฐฉ๋ฒ•์„ ๊ฐ–๊ณ ์ž ํ•˜๋Š” ์šฐ๋ฆฌ์˜ ๋ฐ”๋žŒ๊ณผ ๋‹ค์†Œ ์ƒ์ถฉ๋ฉ๋‹ˆ๋‹ค. ์ด๋Š” Flutter ์ €์žฅ์†Œ ๋น„ํŠธ๊ฐ€ git์— ์˜ํ•ด ๊ด€๋ฆฌ๋˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ ๋” ๊นŒ๋‹ค๋กœ์›Œ์ง‘๋‹ˆ๋‹ค.

@probablykasper ๊ทธ๊ฒƒ์€ ์‰ฌ์šด ๋ถ€๋ถ„์ž…๋‹ˆ๋‹ค. :) ์–ด๋ ค์šด ๋ถ€๋ถ„์€ futter ๋„๊ตฌ๊ฐ€ ์ผ๋ฐ˜ ์บ์Šคํฌ ์„ค์น˜ ์œ„์น˜/ํ”„๋กœ์„ธ์Šค ๋“ฑ์˜ ์ผ๋ถ€๋กœ ์„ค์น˜๋  ๋•Œ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์ž‘๋™ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์•Œ๊ณ  ์žˆ๋Š”์ง€ ํ™•์ธํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

Homebrew Cask์—์„œ Flutter๋ฅผ ํ…Œ์ŠคํŠธํ•˜๊ณ  ์žˆ๋Š”๋ฐ ์ž˜ ์ž‘๋™ํ•˜๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. Homebrew์šฉ Formula ๋Œ€์‹  Cask ์‚ฌ์šฉ์„ ์žฌ๊ณ ํ•ด์•ผ ํ•ฉ๋‹ˆ๊นŒ?

socheatsok78/homebrew-flutter

๊ฒ€์‚ฌ ๊ฒฐ๊ณผ

flutter CLI๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋‹ค๋ฅธ ์ฑ„๋„๋กœ ์ „ํ™˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
๊ทธ๋ฆฌ๊ณ  ์„ค์น˜ ๋””๋ ‰ํ† ๋ฆฌ๋Š” Formula๋ฅผ ์‚ฌ์šฉํ•˜๋Š” Cask์˜ ๊ฒฝ์šฐ ๋งค์šฐ ๊ฐ„๋‹จํ•ฉ๋‹ˆ๋‹ค.

@soheatsok78 ์ด ์ด๊ฒƒ์„ ์‹œ๋„ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ฐ์‚ฌ ํ•ด์š”

brew cask install socheatsok78/flutter/flutter

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

๊ทธ๋Ÿฌ๋‚˜ Catolina์˜ ์ƒˆ๋กœ์šด ๋ณด์•ˆ์œผ๋กœ ์ธํ•ด Mac์—์„œ ๋ฌธ์ œ๊ฐ€ ์žˆ๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

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" "$@"

๊ทธ๋Ÿฌ๋‚˜ Catolina์˜ ์ƒˆ๋กœ์šด ๋ณด์•ˆ์œผ๋กœ ์ธํ•ด Mac์—์„œ ๋ฌธ์ œ๊ฐ€ ์žˆ๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

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" "$@"

์ €๋Š” Catalina๋ฅผ ์‚ฌ์šฉ ์ค‘์ž…๋‹ˆ๋‹ค. ์ž˜ ๋ชจ๋ฅด๊ฒ ์Šต๋‹ˆ๋‹ค. ๋‚ด๊ฐ€ ๊ฒช์—ˆ๋˜ ์œ ์ผํ•œ ๋ฌธ์ œ๋Š” idevice_id ๋กœ ์—ฌ๊ธฐ์—์„œ ์ฐพ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. #42302

๊ทธ๋Ÿฌ๋‚˜ Catolina์˜ ์ƒˆ๋กœ์šด ๋ณด์•ˆ์œผ๋กœ ์ธํ•ด Mac์—์„œ ๋ฌธ์ œ๊ฐ€ ์žˆ๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

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" "$@"

์ €๋Š” Catalina๋ฅผ ์‚ฌ์šฉ ์ค‘์ž…๋‹ˆ๋‹ค. ์ž˜ ๋ชจ๋ฅด๊ฒ ์Šต๋‹ˆ๋‹ค. ๋‚ด๊ฐ€ ๊ฒช์—ˆ๋˜ ์œ ์ผํ•œ ๋ฌธ์ œ๋Š” idevice_id ๋กœ ์—ฌ๊ธฐ์—์„œ ์ฐพ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. #42302

์‹œ์Šคํ…œ ํ™˜๊ฒฝ์„ค์ •์œผ๋กœ ์ด๋™ํ•˜์—ฌ ๋ณด์•ˆ ๋ฉ”๋‰ด๋ฅผ ์—ด๊ณ  ์ผ๋ฐ˜ ์„น์…˜์—์„œ Dart์— ๋Œ€ํ•œ ์•ก์„ธ์Šค๋ฅผ ํ—ˆ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. flutter upgrade ๋‹ค์‹œ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค. ์ปค๋„์ด ์‹คํŒจํ•˜๊ณ  ์žˆ๋‹ค๊ณ  ๋งํ•˜๋ฉด์„œ ๋‘ ๋ฒˆ์งธ๋กœ ์‹คํŒจํ–ˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐ™์€ ์ ˆ์ฐจ๋ฅผ ๋‹ค์‹œ ๋ฐ˜๋ณตํ•˜๊ณ  ์งœ์ž”!

/usr/local/Cellar/flutter์— Fluter๋ฅผ ์„ค์น˜ํ•˜๊ณ  /usr/local/bin์— ๋ฐ”์ด๋„ˆ๋ฆฌ๋ฅผ ์†Œํ”„ํŠธ๋งํฌํ•˜๋ฉด ํŠธ๋ฆญ IMHO๋ฅผ ์ˆ˜ํ–‰ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์•„์ง Catalina๋กœ ์—…๊ทธ๋ ˆ์ด๋“œํ•˜์ง€ ์•Š์•˜๊ธฐ ๋•Œ๋ฌธ์— ํ˜„์žฌ ํ™•์ธํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

์ด ๋ฌธ์ œ์— ๋Œ€ํ•œ ์—…๋ฐ์ดํŠธ๊ฐ€ ์žˆ์Šต๋‹ˆ๊นŒ?

์—ฌ์ „ํžˆ ์šฐ๋ฆฌ๋Š” ํ‘œ์ค€ ์–‘์กฐ ์ˆ˜๋—๋ฌผ๊ณผ ์บ์Šคํฌ๋ฅผ ๊ฐ–๊ธฐ๋ฅผ ํฌ๋งํ•ฉ๋‹ˆ๋‹ค. Catalina PATH ๊ตฌ์„ฑ์€ ์งœ์ฆ๋‚ฉ๋‹ˆ๋‹ค!

์ด๊ฒƒ์€ ์•„๋งˆ๋„ 2์‹œ๊ฐ„์˜ ์ž‘์—…์ด๋ฉฐ ๋งŽ์€ ์‚ฌ๋žŒ๋“ค์˜ ์‹œ๊ฐ„์„ ์ ˆ์•ฝํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ธฐ๋Œ€๋ฉ๋‹ˆ๋‹ค.

์—„์ง€์ฒ™, ๊ธฐ๋Œ€๋ฉ๋‹ˆ๋‹ค!

๋‚˜

์•ˆ๋…•ํ•˜์„ธ์š” ์—ฌ๋Ÿฌ๋ถ„, ๋ฌธ์ œ ์œ„์ƒ ์ •์ฑ…์— ๋Œ€ํ•œ ๊ฐ„๋žตํ•œ ์•Œ๋ฆผ:

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 ํ™ˆํŽ˜์ด์ง€์—์„œ ์™”๊ณ  ์„ค์น˜์˜ ๊ตฌ์‹ ํ”„๋กœ์„ธ์Šค๋ฅผ ๋ณด์•˜์„ ๋•Œ ์‹œ๋„ํ•ด ๋ณผ ์ค€๋น„๊ฐ€ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์—ฌ๊ธฐ ์™€์„œ ์ด ๋ฌธ์ œ๊ฐ€ ์‹ค์งˆ์ ์ธ ์—…๋ฐ์ดํŠธ ์—†์ด 2๋…„ ๋™์•ˆ ์—ด๋ ค ์žˆ๋Š” ๊ฒƒ์„ ๋ณด์•˜์Šต๋‹ˆ๋‹ค.

์˜ค, ๊ทธ๋Ÿผ Kotlin์œผ๋กœ.

๋‹ค๋ฅธ ๋งŽ์€ Google ์‚ฌ์ดํŠธ์™€ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ flutter.dev ์‚ฌ์ดํŠธ๊ฐ€ ํ•„ํ„ฐ๋งํ•  ์ˆ˜ ์žˆ๊ณ  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 ํ™ˆํŽ˜์ด์ง€์—์„œ ์™”๊ณ  ์„ค์น˜์˜ ๊ตฌ์‹ ํ”„๋กœ์„ธ์Šค๋ฅผ ๋ณด์•˜์„ ๋•Œ ์‹œ๋„ํ•ด ๋ณผ ์ค€๋น„๊ฐ€ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์—ฌ๊ธฐ ์™€์„œ ์ด ๋ฌธ์ œ๊ฐ€ ์‹ค์งˆ์ ์ธ ์—…๋ฐ์ดํŠธ ์—†์ด 2๋…„ ๋™์•ˆ ์—ด๋ ค ์žˆ๋Š” ๊ฒƒ์„ ๋ณด์•˜์Šต๋‹ˆ๋‹ค.

์˜ค, ๊ทธ๋Ÿผ Kotlin์œผ๋กœ.

์™œ ๊ทธ๊ฒŒ ์ฒ˜๋ฆฌ๊ฐ€ ์•ˆ๋˜์ง€...

@CAoTx Flutter์˜ ์‚ฌ์ดํŠธ์—๋Š” ๊ด‘๊ณ ๊ฐ€ ์—†์œผ๋ฉฐ, ๊ด‘๊ณ  ์ฐจ๋‹จ ํ”„๋กœ๊ทธ๋žจ์ด ์„ค์น˜๋œ ์ƒํƒœ์—์„œ ๋‹ค์šด๋กœ๋“œํ•˜๋Š” ๋ฐ ๋ฌธ์ œ๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. ๋งž์ถค ๊ด‘๊ณ  ์ฐจ๋‹จ ํ•„ํ„ฐ๊ฐ€ ๋„ˆ๋ฌด ์ œํ•œ์ ์ž…๋‹ˆ๊นŒ? ํ•„ํ„ฐ๋ฅผ ์กฐ์ •ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์•Œ๊ณ  ์‹ถ๋‹ค๋ฉด ์‚ฌ์ดํŠธ ์ž์ฒด๊ฐ€ ์˜คํ”ˆ ์†Œ์Šค ์ž…๋‹ˆ๋‹ค.

๋˜ ๋‹ค๋ฅธ ๋Œ€์•ˆ์€ ๋งˆ์Šคํ„ฐ ์ฑ„๋„์„ ์–ป๊ธฐ ์œ„ํ•ด ๋‹ค์šด๋กœ๋“œ ํŽ˜์ด์ง€ ํ•˜๋‹จ์— ์„ค๋ช…๋œ ๋Œ€๋กœ git clone ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ทธ๊ฒƒ์„ ์‚ฌ์šฉํ•˜๊ณ  ๋งˆ์Šคํ„ฐ๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š์œผ๋ ค๋ฉด flutter channel ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋‹ค๋ฅธ ์ฑ„๋„๋กœ ์ „ํ™˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ƒˆ๋กœ์šด 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์˜ git ๊ธฐ๋ฐ˜ ์„ค์น˜ ๋ฐฉ๋ฒ•์ด ์ด๋Ÿฌํ•œ ๋„๊ตฌ์™€ ํ˜ธํ™˜๋ฉ๋‹ˆ๊นŒ? ์šฐ๋ฆฌ๋Š” ์ด๋ฏธ ์ดˆ๊ธฐ ๋‹ค์šด๋กœ๋“œ๋ฅผ ์œ„ํ•ด tarball/zip์„ ์ œ๊ณตํ•˜์ง€๋งŒ ํ˜„์žฌ๋Š” ์‚ฌ์šฉ์ž๊ฐ€ git repo๋กœ flutter/flutter๋ฅผ ์„ค์น˜ํ•œ๋‹ค๊ณ  ๊ฐ€์ •ํ•ฉ๋‹ˆ๋‹ค. ํ˜ธํ™˜๋˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ git์ด ์•„๋‹Œ Flutter ๋ฐฐํฌํŒ์˜ ์ƒ์„ฑ/๋ฐฐํฌ/ํ…Œ์ŠคํŠธ๋ฅผ ์ง€์›ํ•˜๊ธฐ ์œ„ํ•ด ์ธํ”„๋ผ ์ธก๋ฉด์—์„œ ๋ช‡ ๊ฐ€์ง€ ์ค‘์š”ํ•˜์ง€ ์•Š์€ ํ”„๋กœ์„ธ์Šค ์ž‘์—…์ด ์žˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์šฐ์„  ์ˆœ์œ„์— ๋Œ€ํ•ด ๋…ผ์Ÿํ•˜๊ฒŒ ๋˜์–ด ๊ธฐ์ฉ๋‹ˆ๋‹ค(์•„๋งˆ๋„ ๋‹ค๋ฅธ ํฌ๋Ÿผ์—์„œ). ํ•˜์ง€๋งŒ ์ด ๋ฒ„๊ทธ๋ณด๋‹ค ์šฐ์„  ์ˆœ์œ„๊ฐ€ ๋” ๋†’์€ ๋ ˆ์ด๋ธ”์ด ์ง€์ •๋œ ๋‹ค๋ฅธ ๋ฒ„๊ทธ๋ฅผ ์‚ดํŽด๋ณด๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค. Flutter์—๋Š” ๋งŽ์€ ์‚ฌ์šฉ์ž๊ฐ€ ์žˆ์œผ๋ฉฐ ๋งŽ์€ (๋•Œ๋กœ๋Š” ๊ธด๊ธ‰ํ•œ) ์š”์ฒญ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ์šฐ๋ฆฌ/์‚ฌ์šฉ์ž์˜ ๋ชฉํ‘œ์— ๊ฐ€์žฅ ํฐ ์˜ํ–ฅ์„ ๋ฏธ์น˜๋Š” ์ˆœ์„œ๋Œ€๋กœ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋ ค๊ณ  ๋…ธ๋ ฅํ•ฉ๋‹ˆ๋‹ค.

@eseidelGoogle ์„ค๋ช…๊ณผ ์ „๋žต ์Šค์ผ€์น˜์— ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค. ๋งค์šฐ ๊ฐ์‚ฌํ•˜๊ณ  ํฐ ํž˜์ด ๋ฉ๋‹ˆ๋‹ค!

์—…๋ฐ์ดํŠธ์— ๋Œ€ํ•œ ์งˆ๋ฌธ์— ๋‹ตํ•˜๊ธฐ ์œ„ํ•ด ์ผ๋ฐ˜ flutter update ๋ช…๋ น์„ git ์„ค์น˜๊ฐ€ ์•„๋‹Œ ๊ฒฝ์šฐ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๋‹ค๋ฉด ๊ทธ๊ฒƒ์œผ๋กœ ์ถฉ๋ถ„ํ•˜๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๊ฒƒ์„ ํ•  ์ˆ˜์žˆ๋Š” ๋ฐฉ๋ฒ•์ด ์žˆ์Šต๋‹ˆ๊นŒ? ์ด์ƒ์ ์œผ๋กœ๋Š” ๋‹ค๋ฅธ ๋ฐฐํฌ๋ณธ์ด ์•„๋‹ˆ๋ผ ์ฝ”๋“œ๋ฅผ if ํ™•์ธํ•˜์—ฌ ํ”Œ๋Ÿฌํ„ฐ ๋ฐ”์ด๋„ˆ๋ฆฌ์˜ ์œ„์น˜์— .git ํด๋”๊ฐ€ ์žˆ๋Š”์ง€ ํ™•์ธํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ด๊ฒŒ ๊ฐ€๋Šฅํ•ด?

์ˆ˜์‹์€ git ์ €์žฅ์†Œ๋ฅผ ๋‹ค์šด๋กœ๋“œํ•˜๊ณ  ์‚ฌ์šฉ์ž์— ๋Œ€ํ•œ ๋ช…๋ น์„ ์‹คํ–‰ํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ์ˆ˜์‹์€ ๋ฐ”์ด๋„ˆ๋ฆฌ๋งŒ ์„ค์น˜ํ•  ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.

์ฐธ๊ณ ๋กœ Rustup์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

Rust ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด์˜ ๋„๊ตฌ ์ฒด์ธ ๊ด€๋ฆฌ์ž์ธ rustup ์€ ์„ค์น˜ ์Šคํฌ๋ฆฝํŠธ(๋…๋ฆฝ ์‹คํ–‰ํ˜• ์„ค์น˜)๋ฅผ ์‹คํ–‰ํ•˜์—ฌ ์„ค์น˜ํ•˜๊ฑฐ๋‚˜ OS ํŒจํ‚ค์ง€ ๊ด€๋ฆฌ์ž์—์„œ ์„ค์น˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Rustup์„ ์—…๊ทธ๋ ˆ์ด๋“œํ•˜๋ ค๋ฉด ๋…๋ฆฝ ์‹คํ–‰ํ˜• ์„ค์น˜์˜ ๊ฒฝ์šฐ rustup self update ๋ฅผ ์‹คํ–‰ํ•˜๊ฑฐ๋‚˜ OS ํŒจํ‚ค์ง€ ๊ด€๋ฆฌ์ž๋ฅผ ํ†ตํ•ด Rustup์„ ์„ค์น˜ํ•œ ๊ฒฝ์šฐ OS ํŒจํ‚ค์ง€ ๊ด€๋ฆฌ์ž๋ฅผ ํ†ตํ•ด ์—…๊ทธ๋ ˆ์ด๋“œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Rustup์ด OS ํŒจํ‚ค์ง€ ๊ด€๋ฆฌ์ž๋ฅผ ํ†ตํ•ด ์„ค์น˜๋˜์—ˆ์„ ๋•Œ rustup self update ๋ฅผ ์‹คํ–‰ํ•˜๋ ค๊ณ  ํ•˜๋ฉด OS ํŒจํ‚ค์ง€ ๊ด€๋ฆฌ์ž์—์„œ ์—…๊ทธ๋ ˆ์ด๋“œํ•˜์‹ญ์‹œ์˜ค๋ผ๋Š” ์˜ค๋ฅ˜๊ฐ€ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค. ์ €๋Š” ์ด ๊ตฌํ˜„์ด ์ •๋ง ๋งˆ์Œ์— ๋“ญ๋‹ˆ๋‹ค. OS ํŒจํ‚ค์ง€ ๊ด€๋ฆฌ์ž๋ฅผ ํ†ตํ•ด ์ฒ˜์Œ์œผ๋กœ ๋ฌด์–ธ๊ฐ€๋ฅผ ์„ค์น˜ํ•˜๊ณ  ๋‚ด์žฅ ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•˜์—ฌ ์—…๊ทธ๋ ˆ์ด๋“œํ•  ๋•Œ OS ํŒจํ‚ค์ง€ ๊ด€๋ฆฌ์ž๊ฐ€ ์ œ์–ดํ•  ์ˆ˜ ์—†๊ฒŒ ๋˜์–ด ๋‚˜์ค‘์— ์•Œ ์ˆ˜ ์—†๋Š” ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

Flutter๋ฅผ ์œ„ํ•œ ๊ฐ€์žฅ ์ข‹์€ ๋ฐฉ๋ฒ•์€ Rustup๊ณผ ์œ ์‚ฌํ•œ ๊ตฌํ˜„์„ ์ฑ„ํƒํ•˜๋Š” ๊ฒƒ์ด๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์ด๊ฒƒ์€ ์—„์ฒญ๋‚œ ์ž‘์—…์ด๋ฉฐ(์‹œ์Šคํ…œ ํŒจํ‚ค์ง€ ๊ด€๋ฆฌ์ž๊ฐ€ Flutter๋ฅผ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๋„๋ก ๋งŽ์€ ๊ฒƒ์„ ๋ฆฌํŒฉํ† ๋งํ•ด์•ผ ํ•จ) flutter ํ•ต์‹ฌ ํŒ€์›์˜ ๋„์›€์ด ํ•„์š”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. , ๊ทธ๋ž˜์„œ ๋‚˜๋Š” ์—ฌ๊ธฐ์— ๋‚˜์˜ ์ œ์•ˆ์„ ํ•˜๊ณ  ์ด๊ฒƒ์ด ๊ณง ์™„๋ฃŒ๋  ๊ฒƒ์ด๋ผ๊ณ  ๊ธฐ๋Œ€ํ•˜์ง€ ์•Š์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์˜ˆ, ์ด ์Šค๋ ˆ๋“œ์˜ ์•ž๋ถ€๋ถ„์—์„œ ์–ธ๊ธ‰๋œ 10๊ฐœ์˜ ๋ผ์ด๋„ˆ๋ณด๋‹ค ๋” ๋ณต์žกํ•˜๊ฒŒ ๋“ค๋ฆฝ๋‹ˆ๋‹ค.

TIL์— ๋Œ€ํ•ด ๋” ๋งŽ์€ ๋…ผ์˜๊ฐ€ ์ง„ํ–‰ ์ค‘์ž…๋‹ˆ๋‹ค: http://flutter.dev/go/sdk-per-platform-installers

์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰