Fabric: Paramiko 2.0.x๊ฐ€ ํ™•์‹คํžˆ ์•ˆ์ •๋˜๋ฉด Paramiko ์š”๊ตฌ ์‚ฌํ•ญ ํ•€์„ ๋ถ€๋”ช์น˜๋Š” ๊ฒƒ์„ ๊ณ ๋ คํ•˜์‹ญ์‹œ์˜ค.

์— ๋งŒ๋“  2016๋…„ 04์›” 30์ผ  ยท  19์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: fabric/fabric

  • ์šฐ๋ฆฌ๋Š” 1.10.3๊ณผ 1.11.1์„ ๋ช…์‹œ์  paramiko<2 ๊ณ ์ •์œผ๋กœ ๋‚ด๋†“์•˜์Šต๋‹ˆ๋‹ค. ์–ผ๋งˆ ์ „์— ์‚ฌ๋žŒ๋“ค์˜ ํ™˜๊ฒฝ์ด ์˜ˆ๊ธฐ์น˜ ์•Š๊ฒŒ ์—…๊ทธ๋ ˆ์ด๋“œ/ํŒŒ์†๋˜๋Š” ๊ฒƒ์„ ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•ด์„œ์ž…๋‹ˆ๋‹ค.
  • Paramiko 2.0์€ ์ด์ œ ๋‚˜์™”์ง€๋งŒ ์‹ ์„ ํ•ฉ๋‹ˆ๋‹ค. ์•„๋งˆ๋„ ์ˆ˜์ •์ด ํ•„์š”ํ•œ ์ผ๋ถ€ ๋ฒ„๊ทธ์ผ ๊ฒƒ์ž…๋‹ˆ๋‹ค.
  • ์‚ฌ๋žŒ๋“ค์ด ๋ช…์‹œ์ ์œผ๋กœ ์›ํ•  ๊ฒฝ์šฐ Fabric 1์—์„œ Paramiko 2.0์œผ๋กœ ์—…๊ทธ๋ ˆ์ด๋“œํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•˜๋ฉด _์ข‹์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ setuptools/pip์—์„œ ์ด๋ฅผ ์ˆ˜ํ–‰ํ•  ๋ฐฉ๋ฒ•์ด ์—†์Šต๋‹ˆ๋‹ค.

    • ์˜ˆ๋ฅผ ๋“ค์–ด extras_require ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•˜๋ฉด install_requires ์ง€์ •๋œ ๊ฒƒ๊ณผ ๋™์ผํ•œ ํŒจํ‚ค์ง€/๋ฒ„์ „์„ ์žฌ์ •์˜ํ•  ์ˆ˜ ์—†์œผ๋ฏ€๋กœ pip install fabric[paramiko-2] ๋˜๋Š” ๊ธฐํƒ€ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

    • setup.py CLI ๋งค๊ฐœ๋ณ€์ˆ˜์™€ ๊ฐ™์ด ๋ˆ„๋ฝ๋œ ๋‹ค๋ฅธ ์ž‘์—…์ด ์žˆ๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ํœ ์ด๋‚˜ ๋‹ค๋ฅธ ๋น„ sdist ์„ค์น˜ ๋ฐฉ๋ฒ•์—์„œ๋Š” ์ž‘๋™ํ•˜์ง€ ์•Š์œผ๋ฏ€๋กœ ๋งŒ๋ณ‘ํ†ต์น˜์•ฝ๋„ ์•„๋‹™๋‹ˆ๋‹ค.

    • ๋˜ ๋‹ค๋ฅธ ์˜ต์…˜์ด์ง€๋งŒ fabric-paramiko2 ์™€ ๊ฐ™์€ ๋”์ฐํ•œ ๋‘ ๋ฒˆ์งธ PyPI ํ•ญ๋ชฉ/setup.py๋ฅผ ๋งŒ๋“œ๋Š” ๊ฒƒ์„ ํ”ผํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค.

  • Paramiko 2๊ฐ€ Paramiko 1๊ณผ API ํ˜ธํ™˜๋œ๋‹ค๋Š” ์ ์„ ๊ฐ์•ˆํ•  ๋•Œ, ์šฐ๋ฆฌ๋Š” ์ดํ›„ Fabric ๋ฆด๋ฆฌ์Šค์—์„œ ๋ฒ„์ „ ํ•€์„ paramiko<3 ๋กœ _ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์‚ฌ๋žŒ๋“ค์€ Paramiko 2.x ๋ผ์ธ์—์„œ ๋ฒ„๊ทธ/๋ณด์•ˆ/๊ธฐํƒ€ ์ˆ˜์ •์„ ๊ณ„์† ๋ฐ›์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

    • ์šฐ๋ฆฌ๊ฐ€ ์ด๋ ‡๊ฒŒ ํ•  ๊ฒฝ์šฐ, ํ•„์š”์„ฑ์€ ์ œ๊ฑฐํ•˜๊ธฐ Crypto.atfork ์—์„œ ์ „ํ™” decorators.py (# 1460 ์ฐธ์กฐ)ํ•˜๊ณ  ์žˆ๋Š”์ง€ ๋‹ค๋ฅธ PyCrypto ์ˆ˜ํ•˜๋ฌผ ์œ ๋ฌผ์„

    • ์ด๊ฒƒ์€ ์˜ฌ์ธ์› Cryptography.io ์ •์  ํœ ์„ ์–ป์„ ์ˆ˜ ์—†๋Š” ์‚ฌ๋žŒ๋“ค์„ ์œ„ํ•ด ์—ฌ์ „ํžˆ ๊นจ์งˆ ๊ฐ€๋Šฅ์„ฑ์ด ์žˆ์Šต๋‹ˆ๋‹ค. Fabric์„ ์—…๊ทธ๋ ˆ์ด๋“œํ•œ ๋‹ค์Œ libffi-dev ๋˜๋Š” openssl-dev๊ฐ€ ์—†์œผ๋ฉด ํญ๋ฐœํ•ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์ด ํ•€์„ ์‹ค์ œ๋กœ ์‹คํ–‰ ์ทจ์†Œํ•˜์ง€ ์•Š๋Š” ๋Œ€์‹  ์‚ฌ๋žŒ๋“ค์ด Fabric 2๋ฅผ ์‚ฌ์šฉํ•˜๋„๋ก ํ•˜๋Š” ๊ฒƒ์ด ์™„์ „ํžˆ ํ•ฉ๋ฆฌ์ ์ž…๋‹ˆ๋‹ค.

Packaging Support

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

Grump, ์งœ์ฆ๋‚˜๋„ค์š”. @hostep ์†Œ์‹ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. (๋น„๊ผฌ๋Š” ๋ง์„ ํ•˜๋ ค๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ - ๋˜ํ•œ MacPorts๊ฐ€ ์—ฌ์ „ํžˆ ์‚ฌ์šฉ ์ค‘์ด๋ผ๋Š” ์‚ฌ์‹ค์— ๋†€๋ž์Šต๋‹ˆ๋‹ค. ์ œ๊ฐ€ ์•„๋Š” ๋ชจ๋“  ์‚ฌ๋žŒ๋“ค์€ ๋ช‡ ๋…„ ์ „์— Homebrew๋กœ ์ „ํ™˜ํ–ˆ์Šต๋‹ˆ๋‹ค. "์ตœ์ดˆ" != "๋งˆ์„์˜ ์œ ์ผํ•œ ๊ฒŒ์ž„"์ธ ๊ฒƒ ๊ฐ™์•„์š” :))

