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

Π§ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎΠ½Π»Π°ΠΉΠ½ Β«Linux-сСрвСр своими Ρ€ΡƒΠΊΠ°ΠΌΠΈΒ». Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Π° 115

Автор ДСнис ΠšΠΎΠ»ΠΈΡΠ½ΠΈΡ‡Π΅Π½ΠΊΠΎ

Π•ΡΡ‚ΡŒ Π΅Ρ‰Π΅ ΠΎΡ‡Π΅Π½ΡŒ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ΠΉ тэг: BuildRoot. Он измСняСт располоТСниС Π΄Π΅Ρ€Π΅Π²Π° BUILD. Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ являСтся /usr/src/RPM ΠΈΠ»ΠΈ Π΄Ρ€ΡƒΠ³ΠΎΠΉ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³, Π·Π°Π΄Π°Π²Π°Π΅ΠΌΡ‹ΠΉ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ окруТСния $RPM_BUILD_ROOT. Π’ цСлях экономии дискового пространства ΠΏΠΎΠ»Π΅Π·Π½ΠΎ послС установки ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ Π΄Π΅Ρ€Π΅Π²ΠΎ %RPM_BUILD_ROOT. Но это Π΄Π΅Ρ€Π΅Π²ΠΎ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Ρ„Π°ΠΉΠ»Ρ‹, относящиСся ΠΊ Π΄Ρ€ΡƒΠ³ΠΈΠΌ ΠΏΠ°ΠΊΠ΅Ρ‚Π°ΠΌ. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ сначала с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ тэга BuildRoot Π½ΡƒΠΆΠ½ΠΎ Π·Π°Π΄Π°Ρ‚ΡŒ ΠΊΠ°ΠΊΠΎΠΉ-Π½ΠΈΠ±ΡƒΠ΄ΡŒ Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΉ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³, Π° послС установки ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ Π΅Π³ΠΎ.

Π’ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ сСгмСнтС находятся ΠΌΠ°ΠΊΡ€ΠΎΠΊΠΎΠΌΠ°Π½Π΄Ρ‹. Π‘ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ ΠΌΡ‹ ΡƒΠΆΠ΅ Π·Π½Π°ΠΊΠΎΠΌΡ‹ β€” это %description, %files, %doc, %install. Π’ Ρ‚Π°Π±Π». 19.34 ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ΠΎ ΠΏΠΎΠ»Π½ΠΎΠ΅ описаниС ΠΌΠ°ΠΊΡ€ΠΎΠΊΠΎΠΌΠ°Π½Π΄.

ΠœΠ°ΠΊΡ€ΠΎΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Π’Π°Π±Π»ΠΈΡ†Π° 19.34

