-
๐ Ch19 Installing Software from Source Code ๐๐ฎ ํ๊ต ๊ณต๋ถ/๐ ์ ๋์ค ์์คํ 2025. 6. 1. 10:35
Open Source Licensing
BSD License
์์ค ์ฝ๋๋ฅผ ์์ ํ ์ ์์
์์ ํ ์ฝ๋๋ฅผ ์ฌ๋ฐฐํฌํ์ง ์์๋ ๋จ
BSD ์ฝ๋๊ฐ ์ฌ์ฉ๋์์์ ๊ธฐ์ฌํ๋ฉด ๋จ
์์ ์ฉ, ๋ ์ ์ํํธ์จ์ด๋ก๋ ์ฌ์ฉ ๊ฐ๋ฅ
GNU Public License (GPL)
์นดํผ๋ ํํธ ๋ผ์ด์ ์ค๋ผ๊ณ ๋ถ๋ฆผ
๋ฐฐํฌ๋ ์ํํธ์จ์ด์ ์์ ๋ฒ์ ์ ๋ฐ๋์ ๋์ผํ GPL ์กฐ๊ฑด์ผ๋ก ๋ค์ ๊ณต๊ฐํด์ผ ํจ
์คํ์์ค๋ผ๊ธฐ๋ณด๋ค๋ ์์ ์ํํธ์จ์ด๋ก ๋ถ๋ฅ๋จ
Install Lynx software
Download from lynx.isc.org
Unzip
PATH=$PATH:/usr/sfw/bin:/usr/ccs/bin:.
->์ปดํ์ผ ๊ณผ์ ์์ ํ์ํ ์ปดํ์ผ๋ฌ๋ GNU ์ ํธ๋ฆฌํฐ๊ฐ ์ค์น๋ ๋๋ ํฐ๋ฆฌ PATH์ ๋ฏธ๋ฆฌ ์ถ๊ฐํด ์ค
ํ์ฌ ์ธ์ ์์ gcc, make, ar ๋ฑ์ ๋ช ๋ น์ด ์ ๋๋ก ์ธ์๋จ
Export PATH
./configure -> ์์ค ์ฝ๋ ๋๋ ํฐ๋ฆฌ๋ก ์ด๋ํ ๋ค, ๋ฃจํธ ๋๋ ํฐ๋ฆฌ์ ์๋ configure ์คํฌ๋ฆฝํธ ์คํ
make -> .c ํ์ผ์ gcc -c๋ก ์ปดํ์ผํ์ฌ .o(๊ฐ์ฒด ํ์ผ) ์์ฑ / ์์ฑ๋ ๊ฐ์ฒด ํ์ผ๋ค์ ๋งํฌํ์ฌ ์ต์ข ์คํ ํ์ผ ์์ฑ
make install -> ์ปดํ์ผ๋ ์คํ ํ์ผ, ๊ด๋ จ ๋ผ์ด๋ธ๋ฌ๋ฆฌ, ๋งค๋ด์ผ ํ์ด์ง, ์ค์ ํ์ผ ๋ฑ์ ์์คํ ์์ ํ์ค ์์น๋ก ๋ณต์ฌ
Run Lynx
compile C grogram
gcc hello.c: hello.c ํ์ผ์ ์ปดํ์ผํ์ฌ ๊ฐ์ฒด ํ์ผ๋ก ๋ง๋ค๊ณ , ๋ฐ๋ก ๋งํฌ ๋จ๊ณ๋ฅผ ๊ฑฐ์ณ ์คํ ํ์ผ๊น์ง ํ ๋ฒ์ ์์ฑ / ๊ธฐ๋ณธ ์คํ ํ์ผ ์ด๋ฆ์ a.out
gcc -o hello(์คํํ์ผ ์ด๋ฆ) hello.c(์์คํ์ผ): hello.c๋ฅผ ์ปดํ์ผํ์ฌ ๊ฐ์ฒด ํ์ผ๋ก ๋ง๋ค๊ณ , ๊ฐ์ฒด ํ์ผ์ ๋งํฌํ์ฌ ์คํ ํ์ผ์ ์์ฑํ๋ ๊ณผ์ ๊น์ง ํ ๋ฒ์ ์ฒ๋ฆฌํ๋, ์ต์ข ์คํ ํ์ผ์ ์ด๋ฆ์ hello๋ก ์ง์
gcc -c main.c sub1.c sub2.c: ๊ฐ ์์ค ํ์ผ์ ์ปดํ์ผ ๋จ๊ณ๊น์ง๋ง ์ํํ๋ฉฐ ๊ฐ๊ฐ์ ๊ฐ์ฒด ํ์ผ ์์ฑ(์คํ ํ์ผ ์์ฑ X)
gcc -o maketest main.o sub1.o sub2.o: ์์ ์์ฑ๋ ๊ฐ์ฒด ํ์ผ๋ค์ ๋งํฌํ์ฌ, ์ต์ข ์คํ ํ์ผ์ธ maketest ์์ฑ
make: ๋๋ ํฐ๋ฆฌ์ makefile, Makefile์ด๋ผ๋ ์ด๋ฆ์ ํ์ผ ์์ผ๋ฉด, ๊ทธ ์์ ์ ์๋ ๊ท์น ์ฝ์ด ์๋์ผ๋ก ๋น๋ ๊ณผ์ ์คํ
make -f make.my: ๊ธฐ๋ณธ ์ด๋ฆ ์๋ ๋ค๋ฆ ์ด๋ฆ์ผ๋ก Makefile์ ๊ด๋ฆฌํ๊ณ ์ถ์ ๋ ์ง์
make <target>: Makefile์ ์ฌ๋ฌ ๊ฐ์ ํ๊ฒ์ด ์ ์๋์ด ์์ ๋(maketest, clean, install, test ๋ฑ), ๊ทธ์ค ํ๋๋ง ์คํ
makefile/Makefile
ํ๋ก์ ํธ๋ฅผ ์ปดํ์ผ, ๋น๋, ๊ด๋ฆฌํ๊ธฐ ์ํด ์ฌ์ฉ๋๋ ํ ์คํธ ํ์ผ / ํ๊ฒ, ์์กด์ฑ, ์คํํ ๋ช ๋ น์ ๊ท์น ํํ๋ก ๊ธฐ์
<default target> : <dependency lists> <tab><command> <target> : <dependency lists> <tab><command> <target> : <dependency lists> <tab><command> … <label> : <tab><command>
ํ๊ฒ: make ๋ช ๋ น์ ์คํํ์ ๋ ๋ง๋ค๊ณ ์ ํ๋ ๊ฒฐ๊ณผ๋ฌผ/์ด๋ฆ(ex. ์คํ ํ์ผ, ๋ผ์ด๋ธ๋ฌ๋ฆฌ, ๊ฐ์ฒด ํ์ผ ๋ฑ)
์์กด์ฑ: ํด๋น ํ๊ฒ์ ์์ฑํ๊ธฐ ์ํด ๋ฐ๋์ ๋จผ์ ์กด์ฌํด์ผ ํ๋ ํ์ผ ๋๋ ๋ค๋ฅธ ํ๊ฒ
๋ช ๋ น: ์์กด์ฑ์ด ๋ง์กฑ๋์์ ๋ ์ค์ ๋ก ํฐ๋ฏธ๋์์ ์คํํ ์ ๋ช ๋ น(ex. compile, link ๋ฑ) / ๋ฐ๋์ ํญ ๋ฌธ์๋ก ๋ค์ฌ์ฐ๊ธฐํด์ผ ํ๋ฉฐ, ๊ณต๋ฐฑ์ผ๋ก ๋์ฒดํ๋ฉด ์ ๋จ
default target: ์ฌ์ฉ์๊ฐ ๋งจ๋จ์์ make๋ง ์ ๋ ฅํ์ ๋, ๊ธฐ๋ณธ ํ๊ฒ์ด ๊ฐ์ฅ ๋จผ์ ์คํ๋จ
'๐ฎ ํ๊ต ๊ณต๋ถ > ๐ ์ ๋์ค ์์คํ ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
๐ Ch18 Backup Tools ๐ (0) 2025.05.31 ๐ Ch16 Unix Networking ๐ (0) 2025.05.31 ๐ Ch14 Advanced Shell Scripting ๐ (0) 2025.05.31 ๐ Ch13 Basic Shell Scripting ๐ (0) 2025.05.20 ๐ Ch11 Running program at specified times ๐ (0) 2025.04.12