๋‚˜๋Š” ์–ด์ ฏ๋ฐค ๋ณ€๋•์Šค๋Ÿฝ๊ฒŒ ์ž‘์€ 1.12๋ฅผ ๋‚ด๋†“์•˜์Šต๋‹ˆ๋‹ค. ๋นจ๋ฆฌ ํ•˜์„ธ์š”. ๊ทธ๋ž˜์„œ ์•„๋งˆ ๋‹ค์Œ ๋งˆ์ด๋„ˆ ๋ฆด๋ฆฌ์ฆˆ๊ฐ€ ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

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

ํ•˜๋‚˜ ๋˜๋Š” ๋‘ ๊ฐœ์˜ ๋ฆด๋ฆฌ์Šค์— ๋Œ€ํ•ด fabric setup.py ๋Š” paramiko>=2 ๋ฐ paramiko<2 ๋ฅผ ํ—ˆ์šฉํ•˜๊ณ  ์‚ฌ๋žŒ๋“ค์€ cryptography ๊ธฐ๋ณธ์ ์œผ๋กœ PyCrypto ๋ฒ„์ „์„ ๊ฐ•์ œ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ์˜ ์กฐ๊ธˆ์—์„œ ์—ฐ์†Œ๋˜๋ฉด, ๋‹น์‹ ์€ ์ด๋™ํ•  ์ˆ˜ setup.py ํ•„์š”ํ•˜๊ธฐ paramiko>=2 .

