Setup-miniconda: ์„ค์ •-๋ฏธ๋‹ˆํฌ์ง€

์— ๋งŒ๋“  2020๋…„ 09์›” 24์ผ  ยท  9์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: conda-incubator/setup-miniconda

์•ˆ๋…•ํ•˜์„ธ์š” @conda-incubator/setup-miniconda-team,

๊ธฐ๋ณธ๊ฐ’์—์„œ conda forge๋ฅผ ์ง์ ‘ ๋‹ค๋ฃจ๊ธฐ ์œ„ํ•œ ํŽธ์˜๋ฅผ ์œ„ํ•ด https://github.com/conda-incubator/setup-miniforge ๋ฅผ ๋งŒ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค.

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

์ด ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๋” ์ข‹์€ ๋ฐฉ๋ฒ•์ด ์žˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ƒ๊ฐ?

question

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

๋ณ€๊ฒฝ ์‚ฌํ•ญ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  • ๋Œ€์‹  Miniforge ๋ฆด๋ฆฌ์Šค๋ฅผ ๊ฐ€๋ฆฌํ‚ค๋„๋ก ๊ธฐ๋ณธ Miniconda ์„ค์น˜ ํ”„๋กœ๊ทธ๋žจ ๋ณ€๊ฒฝ
  • ๊ธฐ๋ณธ ์ฑ„๋„ ๊ตฌ์„ฑ์œผ๋กœ conda-forge+defaults ํ•˜๋“œ์ฝ”๋”ฉ
  • ๋‹ค๋ฅธ ๊ฑด ์—†๋‚˜์š”?

๊ทธ๋ ‡๋‹ค๋ฉด ์•ฝ๊ฐ„์˜ ์Šคํฌ๋ฆฝํŠธ๋กœ ์œ ์ง€ ๊ด€๋ฆฌํ•˜๊ธฐ ์‰ฌ์šธ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ์ €๋„ Miniconda๋ณด๋‹ค Miniforge๋ฅผ ์„ ํ˜ธํ•ฉ๋‹ˆ๋‹ค.

๋˜ ๋‹ค๋ฅธ ์˜ต์…˜์€ installer-url ๋ฐ miniconda-version ๋ฅผ ๋” ์ด์ƒ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ  conda-distribution ๋˜๋Š” ์ด์™€ ์œ ์‚ฌํ•œ ๋‹จ์ผ ํ‚ค๋กœ ๋ณ‘ํ•ฉํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ด ํ‚ค๋Š” "miniconda", "miniforge" ๋˜๋Š” "anaconda"์™€ ๊ฐ™์€ _magic ํ‚ค์›Œ๋“œ_๋ฅผ ํ—ˆ์šฉํ•ฉ๋‹ˆ๋‹ค. ์ด ํ‚ค์›Œ๋“œ๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ํ•ด๋‹น ์„ค์น˜ ํ”„๋กœ๊ทธ๋žจ์˜ ์ตœ์‹  URL์„ ํ—ˆ์šฉํ•˜์ง€๋งŒ URL๋„ ์ง์ ‘ ํ—ˆ์šฉํ•ฉ๋‹ˆ๋‹ค(์˜ˆ: ์‚ฌ์šฉ์ž๊ฐ€ ์‚ฌ์šฉ์ž ์ •์˜ constructor ํŒŒ์ƒ ์„ค์น˜ ํ”„๋กœ๊ทธ๋žจ).

์•ˆ๋…•ํ•˜์„ธ์š” @jaimergp

๊ทธ๋ž˜์„œ ๋‹น์‹ ์˜ ๋ชฉ๋ก์—์„œ :

๋Œ€์‹  Miniforge ๋ฆด๋ฆฌ์Šค๋ฅผ ๊ฐ€๋ฆฌํ‚ค๋„๋ก ๊ธฐ๋ณธ Miniconda ์„ค์น˜ ํ”„๋กœ๊ทธ๋žจ ๋ณ€๊ฒฝ