ΠœΠ°ΠΊΡ€ΠΎΠΊΠΎΠΌΠ°Π½Π΄Π° ОписаниС %description ПолноС описаниС ΠΏΠ°ΠΊΠ΅Ρ‚Π° %prep ΠŸΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠ° Π°Ρ€Ρ…ΠΈΠ²Π°. Π—Π΄Π΅ΡΡŒ Π·Π°Π΄Π°ΡŽΡ‚ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ для извлСчСния исходного тСкста ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΈ Π΅Π³ΠΎ распаковки, Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Π°Ρ ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠ° исходного тСкста. ПослС ΠΌΠ°ΠΊΡ€ΠΎΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ %prep Π·Π°Π΄Π°ΡŽΡ‚ΡΡ ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ shell %setup ΠœΠ°ΠΊΡ€ΠΎΠΊΠΎΠΌΠ°Π½Π΄Π° извлСчСния Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΈΠ· Π°Ρ€Ρ…ΠΈΠ²ΠΎΠ². ΠžΠΏΡ†ΠΈΡ –n позволяСт ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Π±ΡƒΠ΄Π΅Ρ‚ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒΡΡ Π½ΠΎΠ²Ρ‹ΠΉ ΠΏΠ°ΠΊΠ΅Ρ‚. ΠžΠ±Ρ‹Ρ‡Π½ΠΎ распаковываСтся Π°Ρ€Ρ…ΠΈΠ², располоТСнный Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ SOURCES, Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ BUILD %build ΠœΠ°ΠΊΡ€ΠΎΠΊΠΎΠΌΠ°Π½Π΄Π° компилирования. ΠžΠ±Ρ‹Ρ‡Π½ΠΎ здСсь запускаСтся ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° make с Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹ΠΌΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌΠΈ %files Π—Π°Π΄Π°Π΅Ρ‚ список Ρ„Π°ΠΉΠ»ΠΎΠ², входящих Π² состав ΠΏΠ°ΠΊΠ΅Ρ‚Π°. ΠŸΡ€ΠΈ ΡƒΠΊΠ°Π·Π°Π½ΠΈΠΈ ΠΈΠΌΠ΅Π½ Ρ„Π°ΠΉΠ»ΠΎΠ² Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ ΡƒΠΊΠ°Π·Π°Π½ ΠΏΠΎΠ»Π½Ρ‹ΠΉ, Π° Π½Π΅ ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΏΡƒΡ‚ΡŒ. Для указания ΠΏΠΎΠ»Π½ΠΎΠ³ΠΎ ΠΏΡƒΡ‚ΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ окруТСния $RPM_BUILD_ROOT. НСобходимыС Ρ„Π°ΠΉΠ»Ρ‹ ΡƒΠΆΠ΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΠΌΠ΅Ρ‰Π΅Π½Ρ‹ Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ BUILD. Π­Ρ‚ΠΎΠ³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π΄ΠΎΡΡ‚ΠΈΡ‡ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΠ°ΠΊΡ€ΠΎΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ %setup ΠΈΠ»ΠΈ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΠ°ΠΊΡ€ΠΎΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ %pre (см. Π½ΠΈΠΆΠ΅) %config список Π—Π°Π΄Π°Π΅Ρ‚ список Ρ„Π°ΠΉΠ»ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±ΡƒΠ΄ΡƒΡ‚ ΠΏΠΎΠΌΠ΅Ρ‰Π΅Π½Ρ‹ Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ /etc %doc список Π—Π°Π΄Π°Π΅Ρ‚ список Ρ„Π°ΠΉΠ»ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±ΡƒΠ΄ΡƒΡ‚ ΠΏΠΎΠΌΠ΅Ρ‰Π΅Π½Ρ‹ Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ /usr/doc/[package]–[ver]–[release] %install Π­Ρ‚Π°ΠΏ установки ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния. Π—Π΄Π΅ΡΡŒ Π½ΡƒΠΆΠ½ΠΎ Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±ΡƒΠ΄ΡƒΡ‚ ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ»Ρ‹, входящиС Π² состав ΠΏΠ°ΠΊΠ΅Ρ‚Π°. Π£Π΄ΠΎΠ±Π½Π΅Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ install ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ я использовал Π² листингС 19.1 %pre ДСйствия, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±ΡƒΠ΄ΡƒΡ‚ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½Ρ‹ Π΄ΠΎ инсталляции ΠΏΠ°ΠΊΠ΅Ρ‚Π° %post ДСйствия, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±ΡƒΠ΄ΡƒΡ‚ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½Ρ‹ послС инсталляции ΠΏΠ°ΠΊΠ΅Ρ‚Π° %preun ДСйствия, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±ΡƒΠ΄ΡƒΡ‚ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½Ρ‹ ΠΏΠ΅Ρ€Π΅Π΄ ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ΠΌ ΠΏΠ°ΠΊΠ΅Ρ‚Π° %postun ДСйствия, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±ΡƒΠ΄ΡƒΡ‚ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½Ρ‹ послС удалСния ΠΏΠ°ΠΊΠ΅Ρ‚Π° %clean Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ Π΄Π΅Ρ€Π΅Π²Π° BUILD. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ вмСсто ΠΎΠΏΡ†ΠΈΠΈ β€” clean ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ rpm. ΠžΠ±Ρ‹Ρ‡Π½ΠΎ содСрТит ΠΎΠ΄Π½Ρƒ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ: rm –rf $RPM_BUILD_ROOT

