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

Π§ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎΠ½Π»Π°ΠΉΠ½ Β«ΠžΡΠ½ΠΎΠ²Ρ‹ программирования Π² LinuxΒ». Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Π° 113

Автор НСйл ΠœΡΡ‚ΡŒΡŽ

RPM-систСма ΠΏΠΎΠ»Π°Π³Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ исходныС Ρ„Π°ΠΉΠ»Ρ‹ находятся Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ SOURCES Π² Π²ΠΈΠ΄Π΅ tar-Ρ„Π°ΠΉΠ»ΠΎΠ². (Π•ΡΡ‚ΡŒ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΎΠΏΡ†ΠΈΠΈ, Π½ΠΎ эта самая простая.) SOURCES β€” это ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ², Π½Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ рассчитываСт RPM-систСма.

RPM-систСма полагаСтся Π½Π° ΠΏΡΡ‚ΡŒ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ², ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½Ρ‹Ρ… Π² Ρ‚Π°Π±Π». 9.4.


Π’Π°Π±Π»ΠΈΡ†Π° 9.4

RPM-ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ ОписаниС BUILD Команда rpmbuild создаСт ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ΅ обСспСчСниС Π² этом ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ RPMS Команда rpmbuild Ρ…Ρ€Π°Π½ΠΈΡ‚ Π² этом ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ созданныС Сю Π΄Π²ΠΎΠΈΡ‡Π½Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹ SOURCES Π’ этот ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ слСдуСт ΠΏΠΎΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ исходныС Ρ„Π°ΠΉΠ»Ρ‹ для вашСго прилоТСния SPECS Π’ этот ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ слСдуСт ΠΏΠΎΠΌΠ΅Ρ‰Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ»Ρ‹ spec для всСх RPM-ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ ΠΏΠ»Π°Π½ΠΈΡ€ΡƒΠ΅Ρ‚Π΅ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ, хотя это ΠΈ Π½Π΅ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ SRPMS Команда rpmbuild ΠΏΠΎΠΌΠ΅Ρ‰Π°Π΅Ρ‚ Π² этот ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ RPM-ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹ ΠΈΠ· исходных Ρ„Π°ΠΉΠ»ΠΎΠ²

Π£ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π° RPMS ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Π΅ΡΡ‚ΡŒ ряд ΠΏΠΎΠ΄ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ², ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‰ΠΈΡ… Ρ‚ΠΈΠΏ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹ систСмы, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Ρ‚Π°ΠΊΠΈΠ΅, ΠΊΠ°ΠΊ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½Ρ‹Π΅ Π΄Π°Π»Π΅Π΅ (для систСмы с Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€ΠΎΠΉ Intel Ρ…86).

$ ls RPMS

athlon

i386

i486

i586

i686

noarch

Π’ систСмах Red Hat Linux ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ прСдполагаСтся, Ρ‡Ρ‚ΠΎ RPM-ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹ ΡΠΎΠ·Π΄Π°ΡŽΡ‚ΡΡ Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ /usr/src/redhat.

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

Π­Ρ‚ΠΎΡ‚ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ спСцифичСн для систСмы Red Hat Linux. Π’ Π΄Ρ€ΡƒΠ³ΠΈΡ… дистрибутивах Linux ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ ΠΈΠ½Ρ‹Π΅ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΈ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ /usr/src/packages.

ПослС Ρ‚ΠΎΠ³ΠΎ ΠΊΠ°ΠΊ исходныС Ρ„Π°ΠΉΠ»Ρ‹ для вашСго RPM-ΠΏΠ°ΠΊΠ΅Ρ‚Π° Π±ΡƒΠ΄ΡƒΡ‚ собраны вмСстС, Π½ΡƒΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ» spec, ΠΎΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‰ΠΈΠΉ, ΠΊΠ°ΠΊ ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Π° rpmbuild Π΄ΠΎΠ»ΠΆΠ½Π° ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ваш ΠΏΠ°ΠΊΠ΅Ρ‚.

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ RPM-Ρ„Π°ΠΉΠ»Π° spec

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Ρ„Π°ΠΉΠ»Π° spec ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ нСпростым занятиСм ΠΏΡ€ΠΈ Π½Π°Π»ΠΈΡ‡ΠΈΠΈ тысяч ΠΎΠΏΡ†ΠΈΠΉ, ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅ΠΌΡ‹Ρ… RPM-систСмой. МоТно Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ простым ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠΌ ΠΈΠ· этого Ρ€Π°Π·Π΄Π΅Π»Π°, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ достаточно для Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π° создаваСмых Π²Π°ΠΌΠΈ ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ². ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ΠΈΠ· Π΄Ρ€ΡƒΠ³ΠΈΡ… Ρ„Π°ΠΉΠ»ΠΎΠ² spec.

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