๋ฌผ๋ก , ํ•˜์ง€๋งŒ ์‚ฌ์šฉ์ž๊ฐ€ ๊ทธ ์ดํ›„๋กœ ์ƒˆ miniconda/miniforge๋ฅผ ์„ค์น˜ํ•˜์ง€ ์•Š์„ ๋•Œ ๊ธฐ๋ณธ ๊ธฐ๋ณธ๊ฐ’์„ ์ œ๊ฑฐํ•˜๊ฑฐ๋‚˜ ์—…๋ฐ์ดํŠธํ•  ์ˆ˜ ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ๋‚˜๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ ๋ฒˆ๋“ค๋กœ ๋œ ๊ฒƒ์„ ์‚ฌ์šฉํ–ˆ์Šต๋‹ˆ๋‹ค(์ฝ˜๋‹ค๋ฅผ ์—…๋ฐ์ดํŠธํ•ด๋„ ๋” ๋น ๋ฅธ ๊ฒฝํ–ฅ์ด ์žˆ์Œ).

๊ธฐ๋ณธ ์ฑ„๋„ ๊ตฌ์„ฑ์œผ๋กœ conda-forge+defaults ํ•˜๋“œ์ฝ”๋”ฉ

๊ทธ๋ž˜ ์šฐ๋ฆฐ ํ•  ์ˆ˜ ์žˆ์–ด

๋‹ค๋ฅธ ๊ฑด ์—†๋‚˜์š”?

ํ  ์Šคํฌ๋ฆฝํŠธ๊ฐ€ readme์—์„œ ์˜ฌ๋ฐ”๋ฅธ ํ•ญ๋ชฉ์„ ๋Œ€์ฒดํ•˜๋Š”์ง€ ํ™•์ธํ•˜๊ณ  V1, V2(์ฃผ) ๋ฒ„์ „์„ ์œ ์ง€ ๊ด€๋ฆฌํ•˜๋ฏ€๋กœ ํƒœ๊ทธ๋ฅผ ๋‹ค์‹œ ๋งŒ๋“ค ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.

์šฐ๋ฆฌ๊ฐ€ ๋ณธ ๊ฒƒ์ฒ˜๋Ÿผ back-compat์„ ๊นจ์ง€ ์•Š๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•˜๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. v2 ๋ผ์ธ์€ miniconda ๊ธฐ๋ณธ๊ฐ’์„ ์œ ์ง€ํ•ด์•ผ ํ•˜์ง€๋งŒ v3์€ ์ด๋ฆ„์ด ์•„๋‹Œ ๊ฒฝ์šฐ ๊ธฐ๋ณธ๊ฐ’์„ ๋ณ€๊ฒฝํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค. ์–ด๋Š ์ชฝ์ด๋“ , ์˜ˆ๋ฅผ ๋“ค์–ด miniforge-* ๋ฐ miniconda-* ์™€ ๊ฐ™์€ ์ ‘๋‘์‚ฌ๋ฅผ ๊ฐ–๋Š” ๊ฒƒ์ด ์™„์ „ํžˆ ๊ดœ์ฐฎ๋‹ค๊ณ  ๋งํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ miniforge๋Š” miniconda์™€ ์•ฝ๊ฐ„ ๋‹ค๋ฅธ URL ์ฒด๊ณ„(์˜ˆ: pypy)๋ฅผ ์‚ฌ์šฉํ•˜๋ฏ€๋กœ ๋งค๋„๋Ÿฝ๊ฒŒ ๋Š๊ปด์ง€๋„๋ก ๋ชจ๋“  ์‚ฌ์–‘ ๋น„ํŠธ๋ฅผ ์ฒ˜๋ฆฌํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

#98์—์„œ ์‹œ์ž‘๋œ ์ž‘์—…์€ "์„ค์น˜ ํ”„๋กœ๊ทธ๋žจ ๊ฐ€์ ธ์˜ค๊ธฐ" ๊ฒŒ์ž„์„ ๊ฐ•ํ™”ํ•˜๊ณ  ์ „๋žต๋ณ„ ํŒŒ์ผ์ด ์žˆ๋Š” ๋‹ค๋ฅธ ํด๋”๋กœ ์ด๋™ํ•ด์•ผ ํ•œ๋‹ค๊ณ  ์ง€์ ํ–ˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด

