Π§ΠΈΡ‚Π°ΠΉΡ‚Π΅ ΠΊΠ½ΠΈΠ³ΠΈ ΠΎΠ½Π»Π°ΠΉΠ½ Π½Π° Bookidrom.ru! БСсплатныС ΠΊΠ½ΠΈΠ³ΠΈ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠ»ΠΈΠΊΠ΅

Π§ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎΠ½Π»Π°ΠΉΠ½ Β«Linux для ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΒ». Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Π° 78

Автор Π’ΠΈΠΊΡ‚ΠΎΡ€ ΠšΠΎΡΡ‚Ρ€ΠΎΠΌΠΈΠ½

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° rpm позволяСт Π²Ρ‹ΡΡΠ½ΠΈΡ‚ΡŒ, ΠΊΠ°ΠΊΠΈΠ΅ Ρ„Π°ΠΉΠ»Ρ‹ установит Ρ‚ΠΎΡ‚ ΠΈΠ»ΠΈ ΠΈΠ½ΠΎΠΉ ΠΏΠ°ΠΊΠ΅Ρ‚. Для этого Π½Π°Π΄ΠΎ Π΄Π°Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ (Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΡƒΡ‡Ρ‚ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎ Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΌ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³, содСрТащий ΠΈΠ½Ρ‚Π΅Ρ€Π΅ΡΡƒΡŽΡ‰ΠΈΠΉ вас ΠΏΠ°ΠΊΠ΅Ρ‚):

[root]# rpm -qpl имя_rpm-Π°Ρ€Ρ…ΠΈΠ²Π°

А для получСния ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎ Ρ‚ΠΎΠΌ, для Ρ‡Π΅Π³ΠΎ слуТит ПО, содСрТащССся Π² rpm-ΠΏΠ°ΠΊΠ΅Ρ‚Π΅, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ

[root]# rpm -qpi имя_rpm-Π°Ρ€Ρ…ΠΈΠ²Π°

Π”Π΅Π»ΠΎ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Ρ„Π°ΠΉΠ»Ρ‹ RPM ΠΊΡ€ΠΎΠΌΠ΅ собствСнно Π°Ρ€Ρ…ΠΈΠ²Π° Ρ„Π°ΠΉΠ»ΠΎΠ² содСрТат ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ ΠΏΠ°ΠΊΠ΅Ρ‚Π΅, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ имя, Π²Π΅Ρ€ΡΠΈΡŽ ΠΈ ΠΊΡ€Π°Ρ‚ΠΊΠΎΠ΅ описаниС. Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ‚ΠΎΠΉ ΠΆΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ rpm Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΡ€ΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ эту Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ. НапримСр, для ΠΏΠ°ΠΊΠ΅Ρ‚Π° glib-1.0.6-3.i386.rpm Π²Ρ‹Π²ΠΎΠ΄ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹

[root]# rpm -qpi glib-1.0.6-3.i386.rpm

Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ Ρ‚Π°ΠΊΠΈΠΌ:

Name: glib Relocations: (not relocateable)

Version: 1.0.6 Vendor: Red Hat Software

Release: 3 Build Date: Π‘ΡƒΠ± 10 ΠžΠΊΡ‚ 1998 04:49:03

Install date: (not installed)

Build Host: porky.redhat.com

Group: Libraries Source RPM: glib-1.0.6-3.i386.rpm

Size: 55305

Packager: Red Hat Software β€Ή [email protected]β€Ί

Summary: Handy library of utility functions

Description: Handy library of utility functions. Development libs and headers are in gtk+-devel.

Если Π΄Π°Ρ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ:

[root]# rpm -qpl glib-1.0.6-3.i386.rpm

Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π΄Π°Π½ список входящих Π² ΠΏΠ°ΠΊΠ΅Ρ‚ Ρ„Π°ΠΉΠ»ΠΎΠ² с ΡƒΠΊΠ°Π·Π°Π½ΠΈΠ΅ΠΌ Ρ‚ΠΎΠ³ΠΎ, ΠΊΡƒΠ΄Π° ΠΎΠ½ΠΈ Π±ΡƒΠ΄ΡƒΡ‚ установлСны:

