Чтение онлайн

на главную

Жанры

Основы программирования в Linux
Шрифт:
Создание RPM-пакета с помощью rpmbuild

Создаются пакеты с помощью команды

rpmbuild
со следующей синтаксической записью:

rpmbuild -bBuildStage spec_file

Опция

– b
заставляет
rpmbuild
создать RPM-пакет. Дополнительная опция
BuildStage
— специальный код, информирующий команду
rpmbuild
о том, как далеко она может зайти в процессе создания. В табл. 9.5 перечислены опции команды.

Таблица 9.5

Опция Описание
– ba
Создавать
и двоичный, и исходный RPM-пакет
– bb
Создавать двоичный RPM-пакет
– bc
Компилировать программу, но не создавать полный RPM-пакет
– bp
Подготовиться к созданию двоичного RPM-пакета
– bi
Создать двоичный RPM-пакет и установить его
– bl
Проверить список файлов RPM-пакета
– bs
Создать только RPM-пакет исходных файлов

Для создания двоичного RPM-пакета и пакета исходных файлов используйте опцию

– ba
. RPM-пакет исходных файлов позволит создать повторно двоичный RPM- пакет.

Скопируйте RPM-файл spec в корректный каталог SOURCES, поместив его рядом с исходным файлом приложения:

$ cp myapp.spec /usr/src/redhat/SOURCES

Далее приведен вывод, сопровождающий создание пакета в системе SUSE Linux, пакеты в которой создаются из каталога /usr/src/packages/SOURCES:

$ rpmbuild -ba myapp.spec

Executing(%prep): /bin/sh -e /var/tmp/rpm-tmp.47290

+ umask 022

+ cd /usr/src/packages/BUILD

+ cd /usr/src/packages/BUILD

+ rm -rf myapp-1.0

+ /usr/bin/gzip -dc /usr/src/packages/SOURCES/myapp-1.0.tar.gz

+ tar -xf -

+ STATUS=0

+ '[' 0 -ne 0 '] '

+ cd myapp-1.0

++ /usr/bin/id -u

+ '[' 1000 = 0 ']'

++ /usr/bin/id -u

+ '[' 1000 = 0 ']'

+ /bin/chmod -Rf a+rX, u+w, g-w, o-w

+ exit 0

Executing(%build): /bin/sh -e /var/tmp/rpm-tmp.99663

+ umask 022

+ cd /usr/src/packages/BUILD

+ /bin/rm -rf /var/tmp/myapp-1.0-root

++ dirname /var/tmp/myapp-1.0-root

+ /bin/mkdir -p /var/tmp

+ /bin/mkdir /var/tmp/myapp-1.0-root

+ cd myapp-1.0 + make

gcc -g -Wall -ansi -с -o main.о main.c

gcc -g -Wall -ansi -с -o 2.o 2.c

ar rv mylib.a 2.o

ar: creating mylib.a

a - 2.о

gcc -g -Wall -ansi -с -o 3.o 3.c

ar rv mylib.a 3.o

a — 3.o

gcc -o myapp main.о mylib.a

+ exit 0

Executing(%install): /bin/sh -e /var/tmp/rpm-tmp.47320

+ umask 022

+ cd /usr/src/packages/BUILD

+ cd myapp-1.0

+ mkdir -p /var/tmp/myapp-1.0-root/usr/bin

+ mkdir -p /var/tmp/myapp-1.0-root/usr/share/man

+ install -m755 myapp /var/tmp/myapp-1.0-root/usr/bin/myapp

+ install -m755 myapp.1 /var/tmp/myapp-1.0-root/usr/share/man/myapp.1

+ RPM_BUILD_ROOT=/var/tmp/myapp-1.0-root

+ export RPM_BUILD_ROOT

+ test -x /usr/sbin/Check -a 1000 = 0 -o

 -x /usr/sbin/Check -a '!' -z /var/tmp/myapp-1.0-root

+ echo 'I call /usr/sbin/Check...'

I call /usr/sbin/Check...

+ /usr/sbin/Check