НуТно ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ нСбольшоС Π·Π°ΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅ ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΌΠ°ΠΊΡ€ΠΎΠΊΠΎΠΌΠ°Π½Π΄ %config ΠΈ %doc. Π’ этом случаС список задаСтся Π½Π΅ Ρ‚Π°ΠΊ, ΠΊΠ°ΠΊ Π² ΠΌΠ°ΠΊΡ€ΠΎΠΊΠΎΠΌΠ°Π½Π΄Π΅ %files. Если послС ΠΌΠ°ΠΊΡ€ΠΎΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ %files ΠΌΠΎΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ просто ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ ΠΏΠΎ ΠΎΠ΄Π½ΠΎΠΌΡƒ Ρ„Π°ΠΉΠ»Ρƒ Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΉ строкС, Ρ‚ΠΎ Π² ΠΌΠ°ΠΊΡ€ΠΎΠΊΠΎΠΌΠ°Π½Π΄Π΅ %doc ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡƒ Ρ„Π°ΠΉΠ»Ρƒ (ΠΈΠ»ΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡƒ списку) Π΄ΠΎΠ»ΠΆΠ½Π° ΠΏΡ€Π΅Π΄ΡˆΠ΅ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Π° %doc. НапримСр:

%doc README TODO Changes

%doc Install

Π° Π½Π΅

%doc

README TODO

Changes Install

Π•Ρ‰Π΅ Ρ€Π°Π· ΠΎΡ‚ΠΌΠ΅Ρ‡Ρƒ, Ρ‡Ρ‚ΠΎ Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ всСх ΠΌΠ°ΠΊΡ€ΠΎΠΊΠΎΠΌΠ°Π½Π΄ Π² Ρ„Π°ΠΉΠ»Π΅ спСцификаций Π½Π΅ являСтся ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ.

ΠŸΡ€ΠΈ создании ΠΏΠ°ΠΊΠ΅Ρ‚Π° ΠΌΡ‹ использовали ΠΎΠΏΡ†ΠΈΡŽ –bb ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ rpm. ΠŸΡ€ΠΈ ΡƒΠΊΠ°Π·Π°Π½ΠΈΠΈ этой ΠΎΠΏΡ†ΠΈΠΈ создаСтся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π΄Π²ΠΎΠΈΡ‡Π½Ρ‹ΠΉ RPM-ΠΏΠ°ΠΊΠ΅Ρ‚, Ссли Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠ°ΠΊΠ΅Ρ‚, содСрТащий исходный тСкст ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΎΠΏΡ†ΠΈΡŽ –ba. Π‘ΠΎΠ·Π΄Π°Π½Π½Ρ‹ΠΉ ΠΏΠ°ΠΊΠ΅Ρ‚ помСщаСтся Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ SRPMS ΠΈ Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ имя port-1.0-99.src.rpm. To Π΅ΡΡ‚ΡŒ вмСсто названия Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹ Π±ΡƒΠ΄Π΅Ρ‚ ΡƒΠΊΠ°Π·Π°Π½ΠΎ, Ρ‡Ρ‚ΠΎ Π΄Π°Π½Π½Ρ‹ΠΉ ΠΏΠ°ΠΊΠ΅Ρ‚ содСрТит исходный тСкст ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. Для создания Ρ‚Π°ΠΊΠΎΠ³ΠΎ ΠΏΠ°ΠΊΠ΅Ρ‚Π° Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ SOURCES Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ исходныС тСксты ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.

Для ΠΏΠΎΠ»Π½ΠΎΡ‚Ρ‹ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½Ρ‹ ΠΎΡΡ‚Π°Π»ΠΎΡΡŒ Ρ€Π°ΡΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΎΠΏΡ†ΠΈΠΈ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€Π° rpm, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ для создания ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² (см. Ρ‚Π°Π±Π». 19.35).

ΠžΠΏΡ†ΠΈΠΈ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€Π° ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² rpm Π’Π°Π±Π»ΠΈΡ†Π° 19.35