/usr/lib/libglib.so.1

/usr/lib/libglib.so.1.0.6

RPM Ρ‚Π°ΠΊΠΆΠ΅ прСдоставляСт ΠΌΠΎΡ‰Π½ΡƒΡŽ систСму запросов ΠΏΠΎ установлСнным Π² систСмС ΠΏΠ°ΠΊΠ΅Ρ‚Π°ΠΌ. По ΠΊΠΎΠΌΠ°Π½Π΄Π΅

[root]# rpm -qΠ°

Π²Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ ΠΏΠ΅Ρ€Π΅Ρ‡Π΅Π½ΡŒ всСх установлСнных Π² систСмС ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² (ΠΏΠ΅Ρ€Π΅Ρ‡Π΅Π½ΡŒ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡ‡Π΅Π½ΡŒ большим, Ρ‚Π°ΠΊ Ρ‡Ρ‚ΠΎ Π»ΡƒΡ‡ΡˆΠ΅ сразу Π½Π°ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ Π²Ρ‹Π²ΠΎΠ΄ Π² Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ more ΠΈΠ»ΠΈ Π² Ρ„Π°ΠΉΠ», ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠΎΡ‚ΠΎΠΌ ΠΏΡ€ΠΎΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ less ΠΈΠ»ΠΈ встроСнной ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ просмотра ΠΈΠ· ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠΈ Midnight Commander). Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΊΠ°Ρ‚ΡŒ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎΠ± ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠΌ ΠΏΠ°ΠΊΠ΅Ρ‚Π΅ ΠΈΠ»ΠΈ ΠΎΠ± ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… Ρ„Π°ΠΉΠ»Π°Ρ…. НапримСр, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π»Π΅Π³ΠΊΠΎ Π½Π°ΠΉΡ‚ΠΈ, ΠΊΠ°ΠΊΠΎΠΌΡƒ ΠΏΠ°ΠΊΠ΅Ρ‚Ρƒ ΠΏΡ€ΠΈΠ½Π°Π΄Π»Π΅ΠΆΠΈΡ‚ Ρ„Π°ΠΉΠ» ΠΈ ΠΎΡ‚ΠΊΡƒΠ΄Π° появился. Команда

[root]# rpm -qf /etc/bashrc

сообщит: bash-1.14.7-16.

Если Π²Ρ‹ Π±Π΅ΡΠΏΠΎΠΊΠΎΠΈΡ‚Π΅ΡΡŒ ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ случайно ΡƒΠ΄Π°Π»ΠΈΠ»ΠΈ Π²Π°ΠΆΠ½Ρ‹ΠΉ Ρ„Π°ΠΉΠ» ΠΈΠ· установлСнного ΠΏΠ°ΠΊΠ΅Ρ‚Π°, просто ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅ это:

[root]# rpm -Va

Π’Ρ‹ Π±ΡƒΠ΄Π΅Ρ‚Π΅ ΠΎΠΏΠΎΠ²Π΅Ρ‰Π΅Π½Ρ‹ ΠΎΠ± Π»ΡŽΠ±Ρ‹Ρ… аномалиях. ΠŸΠΎΡ‚ΠΎΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΠΏΠ°ΠΊΠ΅Ρ‚, Ссли это Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ. Π›ΡŽΠ±Ρ‹Π΅ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹ Π±ΡƒΠ΄ΡƒΡ‚ сохранСны.

Как Π²ΠΈΠ΄ΠΈΡ‚Π΅, rpm это ΠΎΡ‡Π΅Π½ΡŒ полСзная ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π°, ΠΈ Ρƒ Π½Π΅Π΅ имССтся ΠΌΠ½ΠΎΠ³ΠΎ Ρ€Π°Π·Π½Ρ‹Ρ… ΠΎΠΏΡ†ΠΈΠΉ. Π’Ρ‹ΡˆΠ΅ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ΠΎ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ нСсколько ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ². ВсСго rpm ΠΈΠΌΠ΅Π΅Ρ‚ 16 основных Ρ€Π΅ΠΆΠΈΠΌΠΎΠ² Ρ€Π°Π±ΠΎΡ‚Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒ Π² 6 Π³Ρ€ΡƒΠΏΠΏ (послС двоСточия приводится Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ для ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π³ΠΎ Ρ€Π΅ΠΆΠΈΠΌΠ°).

