Изграждане на rpm пакети - форум за системни администратори
Получаването на правилния софтуер често е най-трудната задача. Един потенциален проблем е съществуването на софтуерни зависимости от други програми и библиотеки. В процеса на работа с направи трябва да обърнете внимание на библиотеките на трети страни, които са необходими за компилацията. Тези зависимости трябва по-късно да бъдат включени в спецификацията на пакета на етапа на изграждане на rpm. Като цяло, всяка зависимост се задоволява със своя собствен rpm пакет, така че трябва да се погрижите да направите тези rpm пакети достъпни.
Когато се постигнат три цели: осигурена е възпроизводима компилация, планират се актуализации, всички зависимости са изпълнени, можете да започнете да изграждате самия пакет rpm.
В Red Hat Linux родителската директория за дървото на директории за изграждане обикновено е/usr/src/redhat.
Тъй като RPM първоначално е проектиран за изграждане на дистрибуции на Linux като цяло, този път може да се различава от посочения в други системи и може да бъде променен чрез редактиране на rpmrc файлове.
Най-лесният начин е да използвате пътя към директориите за изграждане, които вече са в системата. За да изградите под непривилегирован потребител, може да се наложи да промените правата за достъп до тях. Трябва да се помни, че грешките в изграждането на rpm пакети могат да доведат до сериозни проблеми в системата, ако компилацията се изпълнява като root потребител.
За да започнете да изграждате пакета, остават две стъпки:
- - поставете изходния код в SOURCE;
- поставете спецификационен файл в SPECS.
Най-общо казано, можете да поставите дървото на източника на вашия проект в ИЗТОЧНИЦИ. Но е много по-удобно (и по този начин се прави), особено ако ще има много пакети, да поставите tarball там. Тогава, в прост случай, ще има по един архивен файл за всеки изграден пакет. Архивът ще бъде отворен с помощта на RPM макроси, което е тривиално от гледна точка на потребителя. Това помага да се запази изходният код на различни проекти отделно един от друг, тъй като всички те са в директорията SOURCES.
Конвенцията за именуване на tarball на източника предлага следното споразумение за именуване: package_name-version.tar.gz. Поставяйки архива в ИЗТОЧНИЦИ, операторът прави скриптове за изграждане, изходен код и всичко останало достъпно за RPM.
Файл със спецификации, съкращение от "файл със спецификации", дефинира всички действия на помощната програма rpmbuild, които трябва да бъдат извършени при изграждането на приложението, както и всички действия, необходими при инсталиране/деинсталиране на приложението. Всеки пакет src.rpm съдържа файл със спецификации за последващо възстановяване на пакета.