Данная статья описывает процесс создания RPM пакетов на примере Fedora.
RPM пакеты имеют собственную структуру, отличную от других. Но зачем
создавать свои RPM, если можно просто скомпилировать исходники? Ответ на
этот вопрос в рутинной установке, а также помощи разработчикам Fedora
или другим дистрибутивам. Устанавливая каждый раз одни и те же программы
из исходников, можно написать скрипт для автоматизации этого, однако,
если есть RPM, то не надо тратить много времени на установку, также как и
необходимая программа будет постоянно доступна онлайн из репозитория
(конечно же, если вы ее туда отправите).
Итак приступим к подготовке рабочей среды для создания RPM.
# yum groupinstall "Development Tools" # yum install rpmdevtools
На данной стадии происходит установка необходимых утилит и различных библиотек разработчика.
НИКОГДА НЕ СОЗДАВАЙТЕ RPM ОТ ROOT! (это может нарушить работу системы, увеличить возможность взлома и так далее)
После окончания установки, запустите
rpmdev-setuptree
Это приведет к создание ветки директорий
BUILD BUILDROOT RPMS SOURCES SPECS SRPMS
Из всех директорий нас интересует только SOURCES SPECS, информация в
остальных, если все сделано верно, сгенерируется автоматически.
Теперь нам нужен .spec файл, примеры можно найти путем стачивания
.src.rpm с репозитория, после распаковки, будет .spec файл, который
необходимо поправить под наши нужды.
Сами исходники с патчами или без, копируем в SOURCES.
Когда все готово, запускаем компилирование и создание RPM
rpmbuild -ba ПУТЬ/NAME.spec для создания .src.rpm rpmbuild -bi ПУТЬ/NAME.spec для создания бинарника или просто .rpm
Для установки и/или тестирования
# rpm -ivh sourcepackage-name*.src.rpm
или # rpm -ivh package-name*.rpm
Если все сделано правильно, то программа установится с предупреждением,
что rpb database изменена сторонней программой (правильно, мы же ее еще
не залили на Fedora сервер).
Объяснение часто используемых областей в .spec файле
Name: Базовое имя пакета удовлетворяющее требованиям Packagen Naming Guidelines. После этого, макрос %{name} будет обращаться к данному разделу.
Version: Номер версии, при использовании даты в версии, используйте формат, гг.мм (пример 11.02). %{version} для последуещого обращения к данной области.
Release: Должно быть 1%{?dist}, таким образом, число будет увеличиваться каждый раз, когда создается пакет для одной и той же версии дистрибутива.
Summary: Краткое описание пакета.
Group: Существующая группа пакетов, например Applications/Databases.
Чтобы узнать весь список # less /usr/share/doc/rpm-*/GROUPS
Для документации будет соответственно группа Documentation.
License: Лицензия на программу, обязана быть для открытых
исходников, например "GPLv2+" (GPL версии 2 или новее). Для нескольких
лицензий используйте "and" или "or" "GPLv2 and BSD". Следует указывать
лицензию максимально точно, можно указывать несколько лицензий с помощью
"and" и "or", например "GPLv2 and BSD".
URL: Ссылка на сайт программы/проекта.
Source0: Ссылка на архив с исходным кодом. Если указана полная
ссылка, то одноименный пакет должен быть в папке SOURCES. Если
источников исходного кода несколько, то используем Source1, Source2 и т.д.
Patch0: Название первого патча для программы, имя файла должно
заканчиваться на .patch и лежать в директории ~/rpmbuild/SOURCES. Патчей
может быть несколько.
BuildArch: Архитектура программы под определенные процессоры. Для универсальных пакетов "noarch".
BuildRoot: Место, выделенное для компиляции и установки
исходников приложения во время выполнения процесса "%install". По
стандарту Fedora, будет создана специальная директория в /var/tmp. Более
новые версии RPM пропустят это значение и поместят build root в
%{_topdir}/BUILDROOT/
BuildRequires: Список необходимых приложений для сборки пакета (через запятую). Автоматически не определяются.
Некоторые стандартные приложения могут быть опущены в данном списке.
Полный список приложений, которые могут быть пропущены здесь
(https://fedoraproject.org/wiki/Packaging/Guidelines).
Requires: Список необходимых приложений для работы после установки (через запятую). В большинстве случаев определяются автоматически rpmbuild.
%description: Описание программы, строки не должны быть длиннее 80 символов. %prep: Скрипты для подготовки программы, распаковки и подготовки к сборке. %build: Скрипты для сборки программы, компиляции и подготовки к установке. %test: Скрипты для тестирования программы, выполняются после %build, но до %install. %install: Скрипты для установки программы, команды скопируют
файлы из "build directory" %{_builddir} (которая находится
~/rpmbuild/BUILD) в директорию buildroot %{buildroot}, которая обыно
находится в /var/tmp. %clean: Инструкции для очистки buildroot, например, rm -rf %{buildroot} %files: Список устанавливаемых файлов. %changelog: Изменения в программе.
//xenos88
Статья подготовлена опираясь на официальный источник от Fedora
Открытая вакансия для тех кто ищет работу без опыта ! Девочки и мальчики От 16 до 60 лет. Это не наркотики и не оружие. Напиши мне в ТГ: https://t.me/A_Gold_Money
Меня зовут Владислав, и я представляю команду Web Hero. Мы обнаружили несколько технических недочетов на вашем сайте, которые могут отталкивать ваших клиентов.
Наша команда готова приступить к исправлению этих проблем немедленно, чтобы ваш сайт работал безупречно.
Давайте обсудим возможности сотрудничества и наши предложения по улучшению вашего веб-ресурса. Просто оставьте заявку на нашем сайте: wbhr.ru, или свяжитесь со мной напрямую по адресу sale.tp1@wbhr.ru.
Понимание текущих событий в судостроительной отрасли России имеет огромное значение для профессионалов и специалистов этой сферы. Новости и аналитика, публикуемые на отраслевом портале https://sudostroenie.info, помогают быть в курсе последних событий, тенденций и инноваций в судостроительной промышленности. Благодаря этому информационному ресурсу можно своевременно реагировать на изменения на рынке, принимать обоснованные решения и быть успешным в своей деятельности. Поэтому важно следить за обновлениями на портале https://sudostroenie.info и не упускать возможность получить актуальную информацию из первых уст.
Перехватим клиентов с сайтов конкурентов из их CRM, мобильных приложений или с номеров компании на которые звонят клиенты. в 10 раз дешевле яндекс директа. Современные инструменты BigData позволяют узнать кто посещал сайты конкурентов или звонил им на телефон, чтобы работать именно с этой горячей аудиторией в режиме реального времени контакты от 17 рублей. можем предоставить под обзвон от 17 руб или разослать SMS/ MMS/ Viber от 3,6 руб (только РФ) звонки посетителям сайтов конкурентов в реальном времени, в течение 20 минут с момента посещения сайта или звонка конкуренту, по самой горячей аудитории. Любые законные ниши, торговля, услуги, строительство, перевозки, привлечение работников, агентов, B2B, B2C и т.д. 100% легальный метод, никакие законы не нарушаем. Доступная цена. договор. закрывающие документы. также можем добыть базы клиентов или поставщиков конкурентов в B2B и B2C сфере наш cайт https://bigdata.popupbiz.ru оставьте заявку телеграм канал @bigdatapopupbizru email bigdatabiz@mail.ru телефон для связи 89529082087
Здравствуй Волшебная Женщина! Я Инна Морозова. Целитель Родовых Сценариев. Знаешь как за 14 дней наполнить себя энергией ЖЕНСКОГО ИЗОБИЛИЯ? А ещё и переписать Родовые сценарии отношений, финансов, здоровья и предназначения так, чтобы и ты, и твои потомки больше не проживали деструктивные программы? И просто кайфовали от этой жизни. Тебе это уже нужно? Или ты ещё не "намучилась" преодолевать жизненные препятствия :-) Если интересно, тогда переходи по ссылке, и узнай как за 14 дней всё это сделать. До встречи ))
Здравия всем! «Весенний марафон» Начинайте в любой момент – лучше сейчас! )) Легче сберечь существующий потенциал здоровья, чем потом пытаться восстанавливать упущенный!
Как правило, у нас есть только два выбора: 1. Или мы занимаетесь своим здоровьем; 2. Или это делает за нас хирург. Хотя бы попробуйте узнать чуть больше о том, что мы предлагаем, перейдя по ссылке: https://moe-zdorovje.club/joga
До скорой встречи! Ждем вас! Наша почта: support@moe-zdorovje.club
Мы предлагаем услуги по написание и размещение положительных отзывов про Вас в интернете!!!
Работаем с самыми популярными площадками: yandex.ru, google.ru, zoon.ru, yell.ru, otzyvru.com, ru.otzyv.com, 2gis.ru, hh.ru, pravda-sotrudnikov, spr.ru и многик другие.
Сайт https://otzyvtop.creatium.site/ Тел. 985-882-26-76 E-mail otzyv.top10@gmail.com