download/
  base.ts
  file.ts
  custom.ts
  miniforge.ts
  miniconda.ts

์šฐ๋ฆฌ์˜ ์•„ํ‚คํ…์ฒ˜ ๋“ฑ์ด ๋ถ„๋ฆฌ๋  ๊ฒƒ์ด๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

๊ฒฐ๊ตญ, ์šฐ๋ฆฌ๋Š” ์•„๋งˆ๋„ ๋งŽ์€ ๋ฌธ์ž์—ด ์ž‘์—…์„ ํ•˜์ง€ ์•Š๋„๋ก ๊ตฌ๋ฌธ ๋ถ„์„๋œ ์ž‘์—… ์ž…๋ ฅ์˜ ๋” ๋†’์€ ์ˆ˜์ค€์˜ ์˜ฌ๋ฐ”๋ฅธ ์œ ํ˜•์˜ ๊ฐœ์ฒด๋ฅผ ์›ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค... ๊ฑฐ๋Œ€ํ•œ ๋งค๊ฐœ๋ณ€์ˆ˜ ๋ชฉ๋ก์€ ์ ์  ์ง€๊ฒน๊ณ  ๋” ๋‚˜๋น ์งˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค . ๋‚ด ์ผ๋ถ€๋Š” ๋ชจ๋“  ๊ฒƒ์„ ๋ฒ„๋ฆฌ๊ณ  d.ts -> JSON ์Šคํ‚ค๋งˆ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๊ณ  ์‹ถ์ง€๋งŒ (์œ ์šฉํ•œ) ์ค„ ๋ฒˆํ˜ธ๋ฅผ ์–ป์ง€ ๋ชปํ•˜๋ฏ€๋กœ ์ผ๋ถ€ ๊ฐ’์ด ์ค„์–ด๋“ค ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์ž…๋ ฅ ํ•ด ์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค

#98์—์„œ ์‹œ์ž‘๋œ ์ž‘์—…์€ "์„ค์น˜ ํ”„๋กœ๊ทธ๋žจ ๊ฐ€์ ธ์˜ค๊ธฐ" ๊ฒŒ์ž„์„ ๊ฐ•ํ™”ํ•˜๊ณ  ์ „๋žต๋ณ„ ํŒŒ์ผ์ด ์žˆ๋Š” ๋‹ค๋ฅธ ํด๋”๋กœ ์ด๋™ํ•ด์•ผ ํ•œ๋‹ค๊ณ  ์ง€์ ํ–ˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด

๋‚˜๋Š” ์ด๊ฒƒ์„ ์ข‹์•„ํ•œ๋‹ค, ๋ฐ˜๋“œ์‹œ ํ•ด์•ผ ํ•  ์ผ์ด๋‹ค!

#126 ๋•… ์ดํ›„์— ์ด๊ฒƒ์€ ํ™•์‹คํžˆ ์•ž์œผ๋กœ ๋‚˜์•„๊ฐˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ž‘์—…์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  • action.yml ์ฒด๊ณ„๋ฅผ ๊ฒฐ์ •ํ•ฉ๋‹ˆ๋‹ค(์˜ˆ: miniforge-version ๋“ฑ).
  • input.ts ์ƒˆ๋กœ์šด ์ˆ˜ํ‘œ๋ฅผ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

    • ์˜ˆ: only one of miniforge-version and miniconda-version ๊ฐ€ ์ œ๊ณต๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • ์ƒˆ ํŒŒ์ผ download-miniforge.ts

    • (์ดˆ๊ธฐ) download-miniconda.ts ์˜ ๋ณต์‚ฌ-ํŒŒ์Šคํƒ€ ์ž‘์—…

    • ๋‘ ํŒŒ์ผ ์‚ฌ์ด์— ์ฝ”๋“œ๋ฅผ ์žฌ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์ด ์žˆ๋‹ค๋Š” ๊ฒƒ์€ ์˜์‹ฌ์˜ ์—ฌ์ง€๊ฐ€ ์—†์ง€๋งŒ, ์˜ˆ๋ฅผ ๋“ค์–ด ์•„ํ‚คํ…์ฒ˜๋Š” ์„œ๋กœ ๋‹ค๋ฆ…๋‹ˆ๋‹ค.

  • providers ์— installer/index.ts

    • ์ˆœ์„œ๋Š” ์—ฌ์ „ํžˆ ๋งค์šฐ ๋ช…์‹œ์ ์ด๋ฏ€๋กœ ์–ด๋””๋กœ ๊ฐ€๋Š”์ง€๋Š” _์‹ค์ œ๋กœ_ ์ค‘์š”ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

  • ์‹œํ—˜