Π₯ΠΎΡ€ΠΎΡˆΠΈΠΌΠΈ источниками ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ² Ρ„Π°ΠΉΠ»ΠΎΠ² spec слуТат Π΄Ρ€ΡƒΠ³ΠΈΠ΅ RPM-ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹. ΠŸΠΎΡΠΌΠΎΡ‚Ρ€ΠΈΡ‚Π΅ RPM-ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹ исходных Ρ„Π°ΠΉΠ»ΠΎΠ², хранящиСся Π² Ρ„Π°ΠΉΠ»Π°Ρ… с ΠΎΠΊΠΎΠ½Ρ‡Π°Π½ΠΈΠ΅ΠΌ .src.rpm. УстановитС эти RPM-ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹ ΠΈ просмотритС ΠΈΡ… Ρ„Π°ΠΉΠ»Ρ‹ spec. Π’Ρ‹ Π½Π°ΠΉΠ΄Π΅Ρ‚Π΅ Π³ΠΎΡ€Π°Π·Π΄ΠΎ Π±ΠΎΠ»Π΅Π΅ слоТныС ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹, Ρ‡Π΅ΠΌ Ρ‚Π΅, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Π°ΠΌ ΠΊΠΎΠ³Π΄Π°-Π»ΠΈΠ±ΠΎ понадобятся. Π˜Π½Ρ‚Π΅Ρ€Π΅ΡΠ½Ρ‹Π΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ срСди Ρ„Π°ΠΉΠ»ΠΎΠ² spec, ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π½Ρ‹Ρ… для ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² anonftp, telnet, vnc ΠΈ sendmail.

ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ RPM-систСмы ΠΌΡƒΠ΄Ρ€ΠΎ Ρ€Π΅ΡˆΠΈΠ»ΠΈ Π½Π΅ ΠΏΡ‹Ρ‚Π°Ρ‚ΡŒΡΡ Π·Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ популярныС срСдства построСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ make ΠΈΠ»ΠΈ configure. RPM-систСма содСрТит ΠΌΠ½ΠΎΠ³ΠΎ срСдств быстрого доступа, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΡ… Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ make-Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ ΠΈ сцСнариями configure.

Π’ Π΄Π°Π½Π½ΠΎΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ Π²Ρ‹ создаСтС Ρ„Π°ΠΉΠ» spec для простого прилоТСния myapp. НазовитС Π΅Π³ΠΎ myapp.spec. НачинаСт Ρ„Π°ΠΉΠ» spec с Π½Π°Π±ΠΎΡ€Π° опрСдСлСния ΠΈΠΌΠ΅Π½ΠΈ, Π½ΠΎΠΌΠ΅Ρ€Π° вСрсии ΠΈ Π΄Ρ€ΡƒΠ³ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎ вашСм ΠΏΠ°ΠΊΠ΅Ρ‚Π΅. НапримСр,

Vendor:       Wrox Press

Distribution: Any

Name:         myapp

Version:      1.0

Release:      1

Packager:     [email protected]

License:      Copyright 2007 Wiley Publishing, Inc

Group:        Applications/Media

