κ°λ₯ν κ²½μ° ν¨ν€μ§ (MacPorts / apt-get)μμ μννΈμ¨μ΄λ₯Ό μ€μΉνλ λμ μμ€μμ ν¨ν€μ§λ₯Ό μ»΄νμΌν΄μΌνλ κ²½μ°κ° μ’
μ’
μμ΅λλ€. ./configure && make && sudo make install
μΌλ°μ μΌλ‘ μΆ©λΆνμ§λ§ λλ‘λ μλνμ§ μμΌλ©° λλ‘λ μλνμ§ μλ κ²½μ°κ° μ’
μ’
μμ΅λλ€. μ΄κ²μ κ±°μ νμ μ΄λ€ λ°©μμΌλ‘ λ€λ₯Έ λΌμ΄λΈλ¬λ¦¬ μ’
μμ±κ³Ό κ΄λ ¨μ΄ μμ΅λλ€.
λ€μμ λ°°μ°κ³ μΆμ΅λλ€.
- μ΄λ€ μΈμλ₯Ό μ λ¬ν΄μΌνλμ§ μ΄λ»κ² μ μ
./configure
μμ΅λκΉ? - OS X / Linuxμμ 곡μ λΌμ΄λΈλ¬λ¦¬κ° μλνλ λ°©μ-νμΌ μμ€ν
μμ
./configure && make
μμ£Όνλ μμΉ, μ°Ύλ λ°©λ², λ§ν¬μ μ€μ λ‘ λ°μνλ μν© - 곡μ λΌμ΄λΈλ¬λ¦¬μ μ μ μΌλ‘ λ§ν¬ λ λΌμ΄λΈλ¬λ¦¬μ μ€μ μ°¨μ΄μ μ 무μμ λκΉ? μ μ μ μΌλ‘ λͺ¨λ κ²μ μ μ μΌλ‘ λ§ν¬ ν μ μμ΅λκΉ (μμ¦ RAMκ³Ό λμ€ν¬ 곡κ°μ΄ μ λ ΄ν©λλ€) λ°λΌμ μ΄μν λΌμ΄λΈλ¬λ¦¬ λ²μ μΆ©λμ νΌν μ μμ΅λκΉ?
- μ΄λ€ λΌμ΄λΈλ¬λ¦¬μ μ΄λ€ λ²μ μ μ€μΉνλμ§ μ΄λ»κ² μ μ μμ΅λκΉ?
- μΌλ° μμ€ν μ μ€λ¨νμ§ μκ³ μ¬λ¬ λ²μ μ λΌμ΄λΈλ¬λ¦¬λ₯Ό μ€μΉνλ €λ©΄ μ΄λ»κ²ν΄μΌν©λκΉ?
- λ΄κ°νλ©΄ νκ³ κ·Έλ μ§ μμΌλ©΄ ν¨ν€μ§λ₯Ό μ¬μ©νμ¬ κ΄λ¦¬λλ μμ€ν μ μμ€ μ¬λ£λ₯Ό μ€μΉ, κ·Έλ κ²νλ κ°μ₯ κΉ¨λν λ°©λ²μ 무μμ λκΉ?
- μμ€μμ 무μΈκ°λ₯Ό μ΄λ ΄νμ΄ μ»΄νμΌνλ€κ³ κ°μ νλ©΄ μ΄λ»κ² λ€λ₯Έ μ¬λλ€μ΄ κ°μ λꡬλλ₯Ό λ°μ΄ λμ νμκ° μλλ‘ ν¨ν€μ§λ‘ λ§λ€ μ μμ΅λκΉ? νΉν OS Xμμ β¦
- μ΄ κΈ°λ₯μ μ΅νλ €λ©΄ λ§μ€ν°ν΄μΌνλ λͺ λ Ή μ€ λꡬλ 무μμ λκΉ? otool, pkg-config λ±κ³Ό κ°μ κ²λ€
λλ μ¬κΈ°μ κ½€ λ§μ μκ°κ³Ό λ Έλ ₯μ ν¬μ ν μν₯μ΄ μμ΅λλ€. μμ μ§λ¬Έμ μ§μ λλ΅νκ³ μΆμ§λ μμ΅λλ€. μ§μ λλ μ€μ λ‘ λ¬΄μ¨ μΌμ΄ μΌμ΄λκ³ μλμ§ μ΄ν΄ν΄μΌνλ―λ‘ μ€μ€λ‘ λ¬Έμ λ₯Ό μ°ΎμμΌν©λλ€.
λ΅λ³
λͺ¨λ κ²μ μ§μ λλ΅ ν΄ λλ € μ£μ‘νμ§λ§ μ μ©ν μμ΅μ, FAQ λ±μ λͺ¨λ¦ λλ€. κΈ°λ³Έμ μΌλ‘ λ€μμ λ°μ€ν¬ν± μ± (λ°°ν¬μ λμμ΄ λ¨), μ’μ λ° μΈν°λ· κ²μμ 8 λ μ λλ€.
1. ./configureμ μ λ¬ν μΈμλ₯Ό μ΄λ»κ² μ μ μμ΅λκΉ?
μ€μ λ‘ μ°μ΅νμμμ€. Autotoolsλ μΌκ΄μ±μ΄ μκΈ° λλ¬Έμ μΆ©λΆν μ½μ΅λλ€. κ·Έλ¬λ cmake λλ μ¬μ©μ μ μ λΉλ μ€ν¬λ¦½νΈλ₯Ό μ¬μ©νμ¬ λ§μ κ²λ€μ΄ μμ΅λλ€. μΌλ°μ μΌλ‘ ꡬμ±νκΈ° μν΄ μ무κ²λ μ λ¬νμ§ μμλλ©λλ€. μμ€ν μ΄ foo-toolμ λΉλ ν μ μλμ§ μ¬λΆλ₯Ό μμ λ΄μΌν©λλ€.
κ΅¬μ± λ° GNU λꡬλ λͺ¨λ /, / usr λ° / usr / localμμ μ’ μμ±μ μ°Ύμ΅λλ€. MacPorts λλ Finkμμ μ’ μμ±μ μ€μΉ ν κ²½μ° λ¬Έμ κ° λ°μνλ λ€λ₯Έ μμΉλ₯Ό μ€μΉνλ κ²½μ° GNU λκ΅¬κ° μ΄λ¬ν μ’ μμ±μ μ°Ύμ μ μλλ‘ μ Έ νκ²½μ ꡬμ±νκ±°λ μμ νλ €λ©΄ νλκ·Έλ₯Ό μ λ¬ν΄μΌν©λλ€.
2. OS X / Linuxμμ 곡μ λΌμ΄λΈλ¬λ¦¬κ° μλνλ λ°©μ-νμΌ μμ€ν μ μμ£Όνλ μμΉ, ./configure && κ²μ λ°©λ², λ§ν¬μ μ€μ λ‘ λ°μνλ μν©
Linuxμμλ λμ λ§μ»€κ° μ°Ύμ μμλ κ²½λ‘μ μ€μΉν΄μΌν©λλ€. μ΄λ LD_LIBRARY_PATH
νκ²½ λ³μμ /etc/ld.confμ λ΄μ©μΌλ‘ μ μλ©λλ€ . Macμμλ Xcode νλ‘μ νΈκ° μλ ν λλΆλΆμ μ€ν μμ€ μννΈμ¨μ΄μ κ±°μ λμΌν©λλ€. DYLD_LIBRARY_PATH
λμ env λ³μκ° μμ΅λλ€.
λ§μ»€κ° λΌμ΄λΈλ¬λ¦¬λ₯Ό κ²μνλ κΈ°λ³Έ κ²½λ‘κ° μμ΅λλ€. / lib : / usr / lib : / usr / local / libμ λλ€.
CPATH λ³μ λλ CFLAGS λλ λ€λ₯Έ λ§μ νκ²½ λ³μλ₯Ό μ¬μ©νμ¬μ΄λ₯Ό 보μ ν μ μμ΅λλ€ (μ€μ λ‘λ 볡μ‘ν¨). CFLAGSλ λ€μκ³Ό κ°μ΄ μ μν©λλ€.
CFLAGS = β$ CFLAGS -L / new / pathβλ΄λ³΄λ΄κΈ°
-L λ§€κ° λ³μλ λ§ν¬ κ²½λ‘μ μΆκ°ν©λλ€.
νλλ pkg-config λꡬλ₯Ό μ¬μ©ν©λλ€. μ΅μ μ€μΉ νλͺ©μ λΌμ΄λΈλ¬λ¦¬μ λΌμ΄λΈλ¬λ¦¬μ μμΉ λ° λ§ν¬ λ°©λ²μ μ€λͺ νλ .pc νμΌλ μ€μΉν©λλ€. μ΄κ²μ μΈμμ λ μ½κ² λ§λ€ μ μμ΅λλ€. κ·Έλ¬λ OS X 10.5μ ν¨κ» μ 곡λμ§ μμΌλ―λ‘ μ€μΉν΄μΌν©λλ€. λν λ§μ κΈ°λ³Έ λμ κ·Έκ²μ μ§μνμ§ μμ΅λλ€.
μ°κ²° λμμ βλ°νμμμ΄ ν¨μλ₯Ό ν΄κ²°βνλ κ²μ λλ€. μ€μ λ‘ ν° λ¬Έμμ΄ ν μ΄λΈμ λλ€.
3. 곡μ λΌμ΄λΈλ¬λ¦¬μ μ μ μΌλ‘ λ§ν¬ λ λΌμ΄λΈλ¬λ¦¬μ μ€μ μ°¨μ΄μ μ 무μμ λκΉ? μ μ μ μΌλ‘ λͺ¨λ κ²μ μ μ μΌλ‘ λ§ν¬ ν μ μμ΅λκΉ (μμ¦ RAMκ³Ό λμ€ν¬ 곡κ°μ΄ μ λ ΄ν©λλ€) λ°λΌμ μ΄μν λΌμ΄λΈλ¬λ¦¬ λ²μ μΆ©λμ νΌν μ μμ΅λκΉ?
μ μ λΌμ΄λΈλ¬λ¦¬ νμΌμ λ§ν¬νλ©΄ μ½λκ° μμ© νλ‘κ·Έλ¨μ μΌλΆκ°λ©λλ€. ν΄λΉ λΌμ΄λΈλ¬λ¦¬μ κ±°λν .c νμΌμ΄ νλ μκ³ μμ© νλ‘κ·Έλ¨μΌλ‘ μ»΄νμΌ ν κ²μ²λΌ 보μ λλ€.
λμ λΌμ΄λΈλ¬λ¦¬λ λμΌν μ½λλ₯Ό κ°μ§λ§ μ±μ΄ μ€νλ λ λ°νμμ μ½λκ° μ±μλ‘λλ©λλ€ (κ°λ¨ν μ€λͺ ).
μ μ μΌλ‘ λͺ¨λ κ²μ λ§ν¬ ν μ μμ§λ§, κ±°μ λͺ¨λ λΉλ μμ€ν μ΄μ΄λ₯Ό μ½κ² λ§λ€μ§ μμ΅λλ€. λΉλ μμ€ν νμΌμ μλμΌλ‘ νΈμ§ν΄μΌν©λλ€ (μ : Makefile.am λλ CMakeLists.txt). κ·Έλ¬λ λ€λ₯Έ λ²μ μ λΌμ΄λΈλ¬λ¦¬κ° νμν κ²μ μ κΈ°μ μΌλ‘ μ€μΉνκ³ λ³λ ¬λ‘ μ€μΉνλ κ²μ΄ μ΄λ €μ΄ κ²½μ°μλ νμ΅ ν κ°μΉκ° μμ΅λλ€.
νΈλ¦μ λ§ν¬ λΌμΈμ -lfooμμ -l / path / to / static / foo.aλ‘ λ³κ²½νλ κ²μ λλ€.
μ°Ύμμ λ°κΏ μ μμ΅λλ€. κ·Έλ° λ€μ λκ΅¬κ° ldd foo λλ otool -L fooλ₯Ό μ¬μ©νμ¬ .so λλ dylibμ μ°κ²°λμ΄ μμ§ μμμ§ νμΈνμμμ€.
λ λ€λ₯Έ λ¬Έμ λ λͺ¨λ λΌμ΄λΈλ¬λ¦¬κ° μ μ λΌμ΄λΈλ¬λ¦¬λ‘ μ»΄νμΌλλ κ²μ μλλλ€. λ§μ μ¬λλ€μ΄ κ·Έλ μ΅λλ€. κ·Έλ¬λ MacPorts λλ Debianμ μ 곡νμ§ μκΈ°λ‘ κ²°μ νμ μ μμ΅λλ€.
4. μ€μΉ ν λΌμ΄λΈλ¬λ¦¬μ λ²μ μ μ΄λ»κ² μ μ μμ΅λκΉ?
ν΄λΉ λΌμ΄λΈλ¬λ¦¬μ λν pkg-config νμΌμ΄ μμΌλ©΄ μ½μ΅λλ€.
pkg-config βlist-all
κ·Έλ μ§ μμΌλ©΄ μ’ μ’ μ½κ² ν μ μμ΅λλ€. dylibλ λΌμ΄λΈλ¬λ¦¬ λ²μ κ³Ό λμΌν soname (μ : foo.0.1.dylib, sonameμ 0.1)μ κ°μ§ μ μμ΅λλ€. κ·Έλ¬λ μ΄κ²μ νμνμ§ μμ΅λλ€. sonameμ μ΄μ§ κ³μ° κΈ°λ₯μ΄λ―λ‘ λΌμ΄λΈλ¬λ¦¬μ ν¨μ νμμ λ³κ²½νλ©΄ sonameμ μ£Όμ λΆλΆμ μΆ©λμμΌμΌν©λλ€. μλ₯Ό λ€μ΄ μ»μ μ μμ΅λλ€. 2.0 λΌμ΄λΈλ¬λ¦¬μ λ²μ 14.0.5 soname μ΄κ²μ μΌλ°μ μ΄μ§ μμ§λ§.
λλ μ΄λ° μ’ λ₯μ μΌμ μ’μ νκ³ Macμμ μ΄κ²μμν μ루μ μ κ°λ°νμΌλ©° λ€μμ κ·Έκ²μ λν΄ μ΄μΌκΈ°νκ³ μμ΅λλ€.
5. μΌλ° μμ€ν μ μμμν€μ§ μκ³ μ¬λ¬ λ²μ μ λΌμ΄λΈλ¬λ¦¬λ₯Ό μ΄λ»κ² μ€μΉν μ μμ΅λκΉ?
μ΄κ²μ λν λμ ν΄κ²°μ± μ μ¬κΈ°μ μμ΅λλ€ : http://github.com/mxcl/homebrew/
μμ€μμ μ€μΉνλ κ²μ μ’μνκ³ μΌλΆ ν¨ν€μ§ κ΄λ¦¬λ₯Ό ν΅ν΄ μ½κ² λ§λ€ μμλ λꡬλ₯Ό μνμ΅λλ€. μλ₯Ό λ€μ΄ Homebrewλ₯Ό μ¬μ©νμ¬ λΉλν©λλ€. μμ€μμ λμμ§λ§ νΉλ³ν μ λμ¬λ‘ μ€μΉνμμμ€.
/usr/local/Cellar/wget/1.1.4
κ·Έλ° λ€μ homebrew λꡬλ₯Ό μ¬μ©νμ¬ λͺ¨λ κ²μ / usr / localμ μ¬λ³Όλ¦ λ§ν¬νλ―λ‘ / usr / local / bin / wget λ° /usr/local/lib/libwget.dylibκ° μμ΅λλ€.
λμ€μ λ€λ₯Έ λ²μ μ wgetμ΄ νμν κ²½μ° λ³λ ¬λ‘ μ€μΉνκ³ / usr / local νΈλ¦¬μ μ°κ²°λ λ²μ μ λ³κ²½ν μ μμ΅λλ€.
6. λ€λ₯Έ λ°©λ²μΌλ‘ ν¨ν€μ§λ₯Ό μ¬μ©νμ¬ κ΄λ¦¬λλ μμ€ν μ μμ€μ μλ£λ₯Ό μ€μΉνλ κ²½μ° κ°μ₯ κΉ¨λν λ°©λ²μ 무μμ λκΉ?
λλ Homebrew λ°©λ²μ΄ κ°μ₯ κΉ¨λνλ€κ³ ββμκ°νλ―λ‘ μ¬μ©νκ±°λ μ΄μ μμνλ λ°©λ²μ μ¬μ©νμμμ€. / usr / local / pkgs / name / versionμ μ€μΉνκ³ λλ¨Έμ§λ₯Ό symlink λλ νλ λ§ν¬λ‘ μ€μΉνμμμ€.
/ usr / localμ μ¬μ©νμμμ€. μ‘΄μ¬νλ λͺ¨λ λΉλ λꡬλ μ’ μμ±κ³Ό ν€λλ₯Ό κ²μν©λλ€. λΉμ μ μΈμμ ν¨μ¬ μ¬μ μ§ κ² μ λλ€.
7. μμ€μμ 무μΈκ°λ₯Ό μ΄λ ΄ννκ² μ»΄νμΌνλ€κ³ κ°μ νλ©΄, λ€λ₯Έ μ¬λλ€μ΄ κ°μ λꡬλλ₯Ό λ°μ΄ λμ νμκ° μλλ‘ μ΄λ»κ² ν¨ν€μ§λ₯Ό λ§λ€ μ μμ΅λκΉ? νΉν OS Xμμ β¦
μ’ μμ±μ΄ μμΌλ©΄ λΉλ λλ ν 리λ₯Ό μμΆ ν΄μ νμ¬ βmake installβμ μν ν μμλ λ€λ₯Έ μ¬λμκ² μ 곡 ν μ μμ΅λλ€. κ·Έλ¬λ λμΌν λ²μ μ OS Xμ λν΄μλ§ μμ μ μΌλ‘μ΄ μμ μ μν ν μ μμ΅λλ€. Linuxμμλ μλ§λ λμΌν 컀λ λ²μ λ° libc λΆ λ²μ μ μ μ¬ν Linux (μ : Ubuntu)μμ μλ ν μ μμ΅λλ€.
λ°μ΄λ리λ₯Ό μ λμ€μ λ°°ν¬νκΈ°κ° μ½μ§ μμ μ΄μ λ λ°μ΄λ리 νΈνμ± λλ¬Έμ λλ€. GNU μ¬λλ€κ³Ό λ€λ₯Έ μ¬λλ€μ μ΄μ§ μΈν°νμ΄μ€λ₯Ό μμ£Ό λ°κΏλλ€.
κΈ°λ³Έμ μΌλ‘ λ°μ΄λ리λ₯Ό λ°°ν¬νμ§ μμ΅λλ€. μν©μ μλ§λ λ§€μ° μ΄μν λ°©μμΌλ‘ κΉ¨μ§ κ²μ λλ€.
Macμμ κ°μ₯ μ’μ λ°©λ²μ macports ν¨ν€μ§λ₯Ό λ§λλ κ²μ λλ€. λꡬλ macportsλ₯Ό μ¬μ©ν©λλ€. Linuxμλ λ무 λ§μ λΉλ μμ€ν κ³Ό μ‘°ν©μ΄ μμΌλ―λ‘ μ΄μν ꡬμ±μΌλ‘ x λꡬλ₯Ό μμ±νλ λ°©λ²μ λν λΈλ‘κ·Έ νλͺ©μ μμ±νλ κ²λ³΄λ€ λ λμ μ‘°μΈμ μλ€κ³ μκ°ν©λλ€.
macports λλ homebrewμ λν ν¨ν€μ§ μ€λͺ μ μμ±νλ©΄ λꡬλ ν΄λΉ ν¨ν€μ§λ₯Ό μ€μΉν μ μμΌλ©° μ’ μμ± λ¬Έμ λ ν΄κ²°ν©λλ€. κ·Έλ¬λ μ΄κ²μ μ¬μ΄ μΌμ΄ μλλ©°, λ©μΈ macports νΈλ¦¬μ macports λ μνΌλ₯Ό ν¬ν¨μν€λ κ²λ μ½μ§ μμ΅λλ€. λν macportsλ μ΄κ΅μ μΈ μ€μΉ μ νμ μ§μνμ§ μμΌλ©° λͺ¨λ ν¨ν€μ§μ λν΄ νλμ μ νμ μ 곡ν©λλ€.
Homebrewμ λ―Έλ λͺ©ν μ€ νλλ μΉ μ¬μ΄νΈμ λ§ν¬λ₯Ό ν΄λ¦ ν μμκ²νλ κ²μ λλ€ (μ : homebrew : // blah λ° Ruby μ€ν¬λ¦½νΈλ₯Ό λ€μ΄λ‘λνκ³ ν΄λΉ ν¨ν€μ§μ depλ₯Ό μ€μΉ ν λ€μ μ±μ λΉλν©λλ€). μμ§ μλ£νμ§λ μμμ§λ§ μ νν λμμΈμ κ³ λ €νλ©΄ λ무 κΉλ€ λ‘μ§ μμ΅λλ€.
8.μ΄ κΈ°λ₯μ μ΅νκΈ° μν΄ λ§μ€ν°ν΄μΌνλ λͺ λ Ή μ€ λꡬλ 무μμ λκΉ? otool, pkg-config λ±κ³Ό κ°μ κ²λ€
otoolμ λμ€μ λ§ μ μ©ν©λλ€. λΉλ λ λ°μ΄λ리 λ§ν¬κ° 무μμΈμ§ μλ €μ€λλ€. λΉλν΄μΌνλ λꡬμ μ’ μμ±μ νμ ν λλ μΈλͺ¨κ° μμ΅λλ€. pkg-configμ κ²½μ° μ’ μμ±μ μ¬μ©νκΈ° μ μ μ΄λ―Έ μ€μΉ νμΌλ―λ‘ λ§μ°¬κ°μ§μ λλ€.
λ΄ ν΄μ²΄μΈμ README λ° INSTALL νμΌμ μ½κ³ configure βhelpλ₯Ό μνν©λλ€. λΉλ μΆλ ₯μλ³΄κ³ μ μμΈμ§ νμΈνμμμ€. λΉλ μ€λ₯λ₯Ό ꡬ문 λΆμνμμμ€. μλ§λ λμ€μ serverfaultμ λ¬Έμνμμμ€ π
λ΅λ³
μ΄ κ±°λν μ£Όμ λ₯Ό κ·Έλ κ² (Linux λ° λ§ν-O OS Xμμμ ELF) 리λ μ€μ 곡μ λΌμ΄λΈλ¬λ¦¬λ₯Ό μμν μμλ€, μΈλ¦¬ν Drepperκ° μ’μκ° DSOλ₯Ό μμ± μκ° λ¦¬λ μ€ μ¬μ©ν μμ 곡μ λΌμ΄λΈλ¬λ¦¬μ μΌλΆ μμ¬λ₯Ό λ€λ£¨κ³ μμ΅λλ€ (λμ 곡μ κ°μ²΄) μ€μν μ΄μ λ₯Ό ν¬ν¨νμ¬ μ¬κΈ°μ
Ulrichλ λν μ μ λ§ν¬κ° μ ν΄ν κ²μΌλ‘ κ°μ£Όλλ μ΄μ λ₯Ό μ€λͺ ν©λλ€. μ¬κΈ°μ ν΅μ¬ μ λ°μ΄νΈ μ€ νλλ 보μ μ λ°μ΄νΈμ λλ€. μ μ μΌλ‘ κ΄λ²μνκ² λ§ν¬ λ κ³΅ν΅ λΌμ΄λΈλ¬λ¦¬ (μ : zlib)μ λ²νΌ μ€λ² νλ‘μ°λ λΆλ°°μ ν° μ€λ² ν€λλ₯Ό μ λ°ν μ μμ΅λλ€. μ΄λ zlib 1.1.3μμ λ°μνμ΅λλ€ ( Red Hat κΆκ³ )
κΌ¬λ§ μμ
λ§μ»€ ld.so 맀λ΄μΌ νμ΄μ§
man ld.so
λ°νμ λμ λ§ν¬μ κ΄λ ¨λ κΈ°λ³Έ κ²½λ‘ λ° νμΌμ μ€λͺ ν©λλ€. μ΅μ Linux μμ€ν μμλ /etc/ld.so.confλ₯Ό ν΅ν΄ μΆκ° λ μΆκ° κ²½λ‘κ° μΌλ°μ μΌλ‘ /etc/ld.so.confμ ν¬ν¨λμ΄ μμ΅λλ€.
ld.so ꡬμ±μ ν΅ν΄ λμ μΌλ‘ μ¬μ© κ°λ₯ν νλͺ©μ λ³΄λ €λ©΄ λ€μμ μ€ννμμμ€.
ldconfig -v -N -X
DSO νμ°ν¬λ₯Ό μ½μΌλ©΄ OS Xμ Mach-Oμ μ΄λ¬ν μμΉμ΄ μ΄λ»κ² μ μ©λλμ§ μ΄ν΄νκΈ° μν΄ μ’μ κΈ°λ³Έ μ§μ μμ€μ μ 곡ν΄μΌν©λλ€.
λ§ νμ€
OS Xμμ μ΄μ§ νμμ Mach-Oμ λλ€. λ§μ»€μ λν λ‘컬 μμ€ν μ€λͺ μλ
man dyld
λ§ν νμμ λ¬Έμλ μ νμμ μ¬μ©ν μ μμ΅λλ€
μ λμ€ λΉλ ν΄
μΌλ°μ μΈ configure
, make
, make install
κ³Όμ μ μΌλ°μ μΌλ‘ κ°μ§κ³ GNUμ autotoolsλ₯Όμ μν΄ μ 곡λλ μ¨λΌμΈ μ±
ꡬμ±μ μμ¬μ μΌλΆκ° / λΆν κ³Ό GNU ν΄μ²΄μΈμ κ΅¬μΆ λ€λ£Ήλλ€. Autoconf λ ν
μ€νΈλ₯Ό μ¬μ©νμ¬ λμ λΉλ μμ€ν
μμ κΈ°λ₯ κ°μ©μ±μ κ²°μ νκ³ M4 맀ν¬λ‘ μΈμ΄ λ₯Ό μ¬μ©νμ¬μ΄λ₯Ό ꡬνν©λλ€ . Automake λ κΈ°λ³Έμ μΌλ‘ Makefileμ ν
νλ¦Ώ λ°©λ²μΌλ‘, μΌλ°μ μΌλ‘ Makefile.amμ΄λΌκ³ νλ ν
νλ¦ΏμΌλ‘ autoconf (configure μ€ν¬λ¦½νΈ)μ μΆλ ₯μ΄ Makefileλ‘ λ³νλ©λλ€.
GNUμ ν¬λ‘ νλ‘κ·Έλ¨μ GNU ν΄μ²΄μΈμ μ΄ν΄νκΈ°μν μ’μ 본보기 μν μ β κ·Έλ¦¬κ³ λ§€λ΄μΌ autotoolsλ₯Ό λ¬Έμκ° ν¬ν¨λμ΄ μμ΅λλ€.
λ΅λ³
μ¬μ΄λ¨Ό! λλ λΉμ μ΄ μ΄λ»κ² λλΌλμ§ μκ³ μλ€; λλ 리λ μ€λ₯Ό λ°°μ°λμ΄ λΆλΆμλ μ΄λ €μμ κ²ͺμλ€. λ΄ μμ μ κ²½νμ λ°νμΌλ‘, λλ λΉμ μ΄ λ€λ£¨λ λͺ κ°μ§ νλͺ© (μ£Όλ‘ λ μμ μμν μ°Έκ³ μλ£!)μ λν μμ΅μλ₯Ό μΌμ΅λλ€ : http://easyaspy.blogspot.com/2008/12/buildinginstalling-application-from.html . κ°λ¨ν Python μμ© νλ‘κ·Έλ¨μ λΉλ / μ€μΉνλ λ°©λ²μ λν λ΄ μ견μ κ°μ¬λ립λλ€. π
μ΄κ²μ΄ λμμ΄λκΈ°λ₯Ό λ°λλλ€! κ·Έλ¦¬κ³ ν볡ν μ»΄νμΌ.
ν μ‘΄μ€
Ubuntu Linuxμμ μμ€μμ μ ν리μΌμ΄μ λΉλ / μ€μΉ
μ°λΆν¬ 리ν¬μ§ν 리λ νλ₯ν μμ© νλ‘κ·Έλ¨μΌλ‘ κ°λ μ°¨ μμ§λ§ 리ν¬μ§ν 리μ μκ±°λ (λ°λΉμ ν¨ν€μ§κ°μλ) βνμ λꡬβλ₯Ό λ§λμΌν©λλ€. 리ν¬μ§ν λ¦¬λ³΄λ€ μ΅μ λ²μ μ λλ€. λ λνλ? μ, μμ€μμ μ ν리μΌμ΄μ μ λΉλν΄μΌν©λλ€! κ±±μ νμ§ λ§μμμ€. μ리μ²λΌ 볡μ‘νμ§λ μμ΅λλ€. λν¬ μλ§μΆμ΄κ° λ κ²½νμ λ°νμΌλ‘ ν λͺ κ°μ§ νμ΄ μμ΅λλ€! (μ΄ μμ μμ Ubuntuλ₯Ό μ¬μ©νλ λμ μΌλ°μ μΈ κ°λ μ Fedoraμ κ°μ λλΆλΆμ Unix / Linux λ°°ν¬ν λ° Windowsμ Cygwin νλ«νΌμλ μ μ© ν μ μμ΄μΌν©λλ€.)
μμ€μμ λλΆλΆμ μμ© νλ‘κ·Έλ¨μ λΉλ (μ»΄νμΌ)νλ κΈ°λ³Έ νλ‘μΈμ€λ configure-> compile-> install μμλ₯Ό λ°λ¦
λλ€. μ΄λ¬ν μμ
μ μννλ μΌλ°μ μΈ Unix / Linux λͺ
λ Ήμ config
-> make
-> make install
μ
λλ€. κ²½μ°μ λ°λΌ λͺ¨λ λͺ
λ Ήμ λ¨μΌ λͺ
λ ΉμΌλ‘ κ²°ν© ν μ μμμ 보μ¬μ£Όλ μΉ νμ΄μ§λ₯Ό μ°Ύμ μλ μμ΅λλ€.
$ config && make && make install
λ¬Όλ‘ μ΄ λͺ λ Ήμ μ΄λ¬ν λ¨κ³ μ€ μ무 λ¬Έμ κ° μλ€κ³ κ°μ ν©λλ€. μ¬κΈ°κ° μ¬λ―Έκ° μ¨λ€!
μμνκΈ°
μ΄μ μ μμ€ν
μ μμ€μμ μμ© νλ‘κ·Έλ¨μ μ»΄νμΌνμ§ μμ κ²½μ° gcc
μ»΄νμΌλ¬ μ€μνΈ μ κ°μ μΌλ°μ μΈ κ°λ° λꡬ , μΌλΆ κ³΅ν΅ ν€λ νμΌ (μ΄λ―Έ μμ±λ μ½λλ‘ μκ° νμμμ€)μ μ¬μ©νμ¬ μμ© νλ‘κ·Έλ¨μ μ€μ ν΄μΌν©λλ€ μ€μΉμ€μΈ νλ‘κ·Έλ¨μμ μ¬μ©νλ λ€λ₯Έ μ¬λ λ° make λꡬ) λ€νν μ°λΆν¬μλ build-essential
μ΄κ²μ μ€μΉν λ©ν ν¨ν€μ§ κ° μμ΅λλ€. μ€μΉνλ €λ©΄ (λλ μ΄λ―Έ κ°μ§κ³ μλμ§ νμΈνμμμ€!) ν°λ―Έλμμ λ€μ λͺ
λ Ήμ μ€ννμμμ€.
$ sudo apt-get install build-essential
κΈ°λ³Έ μ€μ μ΄ μλ£λμμΌλ―λ‘ μμ© νλ‘κ·Έλ¨ μμ€ νμΌμ λ€μ΄λ‘λνμ¬ βνβλλ ν 리μ κ°μ μ½κΈ° / μ°κΈ° κΆνμ΄μλ λλ ν 리μ μ μ₯νμμμ€. μΌλ°μ μΌλ‘ νμΌ νμ₯μλ .tar.gz
λλ λ‘ μμΉ΄μ΄λΈ νμΌμ μμ΅λλ€ .tar.bz2
. λ .tar
λ¨μν μλ λλ ν 리 ꡬ쑰λ₯Ό 보쑴 νμΌμ κ·Έλ£Ή μΈ βν
μ΄ν μμΉ΄μ΄λΈβμ κ²μ μλ―Ένλ€. .gz
λ리 μ¬μ©λλ Unix / Linux μμΆ νμ μΈ gzip (GNU zip) μ μ½μμ
λλ€. λ§μ°¬κ°μ§λ‘ .bz2
bzip2 μ μ½μ΄λ‘ gzipλ³΄λ€ λ λμ μμΆ (μμ μμΆ νμΌ ν¬κΈ°)μ μ 곡νλ μλ‘μ΄ μμΆ νμμ
λλ€.
μμ€ νμΌμ λ€μ΄λ‘λ ν ν ν°λ―Έλ μ°½ (Ubuntu λ©λ΄μ μμ€ν
ν°λ―Έλ)μ μ΄κ³ νμΌμ μ μ₯ ν λλ ν λ¦¬λ‘ λ³κ²½νμμμ€. ( ~/download
μ΄ μμ μμ μ¬μ©νκ² μ΅λλ€ . μ¬κΈ°μμ β~βλ βhomeβλλ ν 리μ λ°λ‘ κ°κΈ°μ
λλ€.) tar λͺ
λ Ήμ μ¬μ©νμ¬ λ€μ΄λ‘λ ν μμΉ΄μ΄λΈ νμΌμμ νμΌμ μΆμΆνμμμ€.
νμΌμ΄ gzip μμΉ΄μ΄λΈ μΈ κ²½μ° (μ :λ‘ λλ¨ .tar.gz
) λ€μ λͺ
λ Ήμ μ¬μ©νμμμ€.
$ tar -zxvf filename.tar.gz
νμΌμ΄ bzip2 μμΉ΄μ΄λΈ μΈ κ²½μ° (μ :λ‘ λλ¨ .tar.bz2
) λ€μ λͺ
λ Ήμ μ¬μ©νμμμ€.
$ tar -jxvf filename.tar.gz
ν : μμΉ΄μ΄λΈλ₯Ό μΆμΆνκΈ° μν΄ λͺ¨λ λͺ λ Ή ν μ€μμΉλ₯Ό κΈ°μ΅νμ§ μμΌλ €λ©΄ dtrx (λ΄κ° μ’μνλ κ²!) λλ deco (λ μΈκΈ°μλ) μ νΈλ¦¬ν° μ€ νλ (λλ ββλ λ€)λ₯Ό μ¬μ©νλ κ²μ΄ μ’μ΅λλ€. μ΄ μ νΈλ¦¬ν° μ€ νλλ₯Ό μ¬μ©νλ©΄ μ νΈλ¦¬ν° μ΄λ¦ (dtrx λλ deco)κ³Ό νμΌ μ΄λ¦ λ§ μ λ ₯νλ©΄ λλ¨Έμ§λ λͺ¨λ μνλ©λλ€. μ΄ λ κ°μ§ λͺ¨λ μ€ν κ°λ₯ν λλΆλΆμ μμΉ΄μ΄λΈ νμμ μ²λ¦¬νλ λ°©λ²μ βμκ³ βν° μ€λ₯ μ²λ¦¬ κΈ°λ₯μ κ°μ§κ³ μμ΅λλ€.
μμ€μμ λΉλ ν λ λ°μν μμλ λ κ°μ§ μΌλ°μ μΈ μ νμ μ€λ₯κ° μμ΅λλ€.
- κ΅¬μ± μ€ν¬λ¦½νΈ (μΌλ°μ μΌλ‘ config λλ configure)λ₯Ό μ€ννμ¬ μ€μ κ³Ό κ΄λ ¨λ make νμΌμ λ§λ€ λ κ΅¬μ± μ€λ₯κ° λ°μν©λλ€.
- make νμΌμ΄ μμ± λ ν make λͺ λ Ήμ μ€νν λ μ»΄νμΌλ¬ μ€λ₯κ° λ°μνκ³ μ»΄νμΌλ¬κ° νμν μΌλΆ μ½λλ₯Ό μ°Ύμ μ μμ΅λλ€.
μ΄λ€ κ°κ°μ μ΄ν΄λ³΄κ³ μ΄λ₯Ό ν΄κ²°νλ λ°©λ²μ λν΄ λ Όμ ν κ²μ λλ€.
κ΅¬μ± λ° κ΅¬μ± μ€λ₯
μμ€ μ½λ μμΉ΄μ΄λΈ νμΌμ μΆμΆν ν ν°λ―Έλμμ μΆμΆ λ νμΌμ΄ ν¬ν¨ λ λλ ν λ¦¬λ‘ λ³κ²½ν΄μΌν©λλ€. μΌλ°μ μΌλ‘μ΄ λλ ν 리 μ΄λ¦μ νμΌ μ΄λ¦κ³Ό λμΌ .tar.gz
νκ±°λ .tar.bz2
νμ₯μκ° μμ΅λλ€ . κ·Έλ¬λ λλλ‘ λλ ν 리 μ΄λ¦μ λ²μ μ 보κ°μλ μμ© νλ‘κ·Έλ¨μ μ΄λ¦ μΌλΏμ
λλ€.
μμ€ λλ ν 리μμ README
νμΌ λ° / λλ INSTALL
νμΌ (λλ μ μ¬ν μ΄λ¦μ κ°μ§ κ²)μ μ°ΎμΌμμμ€ . μ΄λ¬ν νμΌμλ μΌλ°μ μΌλ‘ μ’
μμ±μ λν μ 보λ₯Ό ν¬ν¨νμ¬ μμ© νλ‘κ·Έλ¨μ λΉλ / μ»΄νμΌνκ³ μ€μΉνλ λ°©λ²μ λν μ μ©ν μ λ³΄κ° ν¬ν¨λμ΄ μμ΅λλ€. βμ’
μμ±βμ μ±κ³΅μ μΌλ‘ μ»΄νμΌνλ λ° νμν λ€λ₯Έ κ΅¬μ± μμ λ λΌμ΄λΈλ¬λ¦¬μ μ΄λ¦μ
λλ€.
λΉμ μ΄ μ½μ ν README
λ° / λλ INSTALL
νμΌμ (κ·Έλ¦¬κ³ , ν¬λ§ μμ© νλ‘κ·Έλ¨μ λν λͺ¨λ κ΄λ ¨ μ¨λΌμΈ λ¬Έμ 보μλ€), νμΌ μ΄λ¦ (νμΌμ μ€μ λ βXβκΆνμ΄) μ€ν νμΌμ μ°Ύμ config
λ configure
. λλλ‘ νμΌμ νμ₯μλ .sh
(μ π μΌ μ config.sh
μμ΅λλ€. μΌλ°μ μΌλ‘ μ»΄νμΌμμν βμ μμ μΈβνκ²½μ΄ μλμ§ νμΈνκΈ° μν΄ λ€λ₯Έ μ νΈλ¦¬ν°λ₯Ό μ€ννλ μ μ€ν¬λ¦½νΈμ
λλ€. μ¦, νμν λͺ¨λ κ²μ΄ μ€μΉλμ΄ μλμ§ νμΈν©λλ€.
ν : μ΄κ²μ΄ κ΅¬μ± νμΌ λμ Python κΈ°λ° μμ© νλ‘κ·Έλ¨ μΈ κ²½μ°μ΄λΌλ νμΌμ μ°ΎμμΌν©λλ€
setup.py
. νμ΄μ¬ μμ© νλ‘κ·Έλ¨μ μΌλ°μ μΌλ‘ μ€μΉκ° λ§€μ° κ°λ¨ν©λλ€. μ΄ μμ© νλ‘κ·Έλ¨μ 루νΈλ‘ μ€μΉνλ €λ©΄ (μ : Ubuntuμμ λ€μ λͺ λ Ή μμ sudoλ₯Ό μ λ ₯)μ΄ λͺ λ Ήμ μ€ννμμμ€.$ python setup.py install
κ·Έκ² λΉμ μ΄ν΄μΌ ν λͺ¨λ κ²μ λλ€. μ΄ μμ΅μμ λλ¨Έμ§ λΆλΆμ 건λ λ°κ³ μμ© νλ‘κ·Έλ¨ μ¬μ© λ° μ¦κΈ°κΈ°λ‘ μ§μ μ§νν μ μμ΅λλ€.
ν°λ―Έλμμ κ΅¬μ± μ€ν¬λ¦½νΈλ₯Ό μ€ννμμμ€. μΌλ°μ μΌλ‘ μΌλ° μ¬μ©μ κ³μ μΌλ‘ κ΅¬μ± μ€ν¬λ¦½νΈλ₯Ό μ€νν μ μμ΅λλ€.
$ ./config
μ€ν¬λ¦½νΈλ μΌλΆ λ©μμ§λ₯Ό νμνμ¬ μ€ν¬λ¦½νΈκ° μνμ€μΈ μμ μ λν μμ΄λμ΄λ₯Ό μ 곡ν©λλ€. μ€ν¬λ¦½νΈλ μ±κ³΅ μ¬λΆλ₯Ό νμνκ³ μ€ν¨ν κ²½μ° μ€ν¨ μμΈμ λν μ 보λ₯Ό μ 곡ν©λλ€. μ€λ₯ λ©μμ§κ° νμλμ§ μμΌλ©΄ μΌλ°μ μΌλ‘ λͺ¨λ κ²μ΄ μ λλ‘λμλ€κ³ κ°μ ν μ μμ΅λλ€.
κ΅¬μ± μ€ν¬λ¦½νΈμ²λΌ 보μ΄λ μ€ν¬λ¦½νΈλ₯Ό μ°Ύμ§ λͺ»νλ©΄ μΌλ°μ μΌλ‘ μμ© νλ‘κ·Έλ¨μ΄ λ§€μ° λ¨μνκ³ νλ«νΌμ λ
립μ μ΄λΌλ κ²μ μλ―Έν©λλ€. μ 곡λ Makefile
μμ€ν
μ λͺ¨λ μμ€ν
μμ μλ νλ―λ‘ μλμ λΉλ / μ»΄νμΌ λ¨κ³λ‘ 건λ λΈ μ μμ΅λλ€ .
μ
μ΄ νμ΅μμμλ μ ν리μΌμ΄μ
λΉλμ λ°μν μμλ μ€λ₯ μ νμ μλ‘ NewsbeuterλΌλ ν
μ€νΈ κΈ°λ° RSS 리λλ₯Ό μ¬μ©ν©λλ€. Newsbeuterμ κ²½μ° κ΅¬μ± μ€ν¬λ¦½νΈ μ΄λ¦μμ
λλ€ config.sh
. λ΄ μμ€ν
μμμ μ€νν λ config.sh
λ€μ μ€λ₯κ° λ°μν©λλ€.
tester@sitlabcpu22:~/download/newsbeuter-1.3$ ./config.sh
Checking for package sqlite3... not found
You need package sqlite3 in order to compile this program.
Please make sure it is installed.
μ½κ°μ μ°κ΅¬λ₯Ό ν κ²°κ³Ό, μ€μ λ‘ sqlite3
μμ© νλ‘κ·Έλ¨μ΄ μ€μΉλμ΄ μμμ μμμ΅λλ€ . κ·Έλ¬λ μμ€μμ λΉλνλ €κ³ νλ―λ‘ config.sh
μ€μ λ‘ μ°Ύκ³ μλ κ²μμ λν κ°λ° λΌμ΄λΈλ¬λ¦¬ (ν€λ)μ
λλ€ sqlite3
. μ°λΆν¬μμ λλΆλΆμ ν¨ν€μ§μλλ‘ λλλ κ΄λ ¨ κ°λ° λμ ν¨ν€μ§κ° -dev
μμ΅λλ€. Fedoraμ κ°μ λ€λ₯Έ νλ«νΌμ μ’
μ’
-devel
κ°λ° ν¨ν€μ§ μ ν¨ν€μ§ μ λ―Έμ¬λ₯Ό μ¬μ© ν©λλ€.
sqlite3
κ°λ° ν¨ν€μ§μ μ ν©ν ν¨ν€μ§λ₯Ό μ°ΎμΌλ €λ©΄ apt-cache
Ubuntu μ μ νΈλ¦¬ν° (λ° λ§μ°¬κ°μ§λ‘ yum
Fedora μ μ νΈλ¦¬ν°)λ₯Ό μ¬μ©ν μ μμ΅λλ€.
tester@sitlabcpu22:~/download/newsbeuter-1.3$ sudo apt-cache search sqlite
μ΄ λͺ
λ Ήμ μλΉν ν° κ²°κ³Ό λͺ©λ‘μ λ°ννλ―λ‘ μ μ ν ν¨ν€μ§λ₯Ό κ²°μ νκΈ° μν΄ μ½κ°μ νμ μμ
μ μνν΄μΌν©λλ€. μ΄ κ²½μ° μ μ ν ν¨ν€μ§λ libsqlite3-dev
μ
λλ€. λλ‘λ μ°λ¦¬κ° μ°Ύκ³ μλ ν¨ν€μ§ lib
μ λμΌν ν¨ν€μ§ μ΄λ¦ plus λμ μ λμ¬κ° λΆμ΅λλ€ -dev
. λλ‘λ μ¬λ¬ μμ© νλ‘κ·Έλ¨μμ μ¬μ©ν μμλ 곡μ λΌμ΄λΈλ¬λ¦¬λ₯Ό μ°Ύκ³ μκΈ° λλ¬Έμ
λλ€. μ€μΉνλ €λ©΄ libsqlite3-dev
ν°λ―Έλμμ μΌλ°μ μΈ apt-get install λͺ
λ Ήμ μ€ννμμμ€.
tester@sitlabcpu22:~/download/newsbeuter-1.3$ sudo apt-get install libsqlite3-dev
μ΄μ μ΄ config.sh
μ’
μμ± λ¬Έμ λ₯Ό ν΄κ²°νκ³ λ μ΄μ μ’
μμ± λ¬Έμ κ° μλμ§ νμΈνκΈ° μν΄ λ€μ μ€ν ν΄μΌν©λλ€. (μ¬κΈ°μ νμνμ§ μμ§λ§ Newsbeuterμ κ²½μ° libcurl4-openssl-dev
ν¨ν€μ§ λ μ€μΉν΄μΌνμ΅λλ€ .) λν κ°λ° ν¨ν€μ§ (μ :)λ₯Ό μ€μΉ libsqlite3-dev
νκ³ κ΄λ ¨ μμ© νλ‘κ·Έλ¨ ν¨ν€μ§ (μ :)λ μ€μΉ sqlite3
νμ§ μμ κ²½μ° μ΄λ―Έ μ€μΉλμ΄ μμΌλ©΄ λλΆλΆμ μμ€ν
μ κ΄λ ¨ μμ© νλ‘κ·Έλ¨ ν¨ν€μ§λ₯Ό μλμΌλ‘ λμμ μ€μΉν©λλ€.
ꡬμ±μ΄ μ±κ³΅μ μΌλ‘ μ€νλλ©΄ νλ μ΄μμ make νμΌμ΄ μμ±λ©λλ€. μ΄λ¬ν νμΌμ μΌλ°μ μΌλ‘ μ΄λ¦μ΄ μ§μ λ©λλ€ Makefile
(νμΌ μ΄λ¦ λμ λ¬Έμλ Unix / Linuxμμ μ€μν©λλ€!). λΉλ ν¨ν€μ§ src
μ λ±μ νμ λλ ν λ¦¬κ° ν¬ν¨ λ Makefile
κ²½μ° κ° νμ λλ ν 리 μλ.
λΉλ λ° μ»΄νμΌ μ€λ₯
μ΄μ μ ν리μΌμ΄μ
μ μ€μ λ‘ μ»΄νμΌ ν μ€λΉκ°λμμ΅λλ€. μ΄κ²μ μ’
μ’
건물μ΄λΌκ³ νλ©° μ΄λ¦μ μ€μ κ΅¬μ± κ³Όμ μμ μ°¨μ©λ©λλ€. μΌλ°μ μΌλ‘ μ¬λ¬ μμ€ μ½λ νμΌ μΈ μμ© νλ‘κ·Έλ¨μ λ€μν βνΌμ€βκ° κ²°ν©λμ΄ μ 체 μμ© νλ‘κ·Έλ¨μ ꡬμ±ν©λλ€. make μ νΈλ¦¬ν°λ λΉλ νλ‘μΈμ€λ₯Ό κ΄λ¦¬νκ³ μ€μ λ‘ μμ
μ μννκΈ° μν΄ μ»΄νμΌλ¬ λ° λ§μ»€μ κ°μ λ€λ₯Έ μμ© νλ‘κ·Έλ¨μ νΈμΆν©λλ€. λλΆλΆμ κ²½μ° κ΅¬μ±μ μ€ν ν λλ ν 리μμ make (μΌλ° μ¬μ©μ κ³μ μΌλ‘)λ₯Ό μ€ννκΈ° λ§νλ©΄λ©λλ€. (Qt λΌμ΄λΈλ¬λ¦¬λ‘ μμ±λ μμ© νλ‘κ·Έλ¨ μ»΄νμΌκ³Ό κ°μ μΌλΆ κ²½μ°μλ qmakeμ κ°μ λ€λ₯Έ βλνΌβμμ© νλ‘κ·Έλ¨μ λμ μ€νν΄μΌν©λλ€. μμΈν λ΄μ© μ νμ README
λ° / λλ INSTALL
λ¬Έμλ₯Ό νμΈνμμμ€.)
μμ κ΅¬μ± μ€ν¬λ¦½νΈμ λ§μ°¬κ°μ§λ‘ ν°λ―Έλμμ make (λλ μ μ¬ν μ νΈλ¦¬ν°)λ₯Ό μ€ννλ©΄ μ€νμ€μΈ λ΄μ©κ³Ό κ²½κ³ λ° μ€λ₯μ λν μΌλΆ λ©μμ§κ° νμλ©λλ€. μΌλ°μ μΌλ‘ κ²½κ³ λ μ£Όλ‘ μμ© νλ‘κ·Έλ¨ κ°λ°μλ₯Όμν κ²μ΄λ©° μλ°λλ νμ€ μ¬λ‘κ° μλ€λ κ²½κ³ λ₯Ό 무μν μ μμ΅λλ€. μΌλ°μ μΌλ‘ μ΄λ¬ν κ²½κ³ λ μμ© νλ‘κ·Έλ¨ κΈ°λ₯μ μν₯μ λ―ΈμΉμ§ μμ΅λλ€. λ°λ©΄μ μ»΄νμΌλ¬ μ€λ₯λ₯Ό μ²λ¦¬ν΄μΌν©λλ€. Newsbeuterλ₯Ό μ¬μ©νμ¬ makeλ₯Ό μ€ννμ λ νλμ λ¬Έμ κ° μμμ§λ§ μ€λ₯κ° λ°μνμ΅λλ€.
tester@sitlabcpu22:~/download/newsbeuter-1.3$ make
...
c++ -ggdb -I/sw/include -I./include -I./stfl -I./filter -I. -I./xmlrss -Wall -Wextra -DLOCALEDIR=\"/usr/local/share/locale\" -o src/configparser.o -c src/configparser.cpp
c++ -ggdb -I/sw/include -I./include -I./stfl -I./filter -I. -I./xmlrss -Wall -Wextra -DLOCALEDIR=\"/usr/local/share/locale\" -o src/colormanager.o -c src/colormanager.cpp
In file included from ./include/pb_view.h:5,
from src/colormanager.cpp:4:
./include/stflpp.h:5:18: error: stfl.h: No such file or directory
In file included from ./include/pb_view.h:5,
from src/colormanager.cpp:4:
./include/stflpp.h:33: error: ISO C++ forbids declaration of \u2018stfl_form\u2019 with no type
./include/stflpp.h:33: error: expected \u2018;\u2019 before \u2018*\u2019 token
./include/stflpp.h:34: error: ISO C++ forbids declaration of \u2018stfl_ipool\u2019 with no type
./include/stflpp.h:34: error: expected \u2018;\u2019 before \u2018*\u2019 token
make: *** [src/colormanager.o] Error 1
첫 λ²μ§Έ μ€λ₯κ° λ°μνμλ§μ make νλ‘μΈμ€κ° μ€μ§λ©λλ€. μ»΄νμΌλ¬ μ€λ₯ μ²λ¦¬λ λλ‘λ κΉλ€λ‘μΈ μ μμ΅λλ€. λ¬Έμ μ λν λ¨μμ μ€λ₯λ₯Ό μ΄ν΄ λ΄μΌν©λλ€. μΌλ°μ μΌλ‘ λ¬Έμ λ νμ₯λͺ
μ΄ λ³΄ν΅ .h
λλ .hpp
μΈ μΌλΆ ν€λ νμΌ μ΄ λλ½ λ κ²μ
λλ€. μμ μ€λ₯κ° λ°μνλ©΄ stfl.h
ν€λ νμΌμ μ°Ύμ μ μλ€λ λ¬Έμ κ° λΆλͺ
ν©λλ€ . μ΄ μμμ λ³Ό μ μλ―μ΄ μ€λ₯ λ©μμ§μ 첫 λ²μ§Έ μ€μλ³΄κ³ λ¬Έμ μ κ·Όλ³Έ μμΈμ μ°ΎκΈ° μν΄ λ
Έλ ₯νκ³ μΆμ΅λλ€.
Newsbeuter λ¬Έμλ₯Ό μ΄ν΄λ³Έ ν (μμνκΈ° μ μ μνν΄μΌνμ§λ§ νν λ¦¬μΌ μμ΄ λΆλΆμλ³λ‘ μλ―Έκ° μμ΅λλ€!) STFLμ΄λΌλ νμ¬ λΌμ΄λΈλ¬λ¦¬κ° νμνλ€λ κ²μ μμμ΅λλ€. μ΄ κ²½μ° μ΄λ»κ²ν΄μΌν©λκΉ? κΈμ, μ°λ¦¬λ λ³Έμ§μ μΌλ‘ νμν λΌμ΄λΈλ¬λ¦¬μ λν΄ μ νν λμΌν νλ‘μΈμ€λ₯Ό λ°λ³΅ν©λλ€. λΌμ΄λΈλ¬λ¦¬λ₯Ό μ»κ³ λΌμ΄λΈλ¬λ¦¬μ λν΄ configure-build-install νλ‘μΈμ€λ₯Ό μ€ν ν λ€μ μνλ μμ© νλ‘κ·Έλ¨ λΉλλ₯Ό λ€μ μμνμμμ€. μλ₯Ό λ€μ΄ STFLμ κ²½μ° libncursesw5-dev
μ λλ‘ λΉλνλ €λ©΄ ν¨ν€μ§ λ₯Ό μ€μΉν΄μΌνμ΅λλ€ . (보ν΅, λ€λ₯Έ νμ μμ© νλ‘κ·Έλ¨μ μ€μΉ ν ν μλ μμ© νλ‘κ·Έλ¨μμ κ΅¬μ± λ¨κ³λ₯Ό λ€μ μ€νν νμλ μμ§λ§ κ²°μ½ μνμ§ μμ΅λλ€.)
STFL ν΄ν·μ μ±κ³΅μ μΌλ‘ μ€μΉ ν ν Newsbeuterμ μμ± νλ‘μΈμ€κ° μ±κ³΅μ μΌλ‘ μ€νλμμ΅λλ€. make νλ‘μΈμ€λ μΌλ°μ μΌλ‘ μ€λ₯κ° λ°μν μ§μ μμ λ²μ΄λ©λλ€. λ°λΌμ μ΄λ―Έ μ±κ³΅μ μΌλ‘ μ»΄νμΌ λ νμΌμ λ€μ μ»΄νμΌλμ§ μμ΅λλ€. λͺ¨λ κ²μ λ€μ μ»΄νμΌνλ €λ©΄ make clean allμ μ€ννμ¬ μ»΄νμΌ λ κ°μ²΄λ₯Ό μ κ±°ν λ€μ makeλ₯Ό λ€μ μ€νν μ μμ΅λλ€.
μ€μΉ
λΉλ νλ‘μΈμ€κ° μλ£λλ©΄ μμ© νλ‘κ·Έλ¨μ μ€μΉν μ μμ΅λλ€. λλΆλΆμ κ²½μ° νμΌ μμ€ν
μ κ³΅ν΅ μμ (μ : /usr/bin
λλ /usr/share/bin
λ±)μ μμ© νλ‘κ·Έλ¨μ μ€μΉνλ €λ©΄ 루νΈλ‘ μ€μΉλ₯Ό μ€νν΄μΌν©λλ€. μ€μΉλ μ 체 νλ‘μΈμ€μμ κ°μ₯ κ°λ¨ν λ¨κ³μ
λλ€. μ€μΉνλ €λ©΄ ν°λ―Έλμμ λ€μμ μ€ννμμμ€.
$ make install
μ΄ νλ‘μΈμ€μ μΆλ ₯μμ ββμ€λ₯κ° μλμ§ νμΈνμμμ€. λͺ¨λ κ²μ΄ μ±κ³΅νλ©΄ ν°λ―Έλμμ λͺ λ Ή μ΄λ¦μ μ€νν μ μμ΄μΌν©λλ€. (GUI μμ© νλ‘κ·Έλ¨μ΄κ±°λ μμ© νλ‘κ·Έλ¨ μ€νμ΄ λλ λκΉμ§ ν°λ―Έλ μΈμ μ μ¬μ©ν μμλ κ²½μ° λͺ λ Ή μ€μ λμ & λμ μΆκ°νμμμ€.)
μμ€μμ μμ© νλ‘κ·Έλ¨μ λΉλ ν λ μΌλ°μ μΌλ‘ Ubuntuμ GUI λ©λ΄μ μμ΄μ½μ΄λ λ°λ‘ κ°κΈ°λ₯Ό μΆκ°νμ§ μμ΅λλ€. μ΄κ²μ μλμΌλ‘ μΆκ°ν΄μΌν©λλ€.
κ·Έλ¦¬κ³ κ·Έκ²μ κΈ°λ³Έμ μΌλ‘ μ°λΆν¬μ μμ€μμ μμ© νλ‘κ·Έλ¨μ λΉλνκ³ μ€μΉνλ μ μ¬μ μΈ λ°λ³΅μ μ΄μ§λ§ νλ‘μΈμ€μ λλ€. μ΄ μμ μ λͺ λ²λ§ μννλ©΄ λ λ²μ§Έ μμ°μ΄λ©λλ€!
λ΅λ³
./configure βhelpλ GNU autotoolsκ° μμ± ν κ΅¬μ± νμΌμ λν΄ λ§μ μ 보λ₯Ό μ 곡ν©λλ€. λλΆλΆμ κ²½μ° κΈ°λ₯μ νμ±ννμ§ μκ³ βwith /-λ‘ μ 곡λ©λλ€ (λΌμ΄λΈλ¬λ¦¬λ₯Ό μ°Ύμ μμΉλ₯Ό λ§νκΈ° μν΄ β곡μ βμ κ°μ μΆκ° λ§€κ° λ³μλ₯Ό μ¬μ©ν μ μμ).
λ€λ₯Έ μ€μν κ²λ€μ βprefix (κΈ°λ³Έμ μΌλ‘ / usr / local / λλΆλΆμ κ²½μ°) μ€μΉ μμΉλ₯Ό λ§ν΄μ€λλ€ (ν¨ν€μ§λ₯Ό λΉλνλ κ²½μ° μΌλ°μ μΌλ‘ βprefix = / usr λλ βprefix = / opt / YourPackage).
Linuxμμ / lib, / usr / lib λ° / usr / local / libλ μΌλ°μ μΌλ‘ λ΄ gccμμ κ²μλλ©° ldconfigμ κΈ°λ³Έ ꡬμ±μ ν¬ν¨λ©λλ€. μ λΉν μ΄μ κ°μλ ν, μ¬κΈ°κ° λμκ΄μ μνλ κ³³μ λλ€. κ·Έλ¬λ /etc/ld.so.confλ μΆκ° νλͺ©μ λμ΄ ν μ μμ΅λλ€.
βgcc -lβμ μ€ννκ³ μ€λ₯κ° μλμ§ νμΈνμ¬ κ΅¬μ±νκ³ μ°Ύμ μ μμ΅λλ€. CFLAGS λ§€κ° λ³μμ β-Lβμ μΆκ°νμ¬ κ²μ ν κ²½λ‘λ₯Ό μΆκ° ν μ μμ΅λλ€.
μ¬λ¬ λ²μ μ μ€μΉν μ μμΌλ©°, μ΄μ λ²μ κ³Ό μ°κ²°λ μννΈμ¨μ΄λ λ§ν¬ λ μνλ‘ μ μ§λμ§λ§ (lddλ₯Ό μ€ννμ¬ Linuxμμ λ°μΈλ©μ μ°Ύμ) μ μ»΄νμΌμ μΌλ°μ μΌλ‘ μμ€ν μμ μ΅μ λ²μ μ λμ λΌμ΄λΈλ¬λ¦¬λ₯Ό λμμΌλ‘ν©λλ€.
λλΆλΆμ μννΈμ¨μ΄λ νΉν libtoolμ μ¬μ©νλ κ²½μ° λμ λΌμ΄λΈλ¬λ¦¬λ₯Ό κ°μ νλ―λ‘ μ¬μνμ§ μμ μ±μ μ μ μΌλ‘ μ¬λ°λ₯΄κ² λΉλλμ§ μμ μ μμ΅λλ€.
ls -lμ μ€μΉλ λΌμ΄λΈλ¬λ¦¬λ₯Ό μ°Ύλ κ°μ₯ μ’μ λ°©λ²μ λλ€.
κ·Έλ¦¬κ³ κ·Έκ²μ΄ λ΄κ° μ 보μμ λ²μ΄λ κ³³μ λλ€. ν¨ν€μ§λ₯Ό μ μ¬μ©νλ λ°©λ² : λͺ¨λ¦ κ°λ₯ν κ²½μ° λ¬Έμ λ₯Ό νΌνκΈ° μν΄ λ¬Όκ±΄μ ν¬μ₯μΌλ‘ ν¬μ₯νλ €κ³ ν©λλ€.
λ΅λ³
β./configureμ μ λ¬ν μΈμλ₯Ό μ΄λ»κ² μ μ μμ΅λκΉ?β
μΌλ°μ μΌλ‘ ./configure βhelpλ μνλ κ²μ μλ €μ€λλ€.
βμ€μΉ ν λΌμ΄λΈλ¬λ¦¬μ λ²μ μ μ΄λ»κ² μ μ μμ΅λκΉ?β
μμ€ν
μ λ°λΌ λ€λ¦
λλ€. ν κ°μ§ λ°©λ²μ find /|grep libname|less
μΌλ°μ μΌλ‘ λΌμ΄λΈλ¬λ¦¬ νμΌμ΄ νμΌ μ΄λ¦μ λ²μ μ κ°λ κ²μ²λΌ μννλ κ²μ
λλ€.
βμΌλ° μμ€ν μ μμμν€μ§ μκ³ μ¬λ¬ λ²μ μ λΌμ΄λΈλ¬λ¦¬λ₯Ό μ΄λ»κ² μ€μΉν μ μμ΅λκΉ?β
λ€μ ν λ² μμ€ν
κ³Ό λΌμ΄λΈλ¬λ¦¬μ λ°λΌ λ€λ¦
λλ€. sudo make altinstall
λΉμ μ μν΄ λ²μ μ΄λ¦μ λ§λ€ κ²μ
λλ€. λΌμ΄λΈλ¬λ¦¬ νμΌμ μΌλ°μ μΌλ‘ μ체 λ²μ μ
λλ€. κ·Έλ¬λ λͺ
μ¬νμμμ€. λ²μ μ μ’
μ’
βμ κ·ν λβμ΄λ¦μ λν μ¬λ³Όλ¦ λ§ν¬λ₯Ό μμ±νλ―λ‘ λ¬Έμ κ° λ°μν μ μμ΅λλ€.
βν¨ν€μ§λ₯Ό μ¬μ©νμ¬ κ΄λ¦¬λλ μμ€ν μ μμ€μμ μ 곡νλ κ²μ μ€μΉνλ κ²½μ° κ°μ₯ κΉ¨λν λ°©λ²μ 무μμ λκΉ?β
./configureμμ βprefix λ§€κ° λ³μλ₯Ό μ¬μ©νκ³ μ΄λκ°μ λ°°μΉ /opt
νλ κ²μ΄ μ’μ΅λλ€.
λ©΄μ± μ‘°ν : λλ κ²°μ½ μ λ¬Έκ°λ μλμ§λ§ cmd λΌμΈ (μ¬λμ¨μ΄, CentOS, redhat, μ°λΆν¬, κΈ°ν λ° OS X) μμ 5 λ μ΄μ Linuxλ₯Ό μ¬μ©ν΄ μμ΅λλ€ .
λ΅λ³
κ·νμ μ§λ¬Έμ μ½κ°μ λλ΅μνκΈ° μν΄ μΈμ κ° μ€μΉ ν λΌμ΄λΈλ¬λ¦¬μ λ²μ μ νμΈνλ μ’μ λ°©λ²μ μ°Ύμμ΅λλ€ (Linux Debianμ μμΌλ―λ‘ λ€λ₯Έ λ²μ μμλ μλν©λλ€).
dpkg --list
λ€μκ³Ό κ°μ μΆλ ₯μ΄μλ κΈ΄ λͺ©λ‘μ κ°μ ΈμμΌν©λλ€.
ii libssl0.9.8 0.9.8c-4etch5 SSL shared libraries
ii libssp0 4.1.1-21 GCC stack smashing protection library
ii libstdc++5 3.3.6-15 The GNU Standard C++ Library v3
ii libstdc++5-3.3 3.3.6-15 The GNU Standard C++ Library v3 (development
ii libstdc++6 4.1.1-21 The GNU Standard C++ Library v3
λ΅λ³
μ¬μ΄λ¨Ό,
1.) ./configure βhelpλ λ§μ μμ μ 보λ₯Ό μ 곡ν©λλ€. λλ κ·Έκ²μ νμΈνλ κ²μ΄ μ’μ΅λλ€. μΌλ°μ μΌλ‘ μ μ / λμ λ§ν¬ λΌμ΄λΈλ¬λ¦¬λ₯Ό μ»΄νμΌ ν μμλ μ΅μ μ΄ μμ΅λλ€.
2.) λΌμ΄λΈλ¬λ¦¬λ λμ λ§μ»€ κ²½λ‘μ μμ΅λλ€. μ΄κ²μ λ³΄ν΅ /etc/ld.so.confμ μ€μ λ©λλ€. λ§μ»€λ μ²μ μ°Ύμ κ²κ³Ό μΌμΉνλ PATH νκ²½ λ³μμ κ°μ μ μ ν λΌμ΄λΈλ¬λ¦¬λ₯Ό κ²μν©λλ€.
3.) μΌλ°μ μΌλ‘ λΌμ΄λΈλ¬λ¦¬ λ²μ μ΄ λ³κ²½λλ©΄ λͺ¨λ κ²μ λ€μ μ»΄νμΌν΄μΌνλ―λ‘ λ¬Έμ κ° λ°μν©λλ€. μΌλΆ κ²μμ μννλ©΄ μ μ μΌλ‘ μ°κ²°νλ κ²μ΄ μ’μ§ μμ μ΄μ κ° μμ΅λλ€. λλ κ·Έλ κ² μ€λ«λμ κ·Έκ²μνμ§ μμμ΅λλ€. μ λ§λ‘ μ¬κΈ°μμ μ€λͺ ν μ μμ΅λλ€.
4.) μ΄κ²μ μ½κ° μ΄λ ΅λ€. λΌμ΄λΈλ¬λ¦¬ κ²½λ‘λ λ°λμ νμΈν΄μΌν©λλ€. λΌμ΄λΈλ¬λ¦¬μλ μΌλ°μ μΌλ‘ μ€μΉλ λ²μ μ λν μ¬λ³Όλ¦ λ§ν¬κ° μμ΅λλ€.
μ : libssh2.so.1-> libssh2.so.1.0.0
μΌλ°μ μΌλ‘ μ¬λλ€μ μμ μ λ°λΉμ ν¨ν€μ§λ₯Ό λ‘€λ§νκ±°λ λ€λ₯Έ κΈ°μ μ μ¬μ©νμ¬ μ€μΉ ν λΌμ΄λΈλ¬λ¦¬μ νλ‘κ·Έλ¨μ κ΄λ¦¬ν©λλ€. λλ λ§€μ° κ°λ¨ν stow ( http://www.gnu.org/software/stow/ )λ₯Ό μ¬μ©νμ¬ μ€μΉλ μννΈμ¨μ΄λ₯Ό κ΄λ¦¬νκ³ μ¬λ³Όλ¦ λ§ν¬λ₯Ό μ¬μ©νμ¬ λΌμ΄λΈλ¬λ¦¬λ₯Ό μ€μΉν©λλ€. deb / rpm ν¨ν€μ§λ₯Ό λΉλ / μ€μΉ / ν μ€νΈ ν νμκ° μκΈ° λλ¬Έμ λ μ½μ΅λλ€.
5.) μ¬λ¬ λ²μ μ λΌμ΄λΈλ¬λ¦¬λ₯Ό λΌμ΄λΈλ¬λ¦¬ λλ ν 리μ μ μμ μΌλ‘ μ€μΉν μ μμ΅λλ€. μ€ν νμΌμ μ°κ²°λ λΌμ΄λΈλ¬λ¦¬λ μ°κ²°λ λ²μ μ μ°κ²°λ μνλ‘ μ μ§λ©λλ€. μ€ν νμΌμμ lddλ₯Ό μ€ννλ©΄ μ€ν νμΌμ΄ μ°κ²°λ λΌμ΄λΈλ¬λ¦¬κ° νμλ©λλ€.
6.) μμ μΈκΈ ν κ²μ²λΌ, μμ μ λ°λΉμ κΎΈλ¬λ―Έλ₯Ό κ΅΄ 리거λ stowλ₯Ό μ¬μ©νλ κ²μ΄ μλ§λ κ°μ₯ κΉ¨λν ν΄κ²°μ± μΌ κ²μ λλ€.
7.) λλ μ€μ λ‘ Mac OSXλ₯Ό λ§ν μλ μμ§λ§ Linuxμ κ²½μ° λ°°ν¬νμ ν¨ν€μ§ μμ€ν μ΄ κ°μ₯ μ’μ΅λλ€.
8.) lddλ₯Ό μ¬μ©νκ³ μ΄λ€ λ²μ κ³Ό μ΄λ€ λ²μ μ΄ μ°κ²°λμ΄ μλμ§ λλ μ΄λ€ λΌμ΄λΈλ¬λ¦¬κ° μ€ν νμΌκ³Ό μ°κ²°λμ΄ μμ§ μμμ§ μμ λ΄λ©΄ λ§μ μ’μ μ΄ ν΄κ²° λ κ²μ λλ€. pkg-configλ κ·Έκ²μ μ¬μ©νλ μννΈμ¨μ΄μλ§ λμμ΄ λ κ²μ λλ€. μμ¦ μΈκΈ°κ° μμ§λ§ κΈ°λ³Έ autotools λΉλ μμ€ν μ μΌλΆλ μλλλ€.