ΠžΠΏΡ†ΠΈΡ ОписаниС -ba Π‘ΠΎΠ·Π΄Π°ΡŽΡ‚ΡΡ Π΄Π²Π° ΠΏΠ°ΠΊΠ΅Ρ‚Π°: Π΄Π²ΠΎΠΈΡ‡Π½Ρ‹ΠΉ ΠΈ содСрТащий исходный тСкст. ΠŸΡ€ΠΈ этом Π½Π΅ пропускаСтся Π½ΠΈ ΠΎΠ΄ΠΈΠ½ этап установки, ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹ΠΉ Π² Ρ„Π°ΠΉΠ»Π΅ спСцификаций -bb БоздаСтся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π΄Π²ΠΎΠΈΡ‡Π½Ρ‹ΠΉ ΠΏΠ°ΠΊΠ΅Ρ‚. НС пропускаСтся Π½ΠΈ ΠΎΠ΄ΠΈΠ½ этап установки, ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹ΠΉ Π² Ρ„Π°ΠΉΠ»Π΅ спСцификаций -be Π’Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ этапы %pre ΠΈ %build. ΠŸΡ€ΠΈ этом ΠΏΠ°ΠΊΠ΅Ρ‚ распаковываСтся ΠΈ компилируСтся -bi Π’Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ этапы %pre, %build, %install -bl ВыполняСтся ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° списка Ρ„Π°ΠΉΠ»ΠΎΠ², ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹Ρ… Π² ΠΌΠ°ΠΊΡ€ΠΎΠΊΠΎΠΌΠ°Π½Π΄Π΅ -bp ВыполняСтся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ этап %pre, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ распаковываСтся Π°Ρ€Ρ…ΠΈΠ² --recompile package.src.rpm Π£ΠΊΠ°Π·Π°Π½Π½Ρ‹ΠΉ ΠΏΠ°ΠΊΠ΅Ρ‚, содСрТащий исходныС тСксты, сначала устанавливаСтся, Π° ΠΏΠΎΡ‚ΠΎΠΌ компилируСтся --rebuild package.src.rpm УстанавливаСтся ΠΈ компилируСтся ΠΏΠ°ΠΊΠ΅Ρ‚ исходных тСкстов, Π° Π·Π°Ρ‚Π΅ΠΌ создаСтся Π½ΠΎΠ²Ρ‹ΠΉ Π΄Π²ΠΎΠΈΡ‡Π½Ρ‹ΠΉ ΠΏΠ°ΠΊΠ΅Ρ‚ --test ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Ρ„Π°ΠΉΠ»Π° спСцификаций --clean Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ Π΄Π΅Ρ€Π΅Π²Π° ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ² BUILD послС создания ΠΏΠ°ΠΊΠ΅Ρ‚Π° --showrc Π’Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ Ρ„Π°ΠΉΠ» ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ

19.6. ИспользованиС Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π° vi

Богласно Ρ‚Ρ€Π°Π΄ΠΈΡ†ΠΈΠΈ, Π² состав любой Unix-ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠΉ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмы Π²Ρ…ΠΎΠ΄ΠΈΡ‚ тСкстовый Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ vi. Если Π²Π°ΠΌ придСтся Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с Π΄Ρ€ΡƒΠ³ΠΈΠΌ дистрибутивом, Π² Π½Π΅ΠΌ ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π΅ ΠΎΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡ΠΈΡ‚Π°Π΅ΠΌΠΎΠ³ΠΎ Π²Π°ΠΌΠΈ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π°, Π° Π²ΠΎΡ‚ vi Π΅ΡΡ‚ΡŒ всСгда. Π Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ vi помСщаСтся Π½Π° Π·Π°Π³Ρ€ΡƒΠ·ΠΎΡ‡Π½ΡƒΡŽ дискСту, поэтому Ссли Π²Π°ΠΌ придСтся Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ систСмныС Ρ„Π°ΠΉΠ»Ρ‹, Π·Π°Π³Ρ€ΡƒΠ·ΠΈΠ²ΡˆΠΈΡΡŒ с систСмной дискСты для восстановлСния систСмы, особого Π²Ρ‹Π±ΠΎΡ€Π° Ρƒ вас Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ β€” Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ vi. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ Π΄Π°Π²Π°ΠΉΡ‚Π΅ остановимся Π½Π° Π½Π΅ΠΌ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅.