Π­Ρ‚Ρƒ сСкция RPM-Ρ„Π°ΠΉΠ»Π° spec часто Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΎΠΌ. Π’ Π½Π΅ΠΉ содСрТатся Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ Π²Π°ΠΆΠ½Ρ‹Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ Name, Version ΠΈ Release. Π’ нашСм ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ имя β€” myapp, Π½ΠΎΠΌΠ΅Ρ€ вСрсии β€” 1.0 ΠΈ Π½ΠΎΠΌΠ΅Ρ€ выпуска ΠΈΠ»ΠΈ сборки RPM-ΠΏΠ°ΠΊΠ΅Ρ‚Π° β€” 1, Ρ‚.ΠΊ. эта ваша пСрвая ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ° создания RPM-ΠΏΠ°ΠΊΠ΅Ρ‚Π°.

ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ Group примСняСтся для облСгчСния графичСской инсталляции ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ, сортируя тысячи ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ для систСмы Linux ΠΏΠΎ Ρ‚ΠΈΠΏΠ°ΠΌ. Π­Π»Π΅ΠΌΠ΅Π½Ρ‚ Distribution Π²Π°ΠΆΠ΅Π½, Ссли Π²Ρ‹ создаСтС ΠΏΠ°ΠΊΠ΅Ρ‚ для ΠΎΠ΄Π½ΠΎΠ³ΠΎ дистрибутива Linux, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Red Hat ΠΈΠ»ΠΈ SUSE Linux.

НСплохо Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π² ваш Ρ„Π°ΠΉΠ» spec ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ. Как ΠΈ сцСнарии ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠΈ, ΠΈ make-Ρ„Π°ΠΉΠ»Ρ‹, ΠΊΠΎΠΌΠ°Π½Π΄Π° rpmbuild считаСт ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠ΅ΠΌ Π»ΡŽΠ±ΡƒΡŽ строку, Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΡƒΡŽΡΡ с символа #. НапримСр:

# Π­Ρ‚ΠΎ строка коммСнтария.

Для Ρ‚ΠΎΠ³ΠΎ Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠΌΠΎΡ‡ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ Ρ€Π΅ΡˆΠΈΡ‚ΡŒ, Π½ΡƒΠΆΠ½ΠΎ Π»ΠΈ ΠΈΠΌ ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°Ρ‚ΡŒ ваш ΠΏΠ°ΠΊΠ΅Ρ‚, ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²ΡŒΡ‚Π΅ сСкции Summary ΠΈ %description (ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° Π½Π΅ΡΠΎΠ³Π»Π°ΡΠΎΠ²Π°Π½Π½ΠΎΡΡ‚ΡŒ RPM-синтаксиса, ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡŽΡ‰Π΅Π³ΠΎ Π·Π½Π°ΠΊ ΠΏΡ€ΠΎΡ†Π΅Π½Ρ‚Π° ΠΏΠ΅Ρ€Π΅Π΄ ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ сСкции описания). НапримСр, свой ΠΏΠ°ΠΊΠ΅Ρ‚ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΎΠΏΠΈΡΠ°Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

Summary:    Trivial application


%description

MyApp Trivial Application

A trivial application used to demonstrate development tools.

This version pretends it requires MySQL at or above 3.23.

Authors: Neil Matthew and Richard Stones

БСкция %description ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΡΡ‚ΠΎΡΡ‚ΡŒ (ΠΈ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ состоит) ΠΈΠ· Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… строк.

Π€Π°ΠΉΠ» spec ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ ΡΠΎΠΏΡƒΡ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΈ ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊΠΈΠ΅ возмоТности прСдоставляСт ваш ΠΏΠ°ΠΊΠ΅Ρ‚, ΠΈ ΠΎ Ρ‚ΠΎΠΌ, ΠΎΡ‚ Ρ‡Π΅Π³ΠΎ ΠΎΠ½ зависит. (Π’Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ, ΠΎΡ‚ Ρ‡Π΅Π³ΠΎ зависит ΠΏΠ°ΠΊΠ΅Ρ‚ исходных Ρ„Π°ΠΉΠ»ΠΎΠ², Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΡ‡Π½Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ для компиляции.)

ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ Provides опрСдСляСт возмоТности, прСдоставляСмыС вашСй систСмой. НапримСр:

Provides: goodness