– rwxr-xr-x 1 neil users 926 2007-07-09 13:35 /var/tmp/myapp-1.0-root/ /usr/share/man/myapp.1.gz

Checking permissions and ownerships — using the permissions files

 /tmp/Check.perms.017506

setting /var/tmp/myapp-1.0-root/ to root:root 0755 (wrong owner/group neil:users)

setting /var/tmp/myapp-1.0-root/usr to root:root 0755. (wrong owner/group neil:users)

+ /usr/lib/rpm/brp-compress

+ /usr/lib/rpm/brp-symlink

Processing files: myapp-1.0-1

Finding Provides: /usr/lib/rpm/find-provides myapp

Finding Requires: /usr/lib/rpm/find-requires myapp

Finding Supplements: /usr/lib/rpm/find-supplements myapp

Provides: goodness

Requires(interp): /bin/sh

Requires(rpmlib): rpmlib(PayloadFilesHavePrefix) <= 4.0-1

 rpmlib (CompressedFileNames) <= 3.0.4-1

Requires(post): /bin/sh

Requires: mysql >= 3.23 libc.so.6 libc.so.6 (GLIBC 2.0)

Поделиться:
Популярные книги

Двойник короля 16

Скабер Артемий
16. Двойник Короля
Фантастика:
аниме
фэнтези
попаданцы
5.00
рейтинг книги
Двойник короля 16

Геном хищника. Книга четвертая

Гарцевич Евгений Александрович
4. Я - Легенда!
Фантастика:
боевая фантастика
рпг
попаданцы
5.00
рейтинг книги
Геном хищника. Книга четвертая

На границе империй. Том 5

INDIGO
5. Фортуна дама переменчивая
Фантастика:
боевая фантастика
попаданцы
7.50
рейтинг книги
На границе империй. Том 5

Я до сих пор не князь. Книга XVI

Дрейк Сириус
16. Дорогой барон!
Фантастика:
юмористическое фэнтези
попаданцы
аниме
5.00
рейтинг книги
Я до сих пор не князь. Книга XVI

Искатель 3

Шиленко Сергей
3. Валинор
Фантастика:
попаданцы
рпг
фэнтези
5.00
рейтинг книги
Искатель 3

Вперед в прошлое!

Ратманов Денис
1. Вперед в прошлое
Фантастика:
попаданцы
5.00
рейтинг книги
Вперед в прошлое!

Звездная Кровь. Изгой IV

Елисеев Алексей Станиславович
4. Звездная Кровь. Изгой
Фантастика:
боевая фантастика
попаданцы
технофэнтези
рпг
5.00
рейтинг книги
Звездная Кровь. Изгой IV

Эволюционер из трущоб. Том 2

Панарин Антон
2. Эволюционер из трущоб
Фантастика:
космическая фантастика
попаданцы
5.00
рейтинг книги
Эволюционер из трущоб. Том 2

Бояръ-Аниме. Газлайтер. Том 35

Володин Григорий Григорьевич
35. История Телепата
Фантастика:
аниме
боевая фантастика
фэнтези
5.00
рейтинг книги
Бояръ-Аниме. Газлайтер. Том 35

Последний попаданец

Зубов Константин
1. Последний попаданец
Фантастика:
фэнтези
попаданцы
рпг
5.00
рейтинг книги
Последний попаданец

Маленькие Песцовые радости

Видум Инди
5. Под знаком Песца
Фантастика:
альтернативная история
аниме
6.80
рейтинг книги
Маленькие Песцовые радости

Я Гордый часть 6

Машуков Тимур
6. Стальные яйца
Фантастика:
фэнтези
городское фэнтези
попаданцы
аниме
5.00
рейтинг книги
Я Гордый часть 6

Тринадцатый XIII

NikL
13. Видящий смерть
Фантастика:
городское фэнтези
аниме
фэнтези
попаданцы
5.00
рейтинг книги
Тринадцатый XIII

Афганский рубеж 4

Дорин Михаил
4. Рубеж
Фантастика:
попаданцы
альтернативная история
6.00
рейтинг книги
Афганский рубеж 4