Fabric 1.x์— paramiko>=2๊ฐ€ ํ•„์š”ํ•˜๋„๋ก ๋งŒ๋“ค์ง€ ํ™•์‹ ์ด ์„œ์ง€ ์•Š๊ณ  Fabric 2.x์šฉ์œผ๋กœ ์ €์žฅํ•  ๊ณ„ํš์ž…๋‹ˆ๋‹ค. Fabric 2.x๊ฐ€ ๋‚˜์˜จ ํ›„์—๋Š” ํ™œ์šฉ๋„์— ๋”ฐ๋ผ ๋‹ฌ๋ผ์ง‘๋‹ˆ๋‹ค.

๊ณ ์ • ํ•ด์ œ๋œ "๋‚œ ์ƒ๊ด€ ์—†์–ด, paramiko 1 ๋˜๋Š” 2๋Š” ๊ดœ์ฐฎ์Šต๋‹ˆ๋‹ค"๋กœ ๋Œ์•„๊ฐ€๋Š” ๊ฒƒ์€ ์‚ฌ๋žŒ๋“ค์ด ์ˆ˜๋™์œผ๋กœ Paramiko๋ฅผ ๋‹ค์šด๊ทธ๋ ˆ์ด๋“œํ•˜๋„๋ก ํ•˜์—ฌ ์—ฌ์ „ํžˆ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์ด ๋งž์Šต๋‹ˆ๋‹ค. ๊ณ ์ •์€ ๋Œ€๋ถ€๋ถ„ "onoz u broken my build" ๋ณด๊ณ ์„œ์˜ ํ™์ˆ˜๋ฅผ ๋ง‰์œผ๋ ค๋Š” ์‹œ๋„์˜€์Šต๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ์•ฝ๊ฐ„์„ ์–ป์—ˆ์ง€๋งŒ ํ†ค์ด ์•„๋‹ˆ ์—ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๊ฒƒ์ด ๋‚ด ํ•€ ๋•Œ๋ฌธ์ธ์ง€ ์•„๋‹Œ์ง€๋Š” ์•„๋ฌด๋„ ์ถ”์ธกํ•˜์ง€ ๋ชปํ•ฉ๋‹ˆ๋‹ค.

@bitprophet FWIW, ๋ฐ์ดํ„ฐ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค! ์ง€๋‚œ 2์ฃผ ๋™์•ˆ(์—ฌ๊ธฐ์—๋Š” paramiko 2.0์ด ์‹ค์ œ๋กœ ์ถœ์‹œ๋˜๊ธฐ ๋ฉฐ์น  ์ „๋„ ํฌํ•จ๋จ) PyPI์—์„œ ๊ฐ€์žฅ ๋งŽ์ด ๋‹ค์šด๋กœ๋“œ๋œ Paramiko ๋ฒ„์ „์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

| ๋ฒ„์ „ | ๋‹ค์šด๋กœ๋“œ |
| --- | --- |
| 1.16.0 | 411903 |
| 2.0.0 | 308131 |
| 1.17.0 | 77360 |
| 1.15.2 | 47677 |
| 1.15.1 | 23893 |