НСсмотря Π½Π° своС Π½Π°Π·Π²Π°Π½ΠΈΠ΅ (vi β€” visual editor), vi являСтся Π΄Π°Π»Π΅ΠΊΠΎ Π½Π΅ самым простым Π² использовании Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ΠΎΠΌ. ΠŸΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ Π² vi Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΈΠ· Ρ‚Ρ€Π΅Ρ… Ρ€Π΅ΠΆΠΈΠΌΠΎΠ²:

1. ΠšΠΎΠΌΠ°Π½Π΄Π½Ρ‹ΠΉ Ρ€Π΅ΠΆΠΈΠΌ.

2. Π Π΅ΠΆΠΈΠΌ вставки.

3. Π Π΅ΠΆΠΈΠΌ послСднСй строки.

ΠŸΠ΅Ρ€Π²Ρ‹ΠΌ Ρ€Π΅ΠΆΠΈΠΌΠΎΠΌ являСтся Ρ€Π΅ΠΆΠΈΠΌ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки, ΠΈ ΠΈΠΌΠ΅Π½Π½ΠΎ Π² этом Ρ€Π΅ΠΆΠΈΠΌΠ΅ Π²Ρ‹ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚Π΅ΡΡŒ, ΠΊΠΎΠ³Π΄Π° запускаСтС vi. Π’ этом Ρ€Π΅ΠΆΠΈΠΌΠ΅ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²Π²ΠΎΠ΄ΠΈΡ‚ΡŒ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с тСкстом.

Π’ Ρ€Π΅ΠΆΠΈΠΌΠ΅ вставки Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ тСкст Ρ„Π°ΠΉΠ»Π°. ΠŸΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ Π² Ρ€Π΅ΠΆΠΈΠΌ вставки происходит ΠΏΡ€ΠΈ Π²Π²Π΅Π΄Π΅Π½ΠΈΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ i (ΠΎΡ‚ insert) Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΌ Ρ€Π΅ΠΆΠΈΠΌΠ΅. Для Π²ΠΎΠ·Π²Ρ€Π°Ρ‚Π° ΠΈΠ· Ρ€Π΅ΠΆΠΈΠΌΠ° вставки Π² Ρ€Π΅ΠΆΠΈΠΌ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки Π½Π°ΠΆΠΌΠΈΡ‚Π΅ ΠΊΠ»Π°Π²ΠΈΡˆΡƒ Β«EscΒ».

Π Π΅ΠΆΠΈΠΌ послСднСй строки являСтся Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ΠΌ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠ³ΠΎ Ρ€Π΅ΠΆΠΈΠΌΠ°. ΠšΠΎΠΌΠ°Π½Π΄Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ Π±ΡƒΠ΄Π΅Ρ‚Π΅ Π²Π²ΠΎΠ΄ΠΈΡ‚ΡŒ Π² этом Ρ€Π΅ΠΆΠΈΠΌΠ΅, Π±ΡƒΠ΄ΡƒΡ‚ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Ρ‚ΡŒΡΡ Π² послСднСй строкС экрана. ΠΠ°Ρ…ΠΎΠ΄ΡΡΡŒ Π² этом Ρ€Π΅ΠΆΠΈΠΌΠ΅, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Ρ„Π°ΠΉΠ», Π²Ρ‹ΠΉΡ‚ΠΈ ΠΈΠ· vi ΠΈΠ»ΠΈ Π²Ρ‹ΠΉΡ‚ΠΈ Π±Π΅Π· сохранСния. НапримСр, для сохранСния Ρ„Π°ΠΉΠ»Π° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Π° w, Π° для Π²Ρ‹Ρ…ΠΎΠ΄Π° β€” ΠΊΠΎΠΌΠ°Π½Π΄Π° q, Ссли Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Π²Ρ‹ΠΉΡ‚ΠΈ с сохранСниСм Ρ„Π°ΠΉΠ»Π°, Π²Π²Π΅Π΄ΠΈΡ‚Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ wq, Π° Π±Π΅Π· сохранСния β€” ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ q!. Π’ΠΎΠΉΡ‚ΠΈ Π² Ρ€Π΅ΠΆΠΈΠΌ послСднСй строки ΠΌΠΎΠΆΠ½ΠΎ, Π½Π°ΠΆΠ°Π² ":".

