Pathloader - Windows ์ฌ์ฉ์ PATH(HKCU) ๊ด๋ฆฌ ์ ํธ๋ฆฌํฐ
๊ฐ๋จํ ์ค๋ช
Pathloader๋ Windows์์ ์ฌ์ฉ์ ์์ค(HKCU)์ PATH ํ๊ฒฝ๋ณ์๋ฅผ ์ฝ๊ฒ ๊ด๋ฆฌํ๋๋ก ๋๋ ์์ ์คํฌ๋ฆฝํธ ๋ชจ์์
๋๋ค.
scripts/list.txt์ ๋๊ตฌ์ bin ๊ฒฝ๋ก๋ฅผ ์ ๊ณ , ์ฒดํฌ ์คํฌ๋ฆฝํธ๋ก ๋๋ฝ ์ฌ๋ถ๋ฅผ ํ์ธํ ๋ค ๋ฐฐ์น ํ์ผ๋ก ๋๋ฝ๋ ํญ๋ชฉ์ ์ฌ์ฉ์ PATH์ ์ถ๊ฐํ๋ ํ๋ฆ์ผ๋ก ์ค๊ณ๋์ด ์์ต๋๋ค.
์ฃผ์ ํ์ผ
scripts/check_user_path.ps1-list.txt์ ๋ช ์๋ ๊ฒฝ๋ก๋ค์ด ์ฌ์ฉ์ PATH์ ์๋์ง ๊ฒ์ฌํฉ๋๋ค.scripts/set_user_path.bat-list.txt๋๋ ๋ช ๋ นํ ์ธ์๋ก ์ ๋ฌ๋ ์ธ๋ฏธ์ฝ๋ก (;) ๊ตฌ๋ถ ๊ฒฝ๋ก๋ค์ ์ฌ์ฉ์ PATH์ ์ ํ(prepend)์ผ๋ก ์ถ๊ฐํฉ๋๋ค.scripts/list.txt- ์์ ๊ฒฝ๋ก ๋ชฉ๋ก(ํ ์ค์ ํ๋,#์ผ๋ก ์ฃผ์ ์ฒ๋ฆฌ ๊ฐ๋ฅ)..github/workflows/ci.yml- (์ต์ ) Windows runner์์ ์ฒดํฌ ์คํฌ๋ฆฝํธ๋ฅผ ์คํํ๋๋ก ๊ตฌ์ฑ๋ ์์ ์ํฌํ๋ก.LICENSE,.gitignore- ๋ผ์ด์ ์ค์ git ๋ฌด์ ๊ท์น.
๋น ๋ฅธ ์์ (Quick start)
-
์ ์ฅ์ ๊ฐ์ ธ์ค๊ธฐ
- ์ด ํด๋๋ฅผ ์ํ๋ ์์น๋ก ๋ณต์ฌํ๊ฑฐ๋ GitHub์์ ํด๋ก ํ์ธ์. ์:
D:\Pathloader
- ์ด ํด๋๋ฅผ ์ํ๋ ์์น๋ก ๋ณต์ฌํ๊ฑฐ๋ GitHub์์ ํด๋ก ํ์ธ์. ์:
-
๊ฒฝ๋ก ๋ชฉ๋ก ํธ์ง
scripts/list.txt์ ์ถ๊ฐํ๋ ค๋ ๋๊ตฌ์ bin ๋๋ ํฐ๋ฆฌ๋ฅผ ํ ์ค์ ํ๋์ฉ ์ ์ต๋๋ค. ์:C:\msys64\mingw64\bin๋๋C:\ProgramData\chocolatey\bin
-
๊ฒ์ฌ (PowerShell)
- PowerShell์์(์ ์ฅ์ ๋ฃจํธ):
Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass
.\scripts\check_user_path.ps1- ์คํฌ๋ฆฝํธ๋ ๋ชจ๋ ํญ๋ชฉ์ด ์กด์ฌํ๋ฉด ์ข
๋ฃ์ฝ๋ 0, ์ผ๋ถ ๋๋ฝ์ด๋ฉด 1,
list.txt๊ฐ ์๊ฑฐ๋ ๋น์ด์์ผ๋ฉด 2๋ฅผ ๋ฐํํฉ๋๋ค.
- ๋๋ฝ ํญ๋ชฉ ์ถ๊ฐ
-
set_user_path.bat๋ ๋ ๊ฐ์ง ๋ฐฉ์์ผ๋ก ๋์ํฉ๋๋ค:scripts/list.txt๊ฐ ์กด์ฌํ๋ฉด ๊ทธ ๋ด์ฉ์ ์ฌ์ฉ- ์กด์ฌํ์ง ์์ผ๋ฉด ๋ฐฐ์น ํ์ผ์ ์ฒซ ๋ฒ์งธ ์ธ์์์ ์ธ๋ฏธ์ฝ๋ก (;)์ผ๋ก ๊ตฌ๋ถ๋ ๊ฒฝ๋ก ๋ฌธ์์ด์ ์ฌ์ฉ
-
์ (๋ช ๋ น ํ๋กฌํํธ):
-
cd D:\Pathloader\scripts
set_user_path.bat "C:\custom\bin;C:\another\bin"- ์ (PowerShell):
cd D:\Pathloader\scripts
.\n+# ๋๋ Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass & .\set_user_path.bat "C:\custom\bin;C:\another\bin"- ๋ณ๊ฒฝ ํ์ธ
- ์ PowerShell ์ฐฝ์ ์ด๊ณ
$env:Path๋๋Get-ChildItem env:Path๋ก ๋ฐ์ ์ฌ๋ถ๋ฅผ ํ์ธํ์ธ์.
- ์ PowerShell ์ฐฝ์ ์ด๊ณ
์์ ๋ฐ ์ฃผ์์ฌํญ
- ๊ถํ: ์ด ์คํฌ๋ฆฝํธ๋ ์ฌ์ฉ์ ์์ค(HKCU)์ ์์ ํ๋ฏ๋ก ๊ด๋ฆฌ์ ๊ถํ์ด ํ์ํ์ง ์์ต๋๋ค.
- ์คํ ์ ์ฑ
:
set_user_path.bat๋ ๋ด๋ถ์ ์ผ๋ก ์์ PowerShell ์คํฌ๋ฆฝํธ๋ฅผ ์์ฑํ๊ณ-ExecutionPolicy Bypass๋ก ์คํํฉ๋๋ค. ์กฐ์ง์ ๋ณด์์ ์ฑ ์ ๋ฐ๋ผ ์ ํ๋ ์ ์์ต๋๋ค. - ์์ ํ์ผ ์ถฉ๋ ์๋ฐฉ: ๋ฐฐ์น ํ์ผ์
%TEMP%์ ์์ PS ์คํฌ๋ฆฝํธ๋ฅผ ์์ฑํฉ๋๋ค. ๋์ผํ ์ด๋ฆ์ ์ถฉ๋ ๊ฐ๋ฅ์ฑ์ ์ค์ด๊ธฐ ์ํด(์: ํ๋ก์ธ์ค ID ๋๋ ํ์์คํฌํ๋ฅผ ํฌํจํ ์ด๋ฆ ์ฌ์ฉ)์ ๊ถ์ฅํฉ๋๋ค. (ํ์ฌ ๋ฐฐ์นํ์ผ์์๋_set_user_path_tmp.ps1์ ์ฌ์ฉํฉ๋๋ค.) - ๋ฐฑ์
๊ถ์ฅ: ๋๊ท๋ชจ ๋ณ๊ฒฝ ์ ์ ํ์ฌ ์ฌ์ฉ์ PATH๋ฅผ ๋ฐฑ์
ํ์ธ์. PowerShell์์ ์:
[Environment]::GetEnvironmentVariable('Path','User') | Out-File user_path_backup.txt. - ๋ธ๋ก๋์บ์คํธ ์ ํ: ์คํฌ๋ฆฝํธ๋ WM_SETTINGCHANGE๋ฅผ ์ ์กํ์ฌ Explorer ๋ฑ์๊ฒ ์๋ฆฌ์ง๋ง, ์ด๋ฏธ ์คํ ์ค์ธ ์ผ๋ถ ํ๋ก๊ทธ๋จ์ ๋ณ๊ฒฝ์ ์ธ์ํ๋ ค๋ฉด ์ฌ์์์ด ํ์ํ ์ ์์ต๋๋ค.
ํ ๋ฐ ํ์ฅ ์ ์
- ์กด์ฌํ๋ ๊ฒฝ๋ก๋ง ์ถ๊ฐํ๋๋ก ํ๋ ์ต์
(์:
--exist-only) ๋๋ ์ฝ์ ๋ฐฉ์(append vs prepend) ์ต์ ์ ์ถ๊ฐํ๋ฉด ์์ ์ฑ๊ณผ ์ ์ฐ์ฑ์ด ์ฌ๋ผ๊ฐ๋๋ค. - ๊ฒฝ๋ก ์ ๊ทํ ๊ฐ์ (์ฌ๋ณผ๋ฆญ ๋งํฌ, NT ๊ฒฝ๋ก, ํ๊ฒฝ๋ณ์ ํ์ฅ ๋ฑ)์
check_user_path.ps1์ ์ถ๊ฐํ๋ฉด ๋ ๊ฐ๊ฑดํ ๋น๊ต๊ฐ ๊ฐ๋ฅํฉ๋๋ค.
CI
.github/workflows/ci.yml๋ ์์๋ก Windows runner์์check_user_path.ps1์ ์คํํฉ๋๋ค. CI ํ๊ฒฝ์ PATH๋ ๋ก์ปฌ๊ณผ ๋ค๋ฅผ ์ ์์ผ๋ฏ๋ก, ์ค์ PATH ๋ณ๊ฒฝ(์:set_user_path.bat)์ ๋ก์ปฌ์์ ์คํํด์ผ ํฉ๋๋ค.
๋ผ์ด์ ์ค
- ์ด ํ๋ก์ ํธ๋ MIT ๋ผ์ด์ ์ค๋ก ๋ฐฐํฌ๋ฉ๋๋ค(ํ์ผ
LICENSE์ฐธ๊ณ ).
ํผ๋๋ฐฑ / ๊ธฐ์ฌ
- ์ฌ์ฉ ์ค ๊ฐ์ ์ ์ด๋ ์ถ๊ฐ ๊ธฐ๋ฅ(์: ์์ ํ์ผ๋ช
์ถฉ๋ ์ ๊ฑฐ,
--exist-only์ต์ , ๋ ์ ๊ตํ ์ ๊ทํ)์ด ํ์ํ๋ฉด ์ด์๋ PR์ ์ด์ด์ฃผ์ธ์.
English summary (short)
Pathloader provides simple scripts to manage the user PATH on Windows. Edit scripts/list.txt, run the checker, and use the batch script to add missing tool paths. See the README for additional notes about usage, safety and suggestions for enhancements.