Основы программирования в 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)
Поделиться:
Популярные книги
Сирота
1. Светлая Тьма
Фантастика:
юмористическое фэнтези
городское фэнтези
аниме
5.00
рейтинг книги
Меченный смертью. Том 3
3. Меченный смертью
Фантастика:
аниме
фэнтези
попаданцы
5.00
рейтинг книги
Барон ненавидит правила
8. Закон сильного
Фантастика:
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Гнездо Седого Ворона
2. Трактир "Разбитые надежды"
Фантастика:
боевая фантастика
7.50
рейтинг книги
Династия. Феникс
5. Династия
Фантастика:
попаданцы
аниме
5.00
рейтинг книги
Черный Маг Императора 5
5. Черный маг императора
Фантастика:
юмористическое фэнтези
попаданцы
аниме
5.00
рейтинг книги
Идеальный мир для Лекаря 12
12. Лекарь
Фантастика:
боевая фантастика
юмористическая фантастика
аниме
5.00
рейтинг книги
Барон переписывает правила
10. Закон сильного
Фантастика:
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Дважды одаренный. Том V
5. Дважды одаренный
Фантастика:
аниме
альтернативная история
городское фэнтези
5.00
рейтинг книги
Моров. Том 4
3. Моров
Фантастика:
фэнтези
попаданцы
альтернативная история
аниме
5.00
рейтинг книги
Командор космического флота
3. Звезды на погонах
Фантастика:
боевая фантастика
космическая фантастика
космоопера
5.00
рейтинг книги
Гранит науки. Том 1
1. Героями не становятся, ими умирают
Фантастика:
фэнтези
боевая фантастика
5.25
рейтинг книги
Кодекс Охотника. Книга XXXIX
39. Кодекс Охотника
Фантастика:
фэнтези
попаданцы
боевая фантастика
5.00
рейтинг книги
Лихие. Смотрящий
2. Бригадир
Фантастика:
попаданцы
5.00