๋‚˜์—๊ฒŒ ์ด ๋งค์šฐ ๋งŽ์€ ์ˆ˜์˜ 2.0 ์„ค์น˜๋Š” ์•„๋งˆ๋„ ์•ˆ์ „ํ•  ์ˆ˜ ์žˆ์Œ์„ ๋‚˜ํƒ€๋‚ด๋ฉฐ ๋”ฐ๋ผ์„œ <2 ๊ฒฝ๊ณ„๋ฅผ ์ œ๊ฑฐํ•˜๋Š” ๊ฒƒ์€ ๋ถˆํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ๋Œ€๋ถ€๋ถ„์˜ ์‚ฌ๋žŒ๋“ค์—๊ฒŒ๋Š” ์ž˜ ์ž‘๋™ํ•˜๊ฑฐ๋‚˜ ์‰ฝ๊ฒŒ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ pip install fabric ๊ฐ€ ํ•ด๊ฒฐ๋˜๊ธฐ ์ „์— ๋‹จ์ˆœํžˆ pip install paramiko<2 ๋ฅผ ์ˆ˜ํ–‰ํ•˜์ง€ ๋งˆ์‹ญ์‹œ์˜ค.

์ตœ์†Œํ•œ ํ™˜๊ฒฝ ๋งˆ์ปค๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํŒจ๋ธŒ๋ฆญ์— ์ตœ์†Œํ•œ PyPy์— ๋Œ€ํ•ด paramiko>2๋ฅผ ์‚ฌ์šฉํ•˜๋„๋ก ์ง€์‹œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ? ํ˜„์žฌ ์ƒํƒœ๋Š” ํŒจ๋ธŒ๋ฆญ์ด ์–ด์จŒ๋“  ์„ค์น˜๋˜์ง€ ์•Š์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

@alex ๋’ค๋Šฆ๊ฒŒ " <2 ๋ฐ”์šด๋“œ๋ฅผ ์ œ๊ฑฐํ•˜๋Š” ๊ฒƒ์ด ์•ˆ์ „ํ•˜๋‹ค"๋Š” ๋ง์”€์ด์‹ ๊ฐ€์š”? ("๋ถˆํ•„์š”ํ•œ" ๋Œ€์‹ ) :D

@Julian "ํ˜„์žฌ ์ธํ„ฐํ”„๋ฆฌํ„ฐ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ install_requires ๋ณ€๊ฒฝ"์˜ ๋˜ ๋‹ค๋ฅธ ๋ช‡ ์ค„์„ ์˜๋ฏธํ•œ๋‹ค๊ณ  ๊ฐ€์ •ํ•ฉ๋‹ˆ๊นŒ? ๊ทธ๊ฒƒ์— ๋ฐ˜๋Œ€ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. (IIRC์™€ ๊ฐ™์€ ํ•ดํ‚น์€ ํœ  ์ž‘์—…์„ ์ค‘๋‹จํ•˜๋ฏ€๋กœ ์šฐ๋ฆฌ๋Š” ํœ ์„ ํ”ผํ•˜๊ธฐ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค...?)

์˜ˆ, ์•ˆ์ „ํ•˜๋‹ค๋Š” ๋œป์ด์—ˆ์Šต๋‹ˆ๋‹ค.

@bitprophet for wheel์€ ํ™˜๊ฒฝ ๋งˆ์ปค๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ extras_require ์—์„œ ๋™์ผํ•œ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.

๊ธฐ๋ณธ์ ์œผ๋กœ @dstufft ์˜ ๋ฐฐ๋ฅผ ๋ฌธ์ง€๋ฅด๋ฉด ์ง€๋‹ˆ๊ฐ€ ๋‚˜์˜ต๋‹ˆ๋‹ค.