Π’ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ утвСрТдаСтся, Ρ‡Ρ‚ΠΎ ΠΏΠ°ΠΊΠ΅Ρ‚ прСдоставляСт Π²Ρ‹ΠΌΡ‹ΡˆΠ»Π΅Π½Π½ΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΡƒΡŽ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ, ΠΈΠΌΠ΅Π½ΡƒΠ΅ΠΌΡƒΡŽ goodness (Ρ†Π΅Π½Π½Ρ‹Π΅ свойства). RPM-систСма Ρ‚Π°ΠΊΠΆΠ΅ автоматичСски добавляСт элСмСнт Provides ΠΊ ΠΈΠΌΠ΅Π½ΠΈ ΠΏΠ°ΠΊΠ΅Ρ‚Π°, Π² Π΄Π°Π½Π½ΠΎΠΌ случаС myapp. ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ Provides ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ Π² случаС мноТСствСнных ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ², ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΡ… ΠΎΠ΄Π½Ρƒ ΠΈ Ρ‚Ρƒ ΠΆΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΡƒΡŽ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ. НапримСр, ΠΏΠ°ΠΊΠ΅Ρ‚ Web-сСрвСра Apache прСдоставляСт срСдство webserver. Π”Ρ€ΡƒΠ³ΠΈΠ΅ ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Thy, ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ Ρ‚ΠΎ ΠΆΠ΅ срСдство. (Для облСгчСния Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ΡƒΡŽΡ‰ΠΈΠΌΠΈ ΠΏΠ°ΠΊΠ΅Ρ‚Π°ΠΌΠΈ RPM-систСма позволяСт Π·Π°Π΄Π°Π²Π°Ρ‚ΡŒ Ρ‚Π°ΠΊΠΆΠ΅ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ элСмСнтов Conflicts ΠΈ Obsoletes.)

НаиболСС ваТная ΡΠΎΠΏΡƒΡ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π°Ρ информация опрСдСляСтся Π² ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°Ρ… Requires. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ всС ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ для функционирования вашСго ΠΏΠ°ΠΊΠ΅Ρ‚Π°. НапримСр, Web-сСрвСру трСбуСтся сСтСвой ΠΏΠ°ΠΊΠ΅Ρ‚ ΠΈ ΠΏΠ°ΠΊΠ΅Ρ‚ бСзопасности. Π’ нашСм ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ Π²Ρ‹ Π·Π°Π΄Π°Π΅Ρ‚Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ Π‘Π£Π Π‘Π” MySQL вСрсии 3.23 ΠΈΠ»ΠΈ Π±ΠΎΠ»Π΅Π΅ свСТСй. БинтаксичСская запись ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π° Π΄Π°Π»Π΅Π΅:

Requires: mysql >= 3.23

Если Π²Π°ΠΌ Π½ΡƒΠΆΠ½Π° Π‘Π£Π Π‘Π” MySQL любой вСрсии, ΠΌΠΎΠΆΠ½ΠΎ Π·Π°Π΄Π°Ρ‚ΡŒ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

Requires: mysql

RPM-систСма Π½Π΅ Ρ€Π°Π·Ρ€Π΅ΡˆΠΈΡ‚ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°Ρ‚ΡŒ ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹, Ссли Π½Π΅ установлСны ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ для ΠΈΡ… Ρ€Π°Π±ΠΎΡ‚Ρ‹. (ΠŸΡ€Π°Π²Π΄Π°, ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΠ΅Ρ€Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ это ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅.)

RPM-систСма автоматичСски добавляСт зависимыС элСмСнты, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ /bin/sh для сцСнариСв ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠΈ, ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€ Perl для сцСнариСв Π½Π° языкС Perl ΠΈ Π»ΡŽΠ±Ρ‹Π΅ совмСстно ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ (Ρ„Π°ΠΉΠ»Ρ‹ с Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ΠΌ so), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ вашС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. КаТдая новая вСрсия RPM-систСмы Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ всС Π½ΠΎΠ²Ρ‹Π΅ срСдства для автоматичСской ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ зависимостСй.

ПослС задания Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π½ΠΈΠΉ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ исходныС Ρ„Π°ΠΉΠ»Ρ‹, Ρ„ΠΎΡ€ΠΌΠΈΡ€ΡƒΡŽΡ‰ΠΈΠ΅ вашС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Для Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΌΠΎΠΆΠ½ΠΎ просто ΡΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ строку:

source: %{name}-%{version}.tar.gz