ЗапуститС Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ vi ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ:

vi some_file.txt

Π’Π°ΠΊ ΠΊΠ°ΠΊ Ρ„Π°ΠΉΠ»Π° some_file.txt Π½Π΅ сущСствуСт, vi создаст Π½ΠΎΠ²Ρ‹ΠΉ Ρ„Π°ΠΉΠ» с Ρ‚Π°ΠΊΠΈΠΌ ΠΈΠΌΠ΅Π½Π΅ΠΌ. Π’ Π»Π΅Π²ΠΎΠΉ части экрана Π²Ρ‹ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚Π΅ столбСц, состоящий ΠΈΠ· символов Ρ‚ΠΈΠ»ΡŒΠ΄Ρ‹ Β«~Β». Π­Ρ‚ΠΎΡ‚ столбСц сообщаСт ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Π²Ρ‹ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚Π΅ΡΡŒ Π² ΠΊΠΎΠ½Ρ†Π΅ Ρ„Π°ΠΉΠ»Π°: ΠΈ это Π½Π΅ ΡƒΠ΄ΠΈΠ²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‡Ρ‚ΠΎ созданный Ρ„Π°ΠΉΠ» пуст. ΠšΡƒΡ€ΡΠΎΡ€ отобраТаСтся Π² Π²Π΅Ρ€Ρ…Π½Π΅ΠΌ Π»Π΅Π²ΠΎΠΌ ΡƒΠ³Π»Ρƒ ΠΊΠ°ΠΊ символ подчСркивания Β«_Β».

НаТмитС i для ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π° Π² Ρ€Π΅ΠΆΠΈΠΌ вставки ΠΈ Π½Π°Ρ‡ΠΈΠ½Π°ΠΉΡ‚Π΅ ΠΏΠ΅Ρ‡Π°Ρ‚Π°Ρ‚ΡŒ. ΠŸΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ Π½Π° Π½ΠΎΠ²ΡƒΡŽ строку Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ клавиши Β«EnterΒ», ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π²Π²ΠΎΠ΄ ΠΌΠΎΠΆΠ½ΠΎ клавишами Β«BackspaceΒ» ΠΈ Β«DelΒ». Для Π²ΠΎΠ·Π²Ρ€Π°Ρ‚Π° Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½Ρ‹ΠΉ Ρ€Π΅ΠΆΠΈΠΌ Π½Π°ΠΆΠΌΠΈΡ‚Π΅ ΠΊΠ»Π°Π²ΠΈΡˆΡƒ Β«EscΒ». Π’ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΌ Ρ€Π΅ΠΆΠΈΠΌΠ΅ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ стрСлки для пСрСмСщСния ΠΏΠΎ тСксту.

ΠšΡ€ΠΎΠΌΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ i, для вставки тСкста Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ Π°. Π­Ρ‚Π° ΠΊΠΎΠΌΠ°Π½Π΄Π° вставляСт тСкст послС Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ полоТСния курсора. НапримСр, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ Π°, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ тСкст ΠΌΠ΅ΠΆΠ΄Ρƒ словами first ΠΈ second:

first_second third

Команда ΠΎ вставляСт тСкст Π² строку, которая находится Π½ΠΈΠΆΠ΅ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ. Для удалСния тСкста Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹: Ρ…, dd, dw. ΠŸΠ΅Ρ€Π²Π°Ρ удаляСт символ ΠΏΠ΅Ρ€Π΅Π΄ курсором, вторая удаляСт Ρ†Π΅Π»Ρ‹Π΅ строки, Π° dw β€” слово, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ находится курсор.