(๋” ์‹ฌ๊ฐํ•œ ์˜ˆ: https://github.com/Julian/jsonschema/blob/master/setup.py#L25 ๊ทธ๋Ÿฌ๋‚˜ python_version ๋ฅผ python_interpreter ๋กœ ๋Œ€์ฒดํ•˜์—ฌ ๋Œ€์‹  ๋ฐœ์†ก).

์–ด๋–ค ์‹์œผ๋กœ๋“  ์ด๋Ÿฐ ์ผ์ด ๋ฐœ์ƒํ•˜์ง€ ์•Š๋Š” ํ•œ ์–ด๋–ป๊ฒŒ ๋ณด์ด๋Š”์ง€ ๋ณผ ์ˆ˜ ์žˆ๋„๋ก PR์— ๋„ฃ์–ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

์˜ค ๊น”๋”ํ•˜๋‹ค, ๋‚˜๋Š” ๊ทธ๊ฒƒ์— ๋Œ€ํ•ด ์–ผ๋งˆ ์ „์— ๋ฐฐ์šด ๊ฒƒ์„ ์–ด๋ ดํ’‹์ด ๊ธฐ์–ตํ•œ๋‹ค. ๋ถ„๋ช…ํžˆ ๊ทธ๋•Œ ์žŠ์—ˆ๋‹ค. ๋‚˜๋Š” ๊ทธ๊ฒƒ์ด ๋ช‡๋ช‡ ์‚ฌ๋žŒ๋“ค์„ ๋•๊ณ  ๋Œ€๋‹ค์ˆ˜๋ฅผ ํ•ด์น˜์ง€ ์•Š๋Š”๋‹ค๋ฉด ํ™•์‹คํžˆ ๊ทธ๋ ‡๊ฒŒ ํ•˜์ง€ ์•Š์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. PR์„ ํ•ด์ฃผ์‹œ๋ฉด ๊ฐ์‚ฌํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

Re: ์™ธ๋ถ€ ๋ฌธ์ œ, ์ด ์‹œ์ ์—์„œ Fabric 1.12+์—์„œ ํ•€์„ <3 ๋กœ ๋ฒ”ํ”„ํ•ด์•ผ ํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค(์•ž์„œ ์–ธ๊ธ‰ํ•œ ๋‹ค๋ฅธ Crypto ์ œ๊ฑฐ์™€ ํ•จ๊ป˜, ๋‚ด๊ฐ€ ์›ํ•˜์ง€ ์•Š๋Š” ํ•œ ์กฐ๊ฑด๋ถ€๊ฐ€ ๋˜์–ด์•ผ ํ•˜์ง€๋งŒ paramiko>=2,<3 , ๋‚ด๊ฐ€ ์ด๊ฒƒ์„ ์ฐ”๋Ÿฌ๋ณด๊ณ  ๋™์ผํ•œ Fabric ๋ถ„๊ธฐ๊ฐ€ Crypto ๋ฐ Paramiko 1์„ ํฌํ•จํ•˜๋Š” ๋‘ ๊ฐœ์˜ ๋ณ„๋„ venvs์—์„œ ํ…Œ์ŠคํŠธ๋ฅผ ํ†ต๊ณผํ•˜๋Š”์ง€ ํ™•์ธํ•˜๋ ค๊ณ  ํ•  ๋•Œ ์–ผ๋งˆ๋‚˜ ์ถ”์•…ํ•œ ์ผ์ด ๋ฐœ์ƒํ•˜๋Š”์ง€ ํ™•์ธํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค. Crypto ๋ฐ Paramiko๊ฐ€ ์—†๋Š” ๊ธฐํƒ€ 2)

์•ˆ๋…• ์–˜๋“ค์•„

์ด ํ† ๋ก ์— ์ž‘์€ ์ถ”๊ฐ€ ์‚ฌํ•ญ:
Macports ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ macOS ์›Œํฌ์Šคํ…Œ์ด์…˜์˜ Paramiko ํฌํŠธ ์— ์˜์กดํ•˜๋Š” Fabric ํฌํŠธ ๋ฅผ ์„ค์น˜ํ•ฉ๋‹ˆ๋‹ค.
๊ทธ๋Ÿฌ๋‚˜ ์ตœ๊ทผ Macports๋Š” Paramiko๋ฅผ ๋ฒ„์ „ 1.16.0์—์„œ 2.0.1 ๋กœ

โžœ fab deploy
Traceback (most recent call last):
  File "/opt/local/bin/fab", line 5, in <module>
    from pkg_resources import load_entry_point
  File "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/pkg_resources/__init__.py", line 2927, in <module>
    <strong i="13">@_call_aside</strong>
  File "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/pkg_resources/__init__.py", line 2913, in _call_aside
    f(*args, **kwargs)
  File "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/pkg_resources/__init__.py", line 2940, in _initialize_master_working_set
    working_set = WorkingSet._build_master()
  File "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/pkg_resources/__init__.py", line 637, in _build_master
    return cls._build_from_requirements(__requires__)
  File "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/pkg_resources/__init__.py", line 650, in _build_from_requirements
    dists = ws.resolve(reqs, Environment())
  File "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/pkg_resources/__init__.py", line 829, in resolve
    raise DistributionNotFound(req, requirers)
pkg_resources.DistributionNotFound: The 'paramiko<2.0,>=1.10' distribution was not found and is required by Fabric

Macports๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ Paramiko๋ฅผ ๋ฒ„์ „ 1.16.0์œผ๋กœ ๋‹ค์šด๊ทธ๋ ˆ์ด๋“œ ํ•˜์—ฌ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ–ˆ์Šต๋‹ˆ๋‹ค. ์ˆ˜๋™์œผ๋กœ ์ˆ˜ํ–‰ํ•˜๊ธฐ์—๋Š” ์•ฝ๊ฐ„ ๋ณต์žกํ•˜์ง€๋งŒ ๊ฒฐ๊ตญ ๋‹ค์‹œ ์ž‘๋™ํ•˜๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

์ด๊ฒƒ์€ Macports์˜ ์‹ค์ˆ˜๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. Fabric์ด ํ˜ธํ™˜๋  ๋•Œ๊นŒ์ง€ ํŠธ๋ฆฌ์—์„œ Paramiko๋ฅผ ์—…๊ทธ๋ ˆ์ด๋“œํ•  ๋•Œ๊นŒ์ง€ ๊ธฐ๋‹ค๋ ค์•ผ ํ–ˆ์Šต๋‹ˆ๋‹ค.

๊ทธ๋Ÿฌ๋‚˜ ์–ด์จŒ๋“  Paramiko > 2.0์„ ์ง€์›ํ•˜๋Š” ์ƒˆ ๋ฒ„์ „์˜ Fabric์ด ์ถœ์‹œ๋˜์–ด ๋ชจ๋“  ํฌํŠธ์˜ ์ตœ์‹  ๋ฒ„์ „์ด ์žˆ๋Š” Macports๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ชจ๋“  ๊ฒƒ์ด ๋‹ค์‹œ ์ž‘๋™ํ•˜๋„๋ก ํ•  ์ˆ˜ ์žˆ๋‹ค๋ฉด ์ข‹์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

Grump, ์งœ์ฆ๋‚˜๋„ค์š”. @hostep ์†Œ์‹ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. (๋น„๊ผฌ๋Š” ๋ง์„ ํ•˜๋ ค๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ - ๋˜ํ•œ MacPorts๊ฐ€ ์—ฌ์ „ํžˆ ์‚ฌ์šฉ ์ค‘์ด๋ผ๋Š” ์‚ฌ์‹ค์— ๋†€๋ž์Šต๋‹ˆ๋‹ค. ์ œ๊ฐ€ ์•„๋Š” ๋ชจ๋“  ์‚ฌ๋žŒ๋“ค์€ ๋ช‡ ๋…„ ์ „์— Homebrew๋กœ ์ „ํ™˜ํ–ˆ์Šต๋‹ˆ๋‹ค. "์ตœ์ดˆ" != "๋งˆ์„์˜ ์œ ์ผํ•œ ๊ฒŒ์ž„"์ธ ๊ฒƒ ๊ฐ™์•„์š” :))

