Nvm-windows: ์ฐจ๋‹จ๋œ VBScript ์—”์ง„๊ณผ ํ•จ๊ป˜ nvm ์‚ฌ์šฉ

์— ๋งŒ๋“  2018๋…„ 08์›” 23์ผ  ยท  7์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: coreybutler/nvm-windows

์•ˆ๋…•ํ•˜์„ธ์š”, ์งˆ๋ฌธ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๋„๋ฉ”์ธ ์ •์ฑ…์— ์˜ํ•ด VBScript ์—”์ง„์„ ์ฐจ๋‹จํ•œ ์ปดํ“จํ„ฐ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. nvm์„ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ? ๊ด€๋ฆฌ์ž ๊ถŒํ•œ ๋ช…๋ น ํ”„๋กฌํ”„ํŠธ(๋˜๋Š” PS)๋ฅผ ์‚ฌ์šฉํ•˜๋”๋ผ๋„ ๋ˆ„๋ฝ๋œ ์Šคํฌ๋ฆฝํŠธ ์—”์ง„์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. nvm ์—†์ด nvm์„ ์‚ฌ์šฉํ•˜๋Š” ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์ด ์žˆ์Šต๋‹ˆ๊นŒ?

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

๋˜ํ•œ NodeJS ๊ฒฝ๋กœ๋ฅผ ์‚ฌ์šฉ์ž ๋กœ์ปฌ ํด๋”(์˜ˆ: %USERPROFILE%\AppData\Local\nodejs )๋กœ ์„ค์ •ํ•˜์—ฌ nvm-windows๋ฅผ ์„ค์น˜ํ•˜๋Š” ๊ฒฝ์šฐ %USERPROFILE%\AppData\Roaming\nvm\elevate.cmd ์˜ ๋‚ด์šฉ์„ ๋‹ค์Œ์œผ๋กœ ๋Œ€์ฒดํ•˜์—ฌ ์ ‘ํ•ฉ์œผ๋กœ ์ „ํ™˜ํ•˜๊ณ  ์Šน๊ฒฉ์„ ๊ฑด๋„ˆ๋›ธ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‹ค์Œ๊ณผ ๊ฐ™์€:

<strong i="8">@setlocal</strong>
<strong i="9">@echo</strong> off
set CMD=%*
REM Old 'elevate.cmd' commands...
REM set APP=%1
REM start wscript //nologo "%~dpn0.vbs" %*

REM New 'elevate.cmd' commands...
%CMD:mklink /D=mklink /J%

๊ทธ๋Ÿฌ๋ฉด mklink /D ๋ฅผ mklink /J ๋กœ ๋Œ€์ฒดํ•˜์—ฌ ๊ถŒํ•œ ์ƒ์Šน ์—†์ด ๋ช…๋ น์„ ์‹คํ–‰ํ•˜์—ฌ ๋””๋ ‰ํ† ๋ฆฌ ์ ‘ํ•ฉ์„ ๋Œ€์‹  ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.

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

๋ถˆํ–‰ํžˆ๋„, ์ด๊ฒƒ์„ ํ•  ๋ฐฉ๋ฒ•์ด ์—†์Šต๋‹ˆ๋‹ค. VBScript๋Š” ๋…ธ๋“œ๋ฅผ ํŒŒ์ผ ์‹œ์Šคํ…œ์— ์‹ฌ๋ณผ๋ฆญ ๋งํฌํ•˜๋Š” ๋ฐ ํ•„์š”ํ•œ ๊ถŒํ•œ ์ƒ์Šน ๋ช…๋ น์„ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

๋ˆ„๊ตฐ๊ฐ€๊ฐ€ ๋Œ€์•ˆ์„ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค๋ฉด ๋‚˜๋Š” PR์— ์—ด๋ ค ์žˆ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ด์ƒ์ ์ธ ์ƒํ™ฉ์€ ์ด๊ฒƒ์„ Go ์•ฑ์— ํฌํ•จ์‹œํ‚ค๋Š” ๊ฒƒ์ด์ง€๋งŒ, ์ด๊ฒƒ์„ ํƒ์ƒ‰ํ•  ์‹œ๊ฐ„์ด ์ถฉ๋ถ„ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

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

์ฐธ๊ณ ๋กœ ์—ฌ๊ธฐ NTFS ์ ‘ํ•ฉ์— ๋Œ€ํ•ด ์ถ”์ ํ•˜๋Š” ์˜ค๋ž˜๋œ ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

@h404bi ์ฝ”๋“œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค! Exit Code 5: Access Denied ๋ฅผ ์–ป์—ˆ์ง€๋งŒ ์ƒ์Šน๋œ cmd์—์„œ ์‹คํ–‰ํ•  ๋•Œ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค(vba๋Š” ๋” ์ด์ƒ ์‚ฌ์šฉ๋˜์ง€ ์•Š์Œ).

@coreybutler #79๋ฅผ ๊ณ ๋ คํ•  ๋•Œ ์–ด๋–ค ๋ฐฉํ–ฅ์œผ๋กœ ๊ฐˆ ๊ฒƒ์ธ์ง€ ์˜๊ฒฌ์ด ์žˆ์œผ์‹ญ๋‹ˆ๊นŒ?