์ข‹์€ ์ ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. miniforge์˜ ์ตœ์‹  30๊ฐœ ๋ฆด๋ฆฌ์Šค๋ฅผ ์–ป๋Š” ๊ฒƒ์€ ๋งค์šฐ ๊ฐ„๋‹จํ•ฉ๋‹ˆ๋‹ค.

https://api.github.com/repos/conda-forge/miniforge/releases

URL ์Šคํฌ๋ž˜ํ•‘์„ ํ•  ํ•„์š” ์—†์ด. ๋งŒ์„ธ!

๋‹ค๋ฅธ ํ‚ค๋„ ํ•„์š”ํ•˜๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

use:
  miniforge-version: *
  miniforge-flavor: Mambaforge-pypy3  # `Miniforge3` default 

flavor ๋Œ€์‹  variant ๋˜๋Š” build ๋˜๋Š” construct ๊ฐ€์งˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋‹ค์Œ์€ ์œ„์˜ WIP์ž…๋‹ˆ๋‹ค(๋ฌธ์„œ ๋“ฑ ํ•„์š”).

https://github.com/bollwyvl/setup-miniconda/pull/2

์ด๊ฒƒ์€ mamba ๋” ์ผ์ฐ/๋” ๋งŽ์ด ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ๊ณผ ๊ด€๋ จ๋œ ๋ช‡ ๊ฐ€์ง€ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค... ๋งˆ์น˜ Mambaforge๋ฅผ ์„ค์น˜ํ•˜๋Š” ๊ฒƒ์ฒ˜๋Ÿผ mamba _์‚ฌ์šฉ_ ํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค. ์•„๋‹ˆ์š”? ๋„ค, JOKE's ON YOU, ๊ทธ๊ฒƒ์€ ์šฐ๋ฆฌ๊ฐ€ init ์™€ ๊ฐ™์ด ์‚ฌ์šฉํ•˜๋Š” ๋งŽ์€ ๊ฒƒ๋“ค์„ ์ง€์›ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค(๋˜๋Š” ํˆฌ๋ช…ํ•˜๊ฒŒ ์œ„์ž„ํ•ฉ๋‹ˆ๋‹ค). ๋”ฐ๋ผ์„œ condaCommand ๋Š” ์‚ฌ์šฉํ•  ์ ์ ˆํ•œ ๋ช…๋ น์„ ์„ ํƒํ•  ๋•Œ ์ด๋ฅผ ๊ณ ๋ คํ•ด์•ผ ํ•˜๋ฉฐ, ์ด๋Š” conda ๊ฐ€ ์žˆ์–ด์•ผ ํ•จ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.

์†๋„ ์ฐจ์ด๋Š” ํ…Œ์ŠคํŠธ ์‚ฌ๋ก€์—์„œ ๋ฌด์‹œํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ๋ณด์ด์ง€๋งŒ ์—ฌ์ „ํžˆ ์ถ”๊ตฌํ•  ๊ฐ€์น˜๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค... ๊ทธ๋ฆฌ๊ณ  micromamba ๋Œ€ํ•œ ๋ˆ„๋ฝ๋œ ๊ธฐ๋Šฅ์„ ์–ด๋–ป๊ฒŒ ์ฒ˜๋ฆฌํ• ์ง€ ๋ชจ๋ฅด๊ฒ ์Šต๋‹ˆ๋‹ค...

ํ™๋ณด(๋” ๋งŽ์€ ํ…Œ์ŠคํŠธ ๋ฐ ๋ฌธ์„œ ํฌํ•จ): https://github.com/conda-incubator/setup-miniconda/pull/133

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