๋‚˜๋Š” ์–ด์ ฏ๋ฐค ๋ณ€๋•์Šค๋Ÿฝ๊ฒŒ ์ž‘์€ 1.12๋ฅผ ๋‚ด๋†“์•˜์Šต๋‹ˆ๋‹ค. ๋นจ๋ฆฌ ํ•˜์„ธ์š”. ๊ทธ๋ž˜์„œ ์•„๋งˆ ๋‹ค์Œ ๋งˆ์ด๋„ˆ ๋ฆด๋ฆฌ์ฆˆ๊ฐ€ ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

FWIW, ์šฐ๋ฆฌ(FreeBSD)๋„ ๊ฐ™์€ ๋ฌธ์ œ๋ฅผ ๊ฒช์—ˆ๊ณ  py-fabric์ด ์˜์กดํ•  paramiko1 ํฌํŠธ์™€ ํŒจํ‚ค์ง€๋ฅผ ๋งŒ๋“ค์–ด์•ผ ํ–ˆ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ๋ณด์‹ญ์‹œ์˜ค:

https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=213893
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=214379

TLDR: <= ๋ฐ == ์ข…์†์„ฑ์€ ๋งค์šฐ ๊ณ ํ†ต์Šค๋Ÿฝ๊ณ  ์„ฑ๊ฐ€์‹œ๋ฉฐ ํ•ด๊ฒฐํ•˜๋ ค๋Š” ๊ฒƒ๋ณด๋‹ค ๋” ๋งŽ์€ ๋ฌธ์ œ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.

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