@AllainPL
C:\Program Files / C:\Program Files\nodejs ๋˜๋Š” ์ƒ์Šน๋œ ๊ถŒํ•œ์ด ํ•„์š”ํ•œ ๋‹ค๋ฅธ ๊ฒฝ๋กœ์— ์žˆ๋Š” ํ•ญ๋ชฉ์ด ์žˆ๋Š” ๊ฒฝ์šฐ์—๋„ ์ƒ์Šน๋œ cmd๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

์„ค์ •.txt

root: C:\Users\<omitted>\path\to\nvm-windows\nodejs
arch: 64
proxy: none

์‚ฌ์šฉ์ž ๊ณต๊ฐ„์—์„œ nvm์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์ฆ‰, ๋ชจ๋“  nvm ๋ฐ ๋…ธ๋“œ ํ•ญ๋ชฉ์ด %USERPROFILE% ์— ์ €์žฅ๋˜์–ด C:\Program Files ์•ก์„ธ์Šคํ•  ํ•„์š”๊ฐ€ ์—†์œผ๋ฏ€๋กœ ์ผ๋ฐ˜ ์ œํ•œ๋œ ์‚ฌ์šฉ์ž๋กœ ๋ชจ๋“  ๊ฒƒ์„ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. , vbscript ์—†์ด, UAC ํŒ์—… ์—†์ด. ๋‚ด WINdows 7 SP1 ๋ฐ Windows 10 ์ปดํ“จํ„ฐ์—์„œ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

๊ทธ๋Ÿฌ๋‚˜ ์ด๊ฒƒ์€ ๋ชจ๋‘ ๋‚ด๊ฐ€ ์‹œ์Šคํ…œ ์ „์ฒด์— ์„ค์น˜๋œ nodejs๋ฅผ ๊ด€๋ฆฌํ•  ์ˆ˜ ์—†๋‹ค๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ์ €๋Š” ๊ดœ์ฐฎ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ์ €๋Š” ์‹œ์Šคํ…œ ์ „์ฒด์— ์„ค์น˜๋œ nodejs๊ฐ€ ์—†๊ณ  ๋‚ด ์‚ฌ์šฉ์ž ๊ณต๊ฐ„์— ์žˆ๋Š” nodejs๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ๋งŒ ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. ๋ชจ๋“  ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.

@AllainPL - ๋‚ด ์„ฑํ–ฅ์€ ์‹ฌ๋ณผ๋ฆญ ๋งํฌ ์œ ํ˜•์„ ์„ค์ •์œผ๋กœ ๊ตฌ์„ฑํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ; ์ด๊ฒƒ์€ 2.XX ๊ธฐ๋Šฅ์ผ ๊ฐ€๋Šฅ์„ฑ์ด ๋†’์œผ๋ฏ€๋กœ ์ฆ‰๊ฐ์ ์ธ ETA๋Š” ์—†์Šต๋‹ˆ๋‹ค. ์ผ๋‹จ Fenix โ€‹โ€‹3๋ฅผ ์ถœ์‹œํ•˜๊ณ  ๋‚˜๋ฉด ๋‹ค์Œ ๋ฆด๋ฆฌ์Šค์— ์ง‘์ค‘ํ•  ์‹œ๊ฐ„์ด ๋” ๋งŽ์•„์งˆ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

BTW: ์‚ฌ์šฉ์ž์—๊ฒŒ PowerShell์ด โ€‹โ€‹์„ค์น˜๋˜์–ด ์žˆ๋Š” ๊ฒฝ์šฐ ๋Œ€์‹  ๋‹ค์Œ ๋ช…๋ น์ค„์„ ์‚ฌ์šฉํ•˜์—ฌ UAC ํ”„๋กฌํ”„ํŠธ์— VBScript๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

powershell -NoLogo Start -Verb:RunAs -Wait -FilePath:<executable> -ArgumentList:<args>

๋˜ํ•œ NodeJS ๊ฒฝ๋กœ๋ฅผ ์‚ฌ์šฉ์ž ๋กœ์ปฌ ํด๋”(์˜ˆ: %USERPROFILE%\AppData\Local\nodejs )๋กœ ์„ค์ •ํ•˜์—ฌ nvm-windows๋ฅผ ์„ค์น˜ํ•˜๋Š” ๊ฒฝ์šฐ %USERPROFILE%\AppData\Roaming\nvm\elevate.cmd ์˜ ๋‚ด์šฉ์„ ๋‹ค์Œ์œผ๋กœ ๋Œ€์ฒดํ•˜์—ฌ ์ ‘ํ•ฉ์œผ๋กœ ์ „ํ™˜ํ•˜๊ณ  ์Šน๊ฒฉ์„ ๊ฑด๋„ˆ๋›ธ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‹ค์Œ๊ณผ ๊ฐ™์€:

<strong i="8">@setlocal</strong>
<strong i="9">@echo</strong> off
set CMD=%*
REM Old 'elevate.cmd' commands...
REM set APP=%1
REM start wscript //nologo "%~dpn0.vbs" %*

REM New 'elevate.cmd' commands...
%CMD:mklink /D=mklink /J%

๊ทธ๋Ÿฌ๋ฉด mklink /D ๋ฅผ mklink /J ๋กœ ๋Œ€์ฒดํ•˜์—ฌ ๊ถŒํ•œ ์ƒ์Šน ์—†์ด ๋ช…๋ น์„ ์‹คํ–‰ํ•˜์—ฌ ๋””๋ ‰ํ† ๋ฆฌ ์ ‘ํ•ฉ์„ ๋Œ€์‹  ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.

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