iOS ์ฅ์น์์ Linux ๋ช
๋ น์ค์ ์คํํ ์ ์๋ค๋ ๊ฒ์ ์๊ณ ๊ณ์
จ์ต๋๊น? "์ iPhone์์ ๋ฌธ์ ๋ฉ์์ง ์ฑ์ ์ฌ์ฉํด์ผ ํ๋์?"๋ผ๊ณ ๋ฌผ์ผ์ค ์๋ ์์ต๋๋ค. ๊ณต์ ํ ์ง๋ฌธ์
๋๋ค. ํ์ง๋ง Opensource.com์ ์ฝ์ด๋ณด์๋ฉด ๋ต์ ์์ค ๊ฒ์
๋๋ค. Linux ์ฌ์ฉ์๋ ์ด๋ค ์ฅ์น์์๋ ์ฌ์ฉํ ์ ์๊ณ ์ค์ค๋ก ๋ง์ถคํํ๊ณ ์ถ์ดํ๋ค๋ ๊ฒ์
๋๋ค.
๊ทธ๋ฌ๋ ๋ฌด์๋ณด๋ค๋ ๊ทธ๋ค์ ๋ณต์กํ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ณ ์ถ์ดํฉ๋๋ค.
๋๋ 2๋
๋ iPad XNUMX Mini๋ฅผ ๊ฐ์ง๊ณ ์๋๋ฐ, ์ฌ์ ํ ์ ์์ฑ
์ฝ๊ธฐ์ ๊ธฐํ ์์
์ ๊ฝค ์ข์ต๋๋ค. ๊ทธ๋ฌ๋ ๋๋ ๋ํ ๊ทธ๊ฒ์ ์ฌ์ฉํ์ฌ ํ๋ก๊ทธ๋จ ๋ฐ ์คํฌ๋ฆฝํธ ์ธํธ๊ฐ ์๋ ์์ฉ ํ๋ก๊ทธ๋จ์ ๋ช
๋ น์ค์ ์ก์ธ์คํ๊ณ ์ถ์ต๋๋ค. ์ด๊ฒ์ด ์์ผ๋ฉด ์์
ํ ์ ์์ต๋๋ค. ํ์ค ๊ฐ๋ฐ ํ๊ฒฝ๋ฟ๋ง ์๋๋ผ ์ต์ํ ํ๊ฒฝ๋ ํ์ํฉ๋๋ค. ์ ๊ฐ ์ด๊ฒ์ ๋ฌ์ฑํ ์ ์์๋ ๋ฐฉ๋ฒ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
ํค๋ณด๋์ ์ฐ๊ฒฐ
ํด๋ํฐ์ด๋ ํ๋ธ๋ฆฟ์ ํ๋ฉด ํค๋ณด๋๋ฅผ ํตํด ํ๋ก๊ทธ๋๋ฐํ๊ธฐ ์ํด ๋ช
๋ น์ค์ ์ฌ์ฉํ๋ ๊ฒ์ ๋งค์ฐ ๋ถํธํฉ๋๋ค. Bluetooth๋ฅผ ํตํด ์ธ๋ถ ํค๋ณด๋๋ฅผ ์ฐ๊ฒฐํ๊ฑฐ๋ ์นด๋ฉ๋ผ ์ฐ๊ฒฐ ์ด๋ํฐ๋ฅผ ์ฌ์ฉํ์ฌ ์ ์ ํค๋ณด๋๋ฅผ ์ฐ๊ฒฐํ๋ ๊ฒ์ด ์ข์ต๋๋ค(์ ๋ ํ์๋ฅผ ์ ํํ์ต๋๋ค). Kinesis Advantage ๋ถํ ํค๋ณด๋๋ฅผ iPhone 6์ ์ฐ๊ฒฐํ๋ฉด ๋ค์๊ณผ ์ ์ฌํ ์ด์ํ ์ฅ์น๊ฐ ๋ํ๋ฉ๋๋ค.
iOS์ ์ ธ ์ค์น
iOS์์ ๋ชจ๋ ๊ธฐ๋ฅ์ ๊ฐ์ถ Linux ์์คํ ์ ์คํํ๋ ค๋ฉด ๋ค์ ๋ ๊ฐ์ง ์ต์ ์ด ์์ต๋๋ค.
- Linux ์ปดํจํฐ์ ์ฐ๊ฒฐ๋ SSH(Secure Shell)
- iSH๊ฐ ํฌํจ๋ Alpine Linux๋ฅผ ์ฌ์ฉํ์ฌ ๊ฐ์ ์์คํ ์คํ(์คํ ์์ค์ด์ง๋ง Apple์ ๋ ์ TestFlight ์ ํ๋ฆฌ์ผ์ด์ ์ ์ฌ์ฉํ์ฌ ์ค์นํด์ผ ํจ)
๋์์ผ๋ก ์ ํ๋ ํ๊ฒฝ์์ ์คํ ์์ค ๋๊ตฌ๋ฅผ ์ฌ์ฉํ ์ ์๋ ๊ธฐ๋ฅ์ ์ ๊ณตํ๋ ๋ ๊ฐ์ง ์คํ ์์ค ํฐ๋ฏธ๋ ์๋ฎฌ๋ ์ดํฐ ์ ํ๋ฆฌ์ผ์ด์ ์ด ์์ต๋๋ค. ์ด๊ฒ์ ๊ฐ์ฅ ๊ฐ๋จํ ์ต์ ์ ๋๋ค. ์ค์ ๋ก ์ด๊ฒ์ Linux๊ฐ ์๋ Linux ๋๊ตฌ๋ฅผ ์คํํ๋ ๋ฐฉ๋ฒ์ ๋๋ค. ์ด๋ฌํ ์์ฉ ํ๋ก๊ทธ๋จ์ผ๋ก ์์ ํ ๋ ์ฌ๊ฐํ ๊ธฐ๋ฅ ์ ํ์ด ์์ง๋ง ๋ถ๋ถ์ ์ธ ๋ช ๋ น์ค ๊ธฐ๋ฅ์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
๋ณต์กํ ์๋ฃจ์ ์ผ๋ก ๋์ด๊ฐ๊ธฐ ์ ์ ๊ฐ์ฅ ๊ฐ๋จํ ๋ฐฉ๋ฒ์ ์ดํด๋ณด๊ฒ ์ต๋๋ค.
์ต์ 1: ์๋๋ฐ์ค ์ ธ
๊ฐ์ฅ ์ฌ์ด ๋ฐฉ๋ฒ ์ค ํ๋๋ iOS ์ฑ์ ์ค์นํ๋ ๊ฒ์
๋๋ค.
๊ฑฐ์ ๋์ผํ ๊ธฐ๋ฅ์ ๊ฐ์ง๊ณ ์์ต๋๋ค.
์ต์ 2: SSH
์ฑ ๋ค์ด๋ก๋์ ๋ ๋ค๋ฅธ ๋จ๊ณ๋ SSH ํด๋ผ์ด์ธํธ๋ฅผ ์ค์ ํ๋ ๊ฒ์ ๋๋ค. ์ค๋ซ๋์ ์ฐ๋ฆฌ๋ ๋ค์ํ iOS์ฉ SSH ํด๋ผ์ด์ธํธ ์ฑ์ ์ฌ์ฉํ์ฌ Linux ๋๋ BSD๋ฅผ ์คํํ๋ ์๋ฒ์ ์ฐ๊ฒฐํ ์ ์์์ต๋๋ค. SSH๋ฅผ ์ฌ์ฉํ๋ฉด ์๋ฒ๊ฐ ์ด๋ค ์ํํธ์จ์ด๋ก๋ ๋ฐฐํฌ๋ฅผ ์คํํ ์ ์๋ค๋ ์ฅ์ ์ด ์์ต๋๋ค. ์๊ฒฉ์ผ๋ก ์์ ํ๋ฉด ์์ ๊ฒฐ๊ณผ๊ฐ iOS ์ฅ์น์ ํฐ๋ฏธ๋ ์๋ฎฌ๋ ์ดํฐ๋ก ์ ์ก๋ฉ๋๋ค.
์ต์ 3: Linux ์คํ
SSH๋ฅผ ์ฌ์ฉํ์ฌ Linux ์๋ฒ์ ์ฐ๊ฒฐํ๋ ๊ฒ์ ๋ช ๋ น์ค์ ์ก์ธ์คํ๋ ์ข์ ๋ฐฉ๋ฒ์ด์ง๋ง ์ธ๋ถ ์๋ฒ์ ๋คํธ์ํฌ ์ฐ๊ฒฐ์ด ํ์ํฉ๋๋ค. ์ด๊ฒ์ด ๊ฐ์ฅ ํฐ ์ฅ์ ๋ฌผ์ ์๋์ง๋ง ์์ ํ ๋ฌด์ํ ์๋ ์์ผ๋ฏ๋ก ์๋ฒ ์์ด Linux๋ฅผ ์คํํด์ผ ํ ์๋ ์์ต๋๋ค.
์ด๊ฒ์ด ๋น์ ์ ๊ฒฝ์ฐ๋ผ๋ฉด, ํ ๋จ๊ณ ๋ ๋์๊ฐ์ผ ํ ๊ฒ์
๋๋ค.
iSH๋ก Alpine Linux ์คํ
์ค์ํ ํน์ง : ์คํ์ ์ ์ฉ. iSH๋ ํ์ฌ ํ
์คํธ ์ ํ๋ฆฌ์ผ์ด์
์ด๋ฏ๋ก ์ง์์ ์ด๊ณ ์์ ์ ์ธ ์๋์ ๊ธฐ๋ํ์ง ๋ง์ญ์์ค. TestFlight ์ ํ๋ฆฌ์ผ์ด์
์ ์๊ฐ์ด ์ ํ๋์ด ์์ต๋๋ค. ํ์ฌ ๋น๋๋ 60์ผ ๋์๋ง ์ง์๋ฉ๋๋ค. ์ด๋ 60์ผ ํ์ ์ ๊ฐ ํ๋ฝํ๊ณ ๋ค์ iSH ํ
์คํธ ๋ผ์ด๋์ ๋ค์ ์ฐธ์ฌํด์ผ ํจ์ ์๋ฏธํฉ๋๋ค. ๋ํ iOS์ ํ์ผ์ ์ฌ์ฉํ์ฌ ํ์ผ์ ๋ด๋ณด๋ด๊ฑฐ๋ Git ํธ์คํธ์ ๋ณต์ฌํ์ง ์์ผ๋ฉด ๋ชจ๋ ํ์ผ์ด ์์ค๋ฉ๋๋ค.
iSH ์ค์น
์ค์น๋ถํฐ ์์ํ์ธ์
TestFlight๋ ๋งํฌ๋ฅผ ์ฌ์ฉํ์ฌ ์ฅ์น์ iSH ์ ํ๋ฆฌ์ผ์ด์ ์ ์ค์นํฉ๋๋ค. ๋ค๋ฅธ ์์ฉ ํ๋ก๊ทธ๋จ๊ณผ ๋ง์ฐฌ๊ฐ์ง๋ก ํ๋ฉด์ ์์ด์ฝ์ด ๋ํ๋ฉ๋๋ค.
ํจํค์ง ๊ด๋ฆฌ
iSH๋ Alpine Linux๋ฅผ ์ฌ์ฉํ์ฌ x86 ์๋ฎฌ๋ ์ดํฐ๋ฅผ ์คํํฉ๋๋ค. Alpine์ ํฌ๊ธฐ๊ฐ 5MB ๋ฏธ๋ง์ธ ์์ ๋ฐฐํฌํ์ ๋๋ค. ์ํ์ธ ์์ ์ ์ฒ์์ด๋ผ ๋ฏธ๋๋ฉ๋ฆฌ์ฆ์ด ๊ฑฐ์ฌ๋ฆด ์ค ์์๋๋ฐ ์ค์ ๋ก๋ ๋๋ฌด ๋ง์์ ๋ค์์ด์.
Alpine์ ํจํค์ง ๊ด๋ฆฌ์๋ฅผ ์ฌ์ฉํฉ๋๋ค.
ํจํค์ง๋ฅผ ์ค์นํ๋ ๋ฐฉ๋ฒ:
apk add package
ํจํค์ง๋ฅผ ์ ๊ฑฐํ๋ ๋ฐฉ๋ฒ:
apk del package
๋ค๋ฅธ ๋ช ๋ น ๋ฐ ์ ๋ณด๋ฅผ ์ฐพ๋ ๋ฐฉ๋ฒ:
apk --help
ํจํค์ง ๊ด๋ฆฌ์ ์ ๋ฐ์ดํธ:
apk update
apk upgrade
ํ ์คํธ ํธ์ง๊ธฐ ์ค์น
Alpine์ ๊ธฐ๋ณธ ํ ์คํธ ํธ์ง๊ธฐ๋ Vi์ด์ง๋ง ์ ๋ Vim์ ์ ํธํ๋ฏ๋ก Vim์ ์ค์นํ์ต๋๋ค.
apk add vim
์ํ๋ ๊ฒฝ์ฐ Nano ๋๋ Emacs๋ฅผ ์ค์นํ ์ ์์ต๋๋ค.
์ ๋ณ๊ฒฝ
๋๋ ๋น์ ์ ๋ํด ๋ชจ๋ฅด์ง๋ง ํ์ํ์ต๋๋ค
๋ฌผ๊ณ ๊ธฐ ์ค์น:
apk add fish
์๋ ์์ฑ ๊ธฐ๋ฅ๊ณผ ๋งค๋ด์ผ ํ์ด์ง๊ฐ ํฌํจ๋ Bash๊ฐ ํ์ํ๋ค๋ฉด ์ค์นํ์ธ์:
apk add bash bash-doc bash-completion
Alpine์ ๋ฏธ๋๋ฉ๋ฆฌ์ฆ ์ด๋ฐ์ฌ๋ก๊ธฐ๋ ์ผ๋ฐ์ ์ผ๋ก ๋ค๋ฅธ ๋ฐฐํฌํ์ ํจํค์ง๋ ์ผ๋ถ ํ๋ก๊ทธ๋จ์ด ์ฌ๋ฌ ๊ฐ์ ์์ ํจํค์ง๋ก ๋ถํ ๋๋ค๋ ๊ฒ์ ์๋ฏธํฉ๋๋ค. ์ด๋ ๋ํ ์์คํ ํฌ๊ธฐ๋ฅผ ์ํ๋ ๋ฐฉ์์ผ๋ก ์ ํํ๊ฒ ์ฌ์ฉ์ ์ ์ํ๊ณ ์ค์ผ ์ ์์์ ์๋ฏธํฉ๋๋ค.
Bash ์ค์น์ ๋ํ ์์ธํ ๋ด์ฉ์ ๋ค์์ ์ฐธ์กฐํ์ธ์.
๊ธฐ๋ณธ ์ ๋ณ๊ฒฝ
๋ฌผ๊ณ ๊ธฐ๋ฅผ ์ค์นํ ํ ๋ค์์ ์
๋ ฅํ์ฌ ์์๋ก ์ ํํ ์ ์์ต๋๋ค. fish
๊ทธ๋ฆฌ๊ณ ๊ป์ง ์์ผ๋ก ๋ค์ด๊ฐ๋๋ค. ํ์ง๋ง ์ ๋ fish๋ฅผ ๊ธฐ๋ณธ ์๊ณผ ๋ช
๋ น์ผ๋ก ๋ง๋ค๊ณ ์ถ์ต๋๋ค. chsh
, ๋ค๋ฅธ ๋ฐฐํฌํ์์ ์ฌ์ฉํ ๊ฒ์ ์๋ํ์ง ์์์ต๋๋ค.
๋จผ์ fish๊ฐ ์ค์น๋ ์์น๋ฅผ ์์๋ ๋๋ค.
which fish
๋ด๊ฐ ์ป์ ๊ฒ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
/usr/bin/fish
๋ค์์ผ๋ก ๋ก๊ทธ์ธ ์
ธ์ fish๋ก ๋ณ๊ฒฝํฉ๋๋ค. ์์ ์๊ฒ ํธ๋ฆฌํ ํธ์ง๊ธฐ๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค. ์ด๋ณด์๋ผ๋ฉด Nano๋ฅผ ์ค์นํ์ธ์(๋ค์ ๋ช
๋ น์ ์ฌ์ฉํ์ธ์). apk add nano
) ๊ตฌ์ฑ ํ์ผ์ ํธ์งํ๊ณ CTRL+X๋ฅผ ํตํด ์ ์ฅํ ์ ์๋๋ก ํ์ธํ๊ณ ์ข
๋ฃํฉ๋๋ค.
ํ์ง๋ง ์ ๋ Vim์ ์ฌ์ฉํ์ต๋๋ค.
vim /etc/passwd
๋ด ์ฒซ ๋ฒ์งธ ์ค์ ๋ค์๊ณผ ๊ฐ์์ต๋๋ค.
root:x:0:0:root:/root:/bin/ash
fish๋ฅผ ๊ธฐ๋ณธ ์ ธ๋ก ๋ง๋ค๋ ค๋ฉด ์ด ์ค์ ๋ค์๊ณผ ๊ฐ์ด ๋ณ๊ฒฝํ์ธ์.
root:x:0:0:root:/root:/usr/bin/fish
๊ทธ๋ฐ ๋ค์ ํ์ผ์ ์ ์ฅํ๊ณ ์ข ๋ฃํ์ญ์์ค.
๋ฐ๋ก ์ฌ์ฉํ ์ ์๋๋ก ์ ๊ฒฝ๋ก๋ฅผ ๋ณ๊ฒฝํ๋ ์ข์ ๋ฐฉ๋ฒ์ด ์์ ๊ฒ์ด๋ผ๊ณ ํ์ ํฉ๋๋ค. ํ์ง๋ง ์ ๋ชจ๋ฅด๊ธฐ ๋๋ฌธ์ ์ ํ๋ฆฌ์ผ์ด์ ๋ธ๋ผ์ฐ์ ๋ก ๋์๊ฐ์ ๊ฐ์ ๋ก ์ ธ์ ์ข ๋ฃํ๊ณ ์์ ์ ์ํด iPad๋ iPhone์ ๊ป๋ค๊ฐ ๋ค์ ์์ํ๋ ๊ฒ์ด ์ข์ต๋๋ค. "Welcome to Alpine!" ๋ฉ์์ง์ ํจ๊ป iSH๋ฅผ ๋ค์ โโ์ฝ๋๋ค. apk์์ ์คํํ๋ ๋ฐฉ๋ฒ์ ๋ํ ์ ๋ณด๊ฐ ์์ผ๋ฉด ํ์ค fish ๋ก๊ทธ์ธ ํ์ ๋ฉ์์ง๊ฐ ํ์๋ฉ๋๋ค. ์น๊ทผํ ์ธํฐ๋ํฐ๋ธ ์ ํผ์ฌ์ ์ค์ ๊ฒ์ ํ์ํฉ๋๋ค. ๋ง์ธ!
Python ๋ฐ pip ์ค์
๋๋ ์ถ๊ฐํ๊ธฐ๋ก ๊ฒฐ์ ํ๋ค
apk add python3
Python 2.x๋ ์ค๋๋์์ง๋ง ์ค์นํ ์ ์์ต๋๋ค.
apk add python
pip๋ผ๋ Python ํจํค์ง ๊ด๋ฆฌ์๋ฅผ ์ค์นํด ๋ณด๊ฒ ์ต๋๋ค.
python3 -m ensurepip --default-pip
ํจํค์ง ๊ด๋ฆฌ์๋ฅผ ์ค์นํ๊ณ ๊ตฌ์ฑํ๋ ๋ฐ ์๊ฐ์ด ๊ฑธ๋ฆฌ๋ฏ๋ก ๊ธฐ๋ค๋ฆฌ์ญ์์ค.
๊ทธ๋ฐ ๋ค์ ๋คํธ์ํฌ๋ฅผ ํตํด ํ์ผ์ ์ ์กํ๋ ๋๊ตฌ๋ฅผ ๋ค์ด๋ก๋ํ ์ ์์ต๋๋ค.
apk add curl
๋งค๋ด์ผ ์ฝ๊ธฐ
Fish๋ ๋งค๋ด์ผ ํ์ด์ง๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ๋ด์ฅ๋ ์๋ ์์ฑ์ ์ฌ์ฉํฉ๋๋ค. ๋ค๋ฅธ ๋ช
๋ น์ค ์ฌ์ฉ์์ ๋ง์ฐฌ๊ฐ์ง๋ก ์ ๋ ๋งค๋ด์ผ์ ์ฌ์ฉํฉ๋๋ค. man
, ๊ทธ๋ฌ๋ Alpine์๋ ์ค์น๋์ด ์์ง ์์ต๋๋ค. ๊ทธ๋์ ํฐ๋ฏธ๋ ํธ์ถ๊ธฐ๋ก ์ค์นํ์ต๋๋ค.
apk add man man-pages less less-doc
๋จ์ ์ธ์ ๋๋ ์
์ฅํ ๊ฒ์ ์ฌ์ฉํฉ๋๋ค
์ ๋ pip๋ฅผ ์ฌ์ฉํ์ฌ ์ค์นํ์ต๋๋ค.
pip install tldr
ํ tldr
์ ํ์ด์ง์ ๋ํ ์์ฒญ์ด ๋ฐ์ํ๋ฉด ์น์ ์ฐ๊ฒฐํ์ฌ ํ์ด์ง๋ฅผ ๊ฒ์ํฉ๋๋ค. ๋ช
๋ น์ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ ์์์ผ ํ๋ค๋ฉด ๋ค์๊ณผ ๊ฐ์ด ์์ฑํ ์ ์์ต๋๋ค. tldr curl
์ผ๋ฐ ์์ด๋ก ๋ ์ค๋ช
๊ณผ ๋ช
๋ น ์ฌ์ฉ ๋ฐฉ๋ฒ์ ๋ํ ์ข์ ์๋ฅผ ํ์ธํ์ธ์.
๋ฌผ๋ก ์ด ๋ชจ๋ ์ค์น ์์
์ ๋ค์์ ์ฌ์ฉํ์ฌ ์๋ํํ ์ ์์ต๋๋ค.
์ถ๊ฐ ์ ๋ณด
iSH Wiki์๋ "
๋ค๋ฅธ ์ํค ํ์ด์ง์์๋ ๋ฐฉ๋ฒ์ ์ค๋ช
ํฉ๋๋ค.
Git์ ์ค์นํ ์๋ ์์ต๋๋ค(์! apk add git
) ์์
์ ์๊ฒฉ ์ ์ฅ์์ ํธ์ํ๊ฑฐ๋ SSH๋ฅผ ํตํด ์๋ฒ๋ก ์ ์กํฉ๋๋ค. ๋ฌผ๋ก GitHub์์ ํ๋ฅญํ ์คํ ์์ค ํ๋ก์ ํธ๋ฅผ ์ผ๋ง๋ ์ง ๋ค์ด๋ก๋ํ์ฌ ์คํํ ์ ์์ต๋๋ค.
iSH์ ๋ํ ์์ธํ ๋ด์ฉ์ ๋ค์ ๋งํฌ์์ ํ์ธํ ์ ์์ต๋๋ค.
๊ด๊ณ ์ ๊ถ๋ฆฌ์
๋ธ๋์๋ ์ ๊ณต
์ถ์ฒ : habr.com