์ด ๊ฒฝ์šฐ์—๋„ ์ œํ•œ์€ ์ผ์‹œ์ ์ด๋ฉฐ ๋ฆด๋ฆฌ์Šค๊ฐ€ ์ค‘๋‹จ๋œ ์ƒํƒœ์—์„œ ๋ฆด๋ฆฌ์Šค๊ฐ€ ์ด๋ฃจ์–ด์ง€๊ณ  ์ข…์†์„ฑ ์ž‘์„ฑ์ž์—๊ฒŒ ์•Œ๋ฆผ์ด ์ œ๊ณต๋˜๊ณ  ์ˆ˜์ •์ด ์ด๋ฃจ์–ด์งˆ ๋•Œ๊นŒ์ง€๋งŒ ์ ์šฉ๋ฉ๋‹ˆ๋‹ค.

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

Macports ๋ฌธ์ œ์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ์กฐ๊ธˆ ๋” ์ถ”๊ฐ€ ํ•˜๊ธฐ ์œ„ํ•ด Paramiko์— ๋Œ€ํ•œ ์š”๊ตฌ ์‚ฌํ•ญ์„ <2.0 ์—์„œ <3.0 ๋ณ€๊ฒฝ ํ•˜๋Š” ํŒจ์น˜ ๋ฅผ ์„ค์น˜ํ•˜๋Š” ๋™์•ˆ ์ถ”๊ฐ€ํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— ์ˆ˜์ •๋œ ๊ฒƒ์œผ๋กœ ๋ณด์ž…๋‹ˆ๋‹ค.
์ด์ œ macOS ์›Œํฌ์Šคํ…Œ์ด์…˜์—์„œ Fabric v1.12.0 ๋ฐ Paramiko v2.0.2๋ฅผ ์‹คํ–‰ํ•˜๋ฉฐ ๋ฌธ์ œ๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.

@hostep ๊ฐ•์กฐํ•ด์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค.

@hostep ์‹ค์ œ๋กœ *_requires ์‚ฌ์–‘( <= / == ์—์„œ >= ๋˜๋Š” '' )์„ ์žฌ์ •์˜ํ•œ ๊ฒฝ์šฐ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ํ…Œ์ŠคํŠธ ์Šค์œ„ํŠธ๊ฐ€ ์ดํ›„ ๋ฒ„์ „์˜ ์ข…์†์„ฑ๊ณผ ํ•จ๊ป˜ ํ†ต๊ณผํ•œ ๊ฒฝ์šฐ ํฌํŠธ. ๊ทธ๋Ÿฌ๋‚˜ ์ด๊ฒƒ์€ ๋ฉ‹์ง„ ํ…Œ์ŠคํŠธ์— ์˜์กดํ•˜๋ฏ€๋กœ ์œ„ํ—˜ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ ์šฐ๋ฆฌ๊ฐ€ Fabric์˜ ๋‹ค์šด์ŠคํŠธ๋ฆผ์ด์ง€๋งŒ ์‚ฌ์šฉ์ž(๋‹ค์šด์ŠคํŠธ๋ฆผ) ํ™˜๊ฒฝ์„ ๊นจ๋œจ๋ฆฌ๋Š” ๊ฒƒ๋„ ์ข‹์•„ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. :)