БинтаксичСская запись %{name} ссылаСтся Π½Π° RPM-макрос, Π² Π΄Π°Π½Π½ΠΎΠΌ случаС имя ΠΏΠ°ΠΊΠ΅Ρ‚Π°. ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Ρ€Π°Π½Π΅Π΅ Π²Ρ‹ Π·Π°Π΄Π°Π»ΠΈ имя myapp, ΠΊΠΎΠΌΠ°Π½Π΄Π° rpmbuild Π·Π°ΠΌΠ΅Π½ΠΈΡ‚ %{name} Π½Π° myapp ΠΈ Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½ΠΎ Π·Π°ΠΌΠ΅Π½ΠΈΡ‚ %{version} Π½Π° 1.0, для Ρ‚ΠΎΠ³ΠΎ Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для построСния Ρ„Π°ΠΉΠ» с ΠΈΠΌΠ΅Π½Π΅ΠΌ myapp-1.0.tar.gz. Π˜ΡΠΊΠ°Ρ‚ΡŒ этот Ρ„Π°ΠΉΠ» ΠΎΠ½Π° Π±ΡƒΠ΄Π΅Ρ‚ Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ SOURCES, описанном Ρ€Π°Π½Π΅Π΅.

Π’ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ задаСтся ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ Buildroot, ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‰ΠΈΠΉ мСсто установки ΠΏΠ°ΠΊΠ΅Ρ‚Π°. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π² ваши ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ строку:

Buildroot: %{_tmppath}/%{name}-%{version}-root

ПослС Ρ‚ΠΎΠ³ΠΎ ΠΊΠ°ΠΊ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ Buildroot Π·Π°Π΄Π°Π½, устанавливайтС ваши прилоТСния Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ ΠΈΠ· ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° Buildroot. МоТно ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΡƒΠ΄ΠΎΠ±Π½ΡƒΡŽ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ $RPM_BUILD_ROOT, которая задаСтся для всСх сцСнариСв ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠΈ Π² Ρ„Π°ΠΉΠ»Π΅ spec.

ПослС задания всСх этих характСристик ΠΏΠ°ΠΊΠ΅Ρ‚Π° Π΄Π°Π»Π΅Π΅ Π½ΡƒΠΆΠ½ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ, ΠΊΠ°ΠΊ ΡΠΎΠ±ΠΈΡ€Π°Ρ‚ΡŒ ΠΏΠ°ΠΊΠ΅Ρ‚. Для этого Π΅ΡΡ‚ΡŒ Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅ основныС сСкции: %prep, %build, %install ΠΈ %clean.

Будя ΠΏΠΎ ΠΈΠΌΠ΅Π½ΠΈ, сСкция %prep ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π° для ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠΈ сборки. Π’ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π΅ случаСв Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½Ρ‹ΠΉ Π΄Π°Π»Π΅Π΅ макрос %setup с ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠΌ -q для ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Π° Π΅Π³ΠΎ Π² Ρ€Π΅ΠΆΠΈΠΌ Π±Π΅Π· Π²Ρ‹Π²ΠΎΠ΄Π° сообщСний:

%prep

%setup -q

БСкция %build собираСт вашС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Π’ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π΅ случаСв ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ ΠΏΡ€ΠΎΡΡ‚ΡƒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ make. НапримСр:

%build

make

Π­Ρ‚ΠΎ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· способов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ RPM-систСма ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ΡƒΠΆΠ΅ ΠΏΡ€ΠΎΠ΄Π΅Π»Π°Π½Π½ΡƒΡŽ Π²Π°ΠΌΠΈ Ρ€Π°Π±ΠΎΡ‚Ρƒ ΠΏΠΎ созданию make-Ρ„Π°ΠΉΠ»Π°.

БСкция %install устанавливаСт вашС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠ΅ справочноС руководство ΠΈ Π»ΡŽΠ±Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ RPM-макрос %makeinstall, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ Π·Π°Π΄Π°Π½ΠΈΠ΅ install make-Ρ„Π°ΠΉΠ»Π°. Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, Π² Π΄Π°Π½Π½ΠΎΠΌ случаС установим Ρ„Π°ΠΉΠ»Ρ‹ Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΎΠ΄Π΅ΠΌΠΎΠ½ΡΡ‚Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ RPM-макросы:

%install

mkdir -Ρ€ $RPM_BUILD_ROOT%{_bindir}

mkdir -p $RPM_BUILD_ROOT%{_mandir}