Запросы.

β€’ Запрос: rpm [-query] [queryoptions]

β€’ ΠŸΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΊΠΈ запросов (Querytags): rpm [-querytags]

Установка ΠΈ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° установлСнных ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ².

β€’ Установка: rpm [-install] [installoptions] [package_file]+

β€’ ОбновлСниС: rpm [-freshen|-F] [installoptions] [package_file]+

β€’ ДСинсталляция: rpm [-uninstall|-e] [uninstalloptions] [package]+

β€’ ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ°: rpm [-verify|-V] [verifyoptions] [package]+

Подписи (ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹ ΠΏΠΎΠ΄ΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‚ΡΡ элСктронной Ρ†ΠΈΡ„Ρ€ΠΎΠ²ΠΎΠΉ подписью Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ PGP, с Ρ†Π΅Π»ΡŒΡŽ обСспСчСния нСизмСняСмости ΠΈ сохранСния авторства ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ²).

β€’ ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° подписи: rpm [-verify|-V] [verifyoptions] [package]+

β€’ ΠŸΠ΅Ρ€Π΅ΠΏΠΎΠ΄ΠΏΠΈΡΡ‹Π²Π°Π½ΠΈΠ΅: rpm [-resign] [package_file]+

β€’ Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ подписи: rpm [-addsign] [package_file]+

Π Π°Π±ΠΎΡ‚Π° с Π±Π°Π·ΠΎΠΉ.

β€’ Π˜Π½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΡ Π±Π°Π·Ρ‹: rpm -i [-initdb]

β€’ ОбновлСниС Π±Π°Π·Ρ‹ (Rebuild Database): rpm -i [-rebuilddb]

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ rpm-ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ².

β€’ Π‘ΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΏΠ°ΠΊΠ΅Ρ‚: rpm [-b|t] [package_spec]+

β€’ ΠŸΠ΅Ρ€Π΅ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠ°ΠΊΠ΅Ρ‚: rpm [-rebuild] [sourcerpm]+

β€’ Π‘ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠ°ΠΊΠ΅Ρ‚ ΠΈΠ· tar-Π°Ρ€Ρ…ΠΈΠ²Π°: rpm [-tarbuild] [tarredsource]+

Π Π°Π·Π½ΠΎΠ΅.

β€’ ΠŸΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡŽ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ rpm: rpm [-showrc]

β€’ Π—Π°Π΄Π°Ρ‚ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ: rpm [-setperms] [package]+

β€’ Π—Π°Π΄Π°Ρ‚ΡŒ Π³Ρ€ΡƒΠΏΠΏΡ‹: rpm [-setgids] [package]+

ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎΠ΅ описаниС всСх возмоТностСй ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ rpm Π²Ρ‹Ρ…ΠΎΠ΄ΠΈΡ‚ Π·Π° Ρ€Π°ΠΌΠΊΠΈ нашСй ΠΊΠ½ΠΈΠ³ΠΈ Π•Π³ΠΎ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π½Π°ΠΉΡ‚ΠΈ Π² RPM-HOWTO, Π½Π° страницах man ΠΈ info. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, большой Ρ€Π°Π·Π΄Π΅Π» ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ rpm имССтся Π² ΠΊΠ½ΠΈΠ³Π΅ [П1.3].

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅

Как ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ для Linux, ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° rpm постоянно развиваСтся ΠΈ ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½ΡΡ‚Π²ΡƒΠ΅Ρ‚ΡΡ. ΠŸΡ€ΠΈ этом ΠΏΡ€ΠΈ Π·Π°ΠΌΠ΅Π½Π΅ вСрсии этой ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΌΠΎΠ³ΡƒΡ‚ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΡƒΡ‚ΡŒ трудности с установкой ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ², созданных Π² ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΡ… вСрсиях. Π’Π°ΠΊ Π±Ρ‹Π»ΠΎ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΏΡ€ΠΈ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π΅ с Ρ‚Ρ€Π΅Ρ‚ΡŒΠ΅ΠΉ Π½Π° Ρ‡Π΅Ρ‚Π²Π΅Ρ€Ρ‚ΡƒΡŽ Π²Π΅Ρ€ΡΠΈΡŽ rpm. Π’Π°ΠΊ Ρ‡Ρ‚ΠΎ Π½Π°Π΄ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹, ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ установлСнной Ρƒ вас вСрсии ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.

ΠŸΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠ΅ Π²Ρ‹ΡˆΠ΅ описаниС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ rpm ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ ΠΎΠ½Π° запускаСтся с консоли ΠΈΠ»ΠΈ Π² эмуляторС Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π°. ΠœΠ΅ΠΆΠ΄Ρƒ Ρ‚Π΅ΠΌ Π² Ρ€Π°Π·Π½Ρ‹Ρ… дистрибутивах ΠΈΠΌΠ΅ΡŽΡ‚ΡΡ графичСскиС ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠΈ для управлСния rpm-ΠΏΠ°ΠΊΠ΅Ρ‚Π°ΠΌΠΈ. Π’ составС графичСской срСды KDE такая ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠ° называСтся kpackage. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ Π΅Π΅ Π»ΠΈΠ±ΠΎ ΠΈΠ· ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки, Π»ΠΈΠ±ΠΎ ΠΈΠ· основного мСню KDE. Однако, Π½Π° ΠΌΠΎΠΉ взгляд, ΠΎΠ½Π° Π½Π΅ Π΄Π°Π΅Ρ‚ Π½ΠΈΠΊΠ°ΠΊΠΈΡ… прСимущСств ΠΏΠΎ ΡΡ€Π°Π²Π½Π΅Π½ΠΈΡŽ с Ρ€Π°Π±ΠΎΡ‚ΠΎΠΉ ΠΈΠ· ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, ΠΎΠ½Π° описана Π² ΠΊΠ½ΠΈΠ³Π΅ А.Π€Π΅Π΄ΠΎΡ€Ρ‡ΡƒΠΊΠ° "ΠžΡ„ΠΈΡ, Π³Ρ€Π°Ρ„ΠΈΠΊΠ°, Web Π² Linux" [П1.6], Ρ‚Π°ΠΊ Ρ‡Ρ‚ΠΎ я Π½Π΅ Π±ΡƒΠ΄Ρƒ Ρ‚Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ врСмя Π½Π° Π΅Π΅ рассмотрСниС.

10.3. ΠšΠΎΠΌΠΏΠΈΠ»ΡΡ†ΠΈΡ ПО ΠΈΠ· исходных тСкстов

Если rpm-ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹ с Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹ΠΌ Π²Π°ΠΌ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΌ обСспСчСниСм Π½ΡƒΠΆΠ½ΠΎ Π΅Ρ‰Π΅ ΠΏΠΎΠΈΡΠΊΠ°Ρ‚ΡŒ (ΠΈ Π½Π΅ всСгда ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ), Ρ‚ΠΎ tar-gz-Π°Ρ€Ρ…ΠΈΠ² любого ПО для Linux найдСтся Π² Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚Π΅ Π½Π΅ΠΏΡ€Π΅ΠΌΠ΅Π½Π½ΠΎ. Π’ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… случаях Ρ‚Π°ΠΊΠΈΠ΅ Π°Ρ€Ρ…ΠΈΠ²Ρ‹ содСрТат исполняСмыС ΠΌΠΎΠ΄ΡƒΠ»ΠΈ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. Π’ΠΎΠ³Π΄Π° установка прилоТСния лишь Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ слоТнСС, Ρ‡Π΅ΠΌ Π² случаС установки ΠΈΠ· rpm-ΠΏΠ°ΠΊΠ΅Ρ‚Π°: Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ просто Ρ€Π°Π·Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ Π°Ρ€Ρ…ΠΈΠ² с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ gunzip ΠΈ tar, ΠΏΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ Π² созданный ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ ΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠΆΠ΅ Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½ΠΎΠ΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Но Ρ‡Π°Ρ‰Π΅ всСго прилоТСния ΠΏΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‚ΡΡ Π² исходных тСкстах, Ρ‚. Π΅. Π² Π²ΠΈΠ΄Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π½Π° языкС Π‘ΠΈ. Π£ΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΠΈΡ… Π² этом случаС Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ слоТнСС, хотя ΠΈ Ρ‚ΡƒΡ‚ Π½Π΅Ρ‚ Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΠ³ΠΎ Π΄Π°ΠΆΠ΅ для Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰Π΅Π³ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ. Π”Π°Π²Π°ΠΉΡ‚Π΅ рассмотрим, ΠΊΠ°ΠΊ это дСлаСтся.