์ถ”๊ฐ€ ๋ฒˆํ˜ธ ์—…๋ฐ์ดํŠธ...์ง€๋‚œ 6๊ฐœ์›” ๊ฐœ์š”:

screen shot 2016-12-05 at 6 27 27 pm

์ง€๋‚œ 2์ฃผ:

screen shot 2016-12-05 at 6 35 09 pm

Paramiko 2.0.x๋Š” ์ด์ œ ๋ชจ๋“  ๋‹ค์šด๋กœ๋“œ์˜ ์ ˆ๋ฐ˜์ž…๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋‚˜๋จธ์ง€ 50%๊ฐ€ ์ด ํ‹ฐ์ผ“์ด ๋ณ‘ํ•ฉ๋˜์ง€ ์•Š์•„์„œ ์ƒ๊ธฐ๋Š” ๊ฒƒ์ธ์ง€ ๊ถ๊ธˆํ•ฉ๋‹ˆ๋‹ค :) ๊ณง ์•Œ๊ฒŒ ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค!

์ด๊ฒƒ์„ ์‹คํ–‰ํ•˜๊ณ  Fab 1.13.0์œผ๋กœ ํ‘œ์‹œํ•  ๊ฒƒ์ด๋ผ๊ณ  ์ƒ๊ฐํ•˜์‹ญ์‹œ์˜ค.

@Julian ๊ณผ ๋‚ด๊ฐ€ ๋…ผ์˜ํ•œ ๋‚ด์šฉ์„ ๋‹ค์‹œ ๋ฐฉ๋ฌธํ–ˆ์ง€๋งŒ PyPy๋กœ์˜ ๋ณ€๊ฒฝ์„ ์ œํ•œํ•˜๋ ค๋Š” ๊ฒฝ์šฐ์—๋งŒ extras_require ๋งˆ๋ฒ•์ด ํ•„์š”ํ•œ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ์ด ์‹œ์ ์—์„œ ์ €๋Š” "Paramiko <3" ๋น„ํŠธ ๋„๋งค ํ—ˆ์šฉ์„ ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค...

PyPI๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค

์•„, ๋ฌผ๋ก  ๋‚จ๋งคํ‘œ 1462๋ฒˆ์€ ์žŠ์–ด๋ฒ„๋ ธ์–ด์š”! 1.13.1 ์ง„ํ–‰ ์ค‘...ํŽธ์ง‘: ๊ทธ๋ฆฌ๊ณ  ๋ณ‘ํ•ฉ/ํ•ด์ œ.

๋งŒ์„ธ!

2016๋…„ 12์›” 9์ผ 20์‹œ 14๋ถ„์— "Jeff Forcier" [email protected]์ด ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ผ์Šต๋‹ˆ๋‹ค.

์•„ ๋ฌผ๋ก  ๋‚จ๋งคํ‘œ 1462๋ฒˆ์€ ์žŠ์–ด๋ฒ„๋ ธ์–ด
https://github.com/fabric/fabric/pull/1462 ! 1.13.1 ๋„์ค‘์—...

โ€”
๋‹น์‹ ์ด ์–ธ๊ธ‰๋˜์—ˆ๊ธฐ ๋•Œ๋ฌธ์— ์ด๊ฒƒ์„ ๋ฐ›๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.
์ด ์ด๋ฉ”์ผ์— ์ง์ ‘ ๋‹ต์žฅํ•˜๊ณ  GitHub์—์„œ ํ™•์ธ
https://github.com/fabric/fabric/issues/1461#issuecomment-266111875 ๋˜๋Š” ์Œ์†Œ๊ฑฐ
์Šค๋ ˆ๋“œ
https://github.com/notifications/unsubscribe-auth/AAUIXlbJBlS0po_zKgQsUp7-y7I7WgbTks5rGbajgaJpZM4ITeNm
.

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