ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • ๐Ÿ… 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๋งŒ ์ž…๋ ฅํ–ˆ์„ ๋•Œ, ๊ธฐ๋ณธ ํƒ€๊ฒŸ์ด ๊ฐ€์žฅ ๋จผ์ € ์‹คํ–‰๋จ

Designed by Tistory.