Как создать или построить RPM Package
Введение —
* “Rpmbuild” инструмент используется для создания и …
1) ~ двоичных пакетов для установки программного обеспечения и поддержки сценариев. Он содержит все файлы, составляющие приложение, а также любую дополнительную информацию, необходимую для установки и удаления его.
2) ~ исходного кода содержит оригинальные сжатые TAR файлов исходного кода, патчи и спецификации файла.
* Что такое & RPM RPM Package Manager?
RPM Package Manager (RPM) является мощной командной строки пакета управления системой, способной Установка, удаление, проверка, запросы и обновления программного обеспечения.
RPM пакет состоит из архива файлы и мета-данные, используемые для установки и удаления архивных файлов. Мета-данные включают вспомогательные скрипты, атрибуты файлов, а также описательная информация о пакете.
* Чтобы построить RPM пакет нужно указать три вещи ~
1) Источники приложений – В любом случае, вы не должны изменять источники, используемые в процессе здании пакет.
2) Патчи – RPM дает вам возможность автоматически применять патчи к ним. Патч устраняет проблему, специфичные для целевой системы. Это может включать изменение make-файлы для установки приложения в соответствующие каталоги, либо в решении кросс-платформенный конфликтов. Патчи создания условий, необходимых для надлежащего компиляции.
3) Спецификация файла – это спецификация файла находится в центре процесса строительства RPM пакет. Он содержит информацию, необходимую RPM для сборки пакета, а также инструкции говорить об / мин, как строить. Спецификация файла также диктует, какие именно файлы являются частью пакета, и где они должны быть установлены.
** Спецификации файла ~ делится на 8 разделов, как показано ниже
а) преамбула ~ содержит информацию, которая будет отображаться, когда пользователи запрашивают информацию о пакете. Это будет включать описание функций пакета, номер версии программного обеспечения и т.д.
б) Подготовка ~ когда фактическая работа по созданию пакета начинается. Как следует из названия, этот раздел, где необходимые приготовления сделаны до начала фактического строительства программного обеспечения. В общем, если что-то должно быть сделано для источников до строительстве программное обеспечение, оно должно произойти в подготовке раздела. Содержание данного раздела являются обычными скрипт. Однако, RPM ли предоставить два макроса, чтобы сделать жизнь легче. Один макрос можно распаковать сжатые файлы и смол компакт-диск в исходном каталоге. Другие макро легко применяет патчи к распакованы источников.
с) создать ~ Этот раздел состоит из сценария оболочки. Он используется для выполнения любых команд требуется на самом деле компиляция источников, как сделать одну команду, или быть более сложной, если процесс сборки требует этого. Есть нет макросов доступны в этом разделе.
д) Установить ~ В этом разделе также содержащий сценарий оболочки, в разделе установка используется для выполнения команды необходимо реально установить программное обеспечение.
е) установить и удалить скрипты ~ Она состоит из сценариев, которые будут запущены на компьютере пользователя, когда пакет фактически установлена или удалена. RPM может выполнить скрипт до / после установки / удаления пакетов.
е) Проверить ~ сценария сценарий, который выполняется в пользовательской системе. Он выполняется при RPM проверяет правильность установки пакета.
г) чистый участок ~ скрипт, который может чистыми вещами после сборки. Этот сценарий используется редко, поскольку RPM обычно делает хорошую работу по очистке построить в большинстве сред.
H) Список файлов ~ состоит из списка файлов, который будет включать в себя пакет. Кроме того, количество макросов может быть использована для контроля атрибутов файлов при установке, а также обозначить, какие файлы документации, и которые содержат информацию о конфигурации. Список файлов является очень важным.
*** Из RPM требованием построить окружающей среды ~
] RPM требует набора каталогов для выполнения сборки. Хотя каталоги ‘места и названия могут быть изменены. По умолчанию Схема приведена ниже —
Root @ arunsb: ~ # ls -l /usl/src/redhat/
drwxr-XR-X 2 коренных коренных 4096 25 августа 2007 SOURCES => содержит оригинальных источников, патчи и файлы иконок
drwxr-XR-X 2 коренных коренных 4096 25 августа 2007 ДАННЫЕ => содержит спецификации файлами
drwxr-XR-X 2 коренных коренных 4096 25 августа 2007 BUILD => каталог, в который распаковываются источников, & программное обеспечение построено
drwxr-XR-X 8 корневых корневых 4096 28 мая 2008 RPMS => содержит бинарные пакеты файлов, созданных в процессе построить
drwxr-XR-X 2 коренных коренных 4096 25 августа 2007 SRPMS => содержит исходного кода в файлы, созданные в процессе сборки
Root @ arunsb: ~ #
B] необходимо экспортировать несколько глобальных переменных, используемых RPM —
Root @ arunsb: ~ # export RPM_BUILD_DIR=/usr/src/redhat/BUILD/
Root @ arunsb: ~ # export RPM_SOURCE_DIR=/usr/src/redhat/SOURCES/
Шаг 1] Создать Specification (SPEC) файле ~
root@arunsb:~# head -n 50 /usr/src/redhat/SPECS/openlsm.spec
# Authority: Arun Bagul
#RPM_BUILD_DIR /usr/src/redhat/BUILD/
#RPM_SOURCE_DIR /usr/src/redhat/SOURCES/
%define MY_PREFIX /usr/local/openlsm/
## Preamble Section-
Name: openlsm
Version: 0.99
Vendor: IndianGNU.org & openlsm
Release: r45
Group: System Environment/Daemons
Packager: IndianGNU.org (http://www.indiangnu.org)
URL: http://openlsm.sourceforge.net/
Summary: openlsm Admin Server
License: GPL
%description
openlsm Admin Server is free & open source web based control panel for Linux,Unix systems.
## Preparation Section-
%prep
rm -rf ${RPM_BUILD_DIR}/openlsm-0.99-r45/
tar xvfz ${RPM_SOURCE_DIR}/openlsm-0.99-r45.tar.gz -C ${RPM_BUILD_DIR}
## Build Section-
%build
cd ./openlsm-0.99-r45/
./configure –prefix=/usr/local/openlsm –with-mysql=/usr/bin/mysql_config –enable-internal-pcre –with-geoip=/usr –with-ldap=/usr –enable-trace
make
## Install Section-
%install
cd ./openlsm-0.99-r45/
make install
## Files Section-
%files
/usr/local/openlsm
/usr/local/openlsm/etc/openlsm/openlsm.conf
/usr/local/openlsm/etc/openlsm/openlsm.conf.perf_sample
/usr/local/openlsm/etc/openlsm/ssl/
/usr/local/openlsm/bin/openlsm-config
….
…..
….. list of files installed by pkg
root@arunsb:~#
* Как создать список файлов?
Создание списка файлов ручной процесс. Что я сделал: я взял список файлов из моего руководства установлен каталога с префиксом найти команду, как показано ниже …
root@arunsb:~# find /usr/local/openlsm/ -type f -or -type d
Шаг 2] Начиная Build ~
root@arunsb:~# cd /usr/src/redhat/SPECS
root@arunsb:/usr/src/redhat/SPECS# ls -l openlsm.spec
-rw-r–r– 1 root root 12938 Dec 2 17:21 openlsm.spec
root@arunsb:/usr/src/redhat/SPECS#
root@arunsb:/usr/src/redhat/SPECS# rpmbuild -ba openlsm.spec
…
….
… ..
Проверка упаковки файла (ов): / USR / LIB / RPM / проверить файлы BuildRoot% ()
Написали: / usr/src/redhat/SRPMS/openlsm-0.99-r45.src.rpm
Написали: / usr/src/redhat/RPMS/i386/openlsm-0.99-r45.i386.rpm
Root @ arunsb: / USR / SRC / RedHat / ДАННЫЕ Эхо # $?
0
Root @ arunsb: / USR / SRC / RedHat / ДАННЫЕ # LS-L / usr/src/redhat/SRPMS/openlsm-0.99-r45.src.rpm
-RW-R-R-1 коренных коренных 3206 2 декабря 17:50 / usr/src/redhat/SRPMS/openlsm-0.99-r45.src.rpm
Root @ arunsb: / USR / SRC / RedHat / ДАННЫЕ # LS-L / usr/src/redhat/RPMS/i386/openlsm-0.99-r45.i386.rpm
-RW-R-R-1 коренных коренных 3052868 2 декабря 17:50 / usr/src/redhat/RPMS/i386/openlsm-0.99-r45.i386.rpm
Root @ arunsb: / USR / SRC / RedHat / ДАННЫЕ #
* Исходные и бинарные пакеты созданы!
** Давайте посмотрим, что произошло в “/ USR / SRC / RedHat / каталог”
Root @ arunsb: / USR / SRC / RedHat # PWD
/ USR / SRC / RedHat
Root @ arunsb: / USR / SRC / RedHat # Ls
СТРОЙ RPMS ИСТОЧНИКИ ДАННЫЕ SRPMS
Root @ arunsb: / USR / SRC / RedHat # Ls СТРОЙ /
openlsm-0.99-R45 <== исходного здесь добывали как часть инструкции по сборке от спецификации есть файл “openlsm.spec”
Root @ arunsb: / USR / SRC / RedHat # Ls SOURCES /
openlsm-0.99-r45.tar.gz <== оригинал “openlsm-0.99-источник r45.tar.gz ‘файл скопирован мной
Root @ arunsb: / USR / SRC / RedHat # Ls RPMS /
Athlon i386 i486 i586 i686 noarch
Root @ arunsb: / USR / SRC / RedHat # RPMS/i386 Ls /
openlsm-0.99-r45.i386.rpm <== двоичных пакетов / мин создан!
Root @ arunsb: / USR / SRC / RedHat # Ls SRPMS /
openlsm-0.99-r45.src.rpm <== Source RPM пакет создан!
Root @ arunsb: / USR / SRC / RedHat #
Шаг 3] Теперь установите этот пакет и проверить его ~
Root @ arunsb: / USR / SRC / RedHat # RPMS/i386/openlsm-0.99-r45.i386.rpm CP / Home / arunsb /
Root @ arunsb: / USR / SRC / RedHat # CD / Home / arunsb /
Root @ arunsb: ~ # Ls
openlsm-0.99-r45.i386.rpm
Root @ arunsb: ~ # RPM-ВЖК openlsm-0.99-r45.i386.rpm
Подготовка … ########################################### [100%]
1: openlsm ########################################### [100%]
Root @ arunsb: ~ # Ls / USR / местные / openlsm /
и т.д. бен Contrib включать Lib долю sbin сценарии VAR
Root @ arunsb: ~ #
** Начиная openlsm сервере ~
Root @ arunsb: ~ # / USR / местные / openlsm / Contrib / openlsm-Redhat начало
* Запуск сервера openlsm Admin: openlsm
. [OK]
Root @ arunsb: ~ #
Root @ arunsb: ~ # / USR / местные / openlsm / Contrib / openlsm-Redhat статус
openlsm (PID 21607) запущен …
Root @ arunsb: ~ #
Root @ arunsb: ~ # RPM-Q openlsm-0.99-R45
openlsm-0.99-R45
Root @ arunsb: ~ #
Root @ arunsb: ~ # RPM-QL openlsm-0.99-R45
..
…
Root @ arunsb: ~ # RPM-qiv openlsm-0.99-R45
Имя: openlsm Relocations: (не перемещаемые)
Версия: 0.99 Производитель: IndianGNU.org & openlsm
Выпуск: R45 Build Date: Срд 02 Dec 2009 05:50:54 PM IST
Дата установки: Срд 02 Dec 2009 06:06:23 PM IST Build Host: alongseveral-dr.eglbp.corp.yahoo.com
Группа:: Система / Демоны Пакет: openlsm-0.99-r45.src.rpm
Размер: 14877918 Лицензия: GPL
Подпись: (None)
Packager: IndianGNU.org (http://www.indiangnu.org)
URL: http://openlsm.sourceforge.net/
Резюме: openlsm Admin Server
Описание:
openlsm Администратор сервера свободного & открытым исходным веб-панель управления для Linux, Unix системами.
Root @ arunsb: ~ #
** ПРИМЕЧАНИЕ ~ Эта статья не содержит информации о том, как определить Micros, как копировать документы, мужчина страниц по умолчанию, как установить permision и собственности и т.д. Я рассмотрим эту тему в следующей статье о RPM.
** См. статью английский ~ http://www.indiangnu.org/2009/how-to-create-or-build-rpm-package/
Привет,
Arun Bagul