10.3.1. НСобходимыС свСдСния ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ Π½Π° языкС Π‘ΠΈ

ΠΠ°Ρ‡Π°Ρ‚ΡŒ стоит с Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ опСрационная систСма UNIX Ρ€ΠΎΠ΄ΠΈΠ»Π°ΡΡŒ Π½Π° свСт ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ с языком программирования C (Π‘ΠΈ). Π‘ΠΎΠ»Π΅Π΅ Ρ‚ΠΎΠ³ΠΎ, язык C Π±Ρ‹Π» создан ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ этой ОБ, Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½Π°Ρ Ρ‡Π°ΡΡ‚ΡŒ UNIX Π±Ρ‹Π»Π° написана Π½Π° языкС Π‘. ОБ Linux Ρ‚ΠΎΠΆΠ΅ написана Π½Π° Π‘ΠΈ. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ, Π° Ρ‚Π°ΠΊΠΆΠ΅ Π² соотвСтствии с ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠΎΠΌ свободного распространСния исходных ΠΊΠΎΠ΄ΠΎΠ², ΠΌΠ½ΠΎΠ³ΠΈΠ΅ прилоТСния для Linux Ρ€Π°ΡΠΏΡ€ΠΎΡΡ‚Ρ€Π°Π½ΡΡŽΡ‚ΡΡ Π² Π²ΠΈΠ΄Π΅ тСкстов Π½Π° Π‘ (Π° Π² послСднСС врСмя - ΠΈ Π½Π° Π‘++). ЕстСствСнно, Ρ‡Ρ‚ΠΎ для установки ΠΈ запуска Ρ‚Π°ΠΊΠΎΠ³ΠΎ прилоТСния Π½Π° исполнСниС, Π΅Π³ΠΎ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ. Для выполнСния ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€ компиляции ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° gcc (хотя ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ ΠΈ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π½Ρ‹Π΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ).

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅

Π˜Π·Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ Π°Π±Π±Ρ€Π΅Π²ΠΈΠ°Ρ‚ΡƒΡ€Π° GCC ΠΈΠΌΠ΅Π»Π° смысл GNU C Compiler, Π½ΠΎ Π² Π°ΠΏΡ€Π΅Π»Π΅ 1999 Π³ΠΎΠ΄Π° сообщСство GNU Ρ€Π΅ΡˆΠΈΠ»ΠΎ Π²Π·ΡΡ‚ΡŒ Π½Π° сСбя Π±ΠΎΠ»Π΅Π΅ ΡΠ»ΠΎΠΆΠ½ΡƒΡŽ миссию ΠΈ Π½Π°Ρ‡Π°Ρ‚ΡŒ созданиС компиляторов для Π½ΠΎΠ²Ρ‹Ρ… языков с Π½ΠΎΠ²Ρ‹ΠΌΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°ΠΌΠΈ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ, ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΎΠΉ Π½ΠΎΠ²Ρ‹Ρ… ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌ, ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½Π½Ρ‹Ρ… runtime-Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ (http://gcc.gnu.org/gccmission.html). ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ сСгодня GCC Ρ€Π°ΡΡˆΠΈΡ„Ρ€ΠΎΠ²Ρ‹Π²Π°Π΅Ρ‚ΡΡ ΠΊΠ°ΠΊ GNU Compiler Collection (коллСкция компиляторов GNU) ΠΈ содСрТит Π² сСбС компиляторы для языков C, C++, Objective C, Chill, Fortran, Ada ΠΈ Java, Π° Ρ‚Π°ΠΊΠΆΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ для этих языков (libstdc++, libgcj, …).

GNU-компилятор с языка Π‘ gcc, содСрТит Π² сСбС 4 основных ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°, ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅ΠΌ этапам прСобразования исходного ΠΊΠΎΠ΄Π° Π² ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡƒΡŽ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ.

ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ - это прСпроцСссор, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΡ†ΠΈΡ€ΡƒΠ΅Ρ‚ исходный ΠΊΠΎΠ΄ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΏΠ΅Ρ€Π΅Π΄ компиляциСй Π² соотвСтствии с ΠΊΠΎΠΌΠ°Π½Π΄Π°ΠΌΠΈ прСпроцСссора, содСрТащимися Π² Π‘-ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅. Π’ соотвСтствии с этими ΠΊΠΎΠΌΠ°Π½Π΄Π°ΠΌΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ простыС подстановки тСкста. Π’Ρ‚ΠΎΡ€ΠΎΠΉ - собствСнно компилятор, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅Ρ‚ исходный ΠΊΠΎΠ΄ ΠΈ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΠ΅Ρ‚ Π΅Π³ΠΎ Π² ΠΊΠΎΠ΄ Π½Π° языкС ассСмблСра. Π’Ρ€Π΅Ρ‚ΠΈΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ - ассСмблСр, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΠ΅Ρ‚ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½Ρ‹ΠΉ ΠΊΠΎΠ΄. И, Π½Π°ΠΊΠΎΠ½Π΅Ρ†, Ρ‡Π΅Ρ‚Π²Π΅Ρ€Ρ‚Ρ‹ΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ - ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²Ρ‰ΠΈΠΊ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ собираСт исполняСмый Ρ„Π°ΠΉΠ» ΠΈΠ· Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°. Π”Π΅Π»ΠΎ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ большиС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΠΏΠΈΡˆΡƒΡ‚ΡΡ ΠΏΠΎ частям, Π² Π²ΠΈΠ΄Π΅ мноТСства ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ², содСрТащих исходный ΠΊΠΎΠ΄ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅ΠΉ части. ΠšΠΎΠΌΠΏΠΈΠ»ΡΡ‚ΠΎΡ€ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅Ρ‚ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ‚Π°ΠΊΠΎΠΉ Ρ„Π°ΠΉΠ» ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎ ΠΈ создаСт ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½Ρ‹Π΅ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ (Ρ„Π°ΠΉΠ»Ρ‹ Ρ‚Π°ΠΊΠΈΡ… ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΠΈΠΌΠ΅ΡŽΡ‚ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ o). Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π΅Π΄ΠΈΠ½ΠΎΠΉ исполняСмой ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΈΠ· Ρ‚Π°ΠΊΠΈΡ… ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ ΠΈ являСтся Π·Π°Π΄Π°Ρ‡Π΅ΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²Ρ‰ΠΈΠΊΠ°. ΠŸΡ€ΠΈ Ρ‚Π°ΠΊΠΎΠΌ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π΅, Ссли Π² ΠΊΠ°ΠΊΠΎΠΉ-Ρ‚ΠΎ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ программист вносит исправлСниС, Π½Π΅Ρ‚ нСобходимости Π·Π°Π½ΠΎΠ²ΠΎ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ всю ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ: достаточно ΠΎΡ‚ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ исправлСнный ΠΌΠΎΠ΄ΡƒΠ»ΡŒ ΠΈ Π·Π°Π½ΠΎΠ²ΠΎ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²Ρ‰ΠΈΠΊ.

Для выполнСния стандартных ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ программист ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈΠ· стандартных Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ. Π‘Π°ΠΌΡ‹ΠΉ Ρ…Π°Ρ€Π°ΠΊΡ‚Π΅Ρ€Π½Ρ‹ΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ - это Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° libc, которая содСрТит Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‰ΠΈΠ΅ Ρ‚Π°ΠΊΠΈΠ΅ Π·Π°Π΄Π°Ρ‡ΠΈ, ΠΊΠ°ΠΊ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΠ°ΠΌΡΡ‚ΡŒΡŽ ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π²Π²ΠΎΠ΄Π°-Π²Ρ‹Π²ΠΎΠ΄Π°. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡΡ‚Ρ‹ ΠΌΠΎΠ³ΡƒΡ‚ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ свои собствСнныС Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΡ… ΠΏΡ€ΠΈ написании Π½ΠΎΠ²Ρ‹Ρ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ.

Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Π±Ρ‹Π²Π°ΡŽΡ‚ статичСскими, раздСляСмыми ΠΈ динамичСскими. БтатичСская Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° - это Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°, ΠΊΠΎΠ΄ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ встраиваСтся Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ ΠΏΡ€ΠΈ компиляции. Код раздСляСмой Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Π½Π΅ встраиваСтся Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ, Π° загруТаСтся Π² ΠΏΠ°ΠΌΡΡ‚ΡŒ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ с ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΎΠΉ ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ доступ ΠΊ функциям этой Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ. ДинамичСскиС Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ - Ρ€Π°Π·Π½ΠΎΠ²ΠΈΠ΄Π½ΠΎΡΡ‚ΡŒ раздСляСмых, Π½ΠΎ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅Ρ‡Π½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π·Π°Π³Ρ€ΡƒΠΆΠ°ΡŽΡ‚ΡΡ Π² ΠΏΠ°ΠΌΡΡ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‚ΠΎΠ³Π΄Π°, ΠΊΠΎΠ³Π΄Π° ΠΈΠ· ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ поступит Π²Ρ‹Π·ΠΎΠ² ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅ΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ. Π’ процСссС выполнСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΎΠ½ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π²Ρ‹Π³Ρ€ΡƒΠΆΠ°Ρ‚ΡŒΡΡ ΠΈ Π·Π°ΠΌΠ΅Π½ΡΡ‚ΡŒΡΡ Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ функциями ΠΈΠ· Ρ‚ΠΎΠΉ ΠΆΠ΅ ΠΈΠ»ΠΈ Π΄Ρ€ΡƒΠ³ΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ. ИмСна статичСских Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΠΈΠΌΠ΅ΡŽΡ‚ суффикс.a, Π° ΠΈΠΌΠ΅Π½Π° раздСляСмых Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ - суффикс.so, Π·Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ слСдуСт ΡΡ‚Π°Ρ€ΡˆΠΈΠΉ ΠΈ младший Π½ΠΎΠΌΠ΅Ρ€Π° вСрсии. Имя ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ любой строкой, которая ΠΎΠ΄Π½ΠΎΠ·Π½Π°Ρ‡Π½ΠΎ Ρ…Π°Ρ€Π°ΠΊΡ‚Π΅Ρ€ΠΈΠ·ΡƒΠ΅Ρ‚ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ. ΠžΠ±Ρ‹Ρ‡Π½ΠΎ ΠΈΠΌΠ΅Π½Π° Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‚ΡΡ с lib. ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹: libm.so.5 - общая матСматичСская Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°, libX11.so.6 - Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с систСмой X Window. Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° libc.so.5 компонуСтся автоматичСски, Π² Ρ‚ΠΎ врСмя ΠΊΠ°ΠΊ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ Π΄Ρ€ΡƒΠ³ΠΈΡ… Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ явно ΡƒΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строкС ΠΏΡ€ΠΈ Π²Ρ‹Π·ΠΎΠ²Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ gcc. Π­Ρ‚ΠΎ дСлаСтся Ρ‡Π΅Ρ€Π΅Π· ΠΎΠΏΡ†ΠΈΡŽ -l, Π·Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ слСдуСт ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Π°Ρ Ρ‡Π°ΡΡ‚ΡŒ ΠΈΠΌΠ΅Π½ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, для Π²Ρ‹Π·ΠΎΠ²Π° матСматичСской Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ достаточно ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ -lm.