Страница 180 из 324
Последующие разделы соответствуют трем шагам, необходимым для создания пакета тривиального приложения myapp.
Первый этап в создании RPM-пакета — сбор программного обеспечения, которое вы хотите поместить в пакет. Чаще всего у вас есть исходный программный код приложения, файл сборки, например make-файл, и, возможно, страница интерактивного справочного руководства.
Самый легкий способ собрать это программное обеспечение — упаковать файлы в сжатый tar-файл. Назовите файл архива именем приложения и укажите в нем номер версии, например, myapp-1.0.tar.gz.
Вы можете откорректировать ранее созданный make-файл Makefile6, добавив новое задание на упаковку файлов в сжатый файл архива. Окончательная версия make-файла, названная просто Makefile, выглядит следующим образом:
all: myapp
# Какой компилятор
CC = gcc
# Где хранятся файлы include
INCLUDE = .
# Опции для разработки
CFLAGS = -g -Wall -ansi
# Опции для рабочей версии
# CFLAGS = -О -Wall -ansi
# Локальные библиотеки
MYLIB = mylib.a
myapp: main.о $(MYLIB)
$(CC) -о myapp main.о $(MYLIB)
$(MYLIB) : $(MYLIB)(2.o) $(MYLIB)(3.о)
main.о: main.c a.h
2.o: 2.с a.h b.h
3.o: 3.c b.h c.h
clean:
-rm main.о 2.о 3.o $(MYLIB)
<i>dist: myapp-1.0.tar.gz</i>
<i>myapp-1.0.tar.gz: myapp myapp.1</i>
<i> -rm -rf myapp-1.0</i>
<i> mkdir myapp-1.0</i>
<i> cp *.c *.h *.1 Makefile myapp-1.0</i>
<i> tar zcvf $@ myapp-1.0</i>
Задание myapp-1.0.tar.gz в make-файле формирует сжатый архив (tarball) из исходных файлов нашего простого примера приложения. Этот код вставлен для простоты в задание dist, в котором вызываются те же команды. Для создания файла архива выполните следующую команду:
$ <b>make dist</b>
Далее нужно скопировать файл myapp-1.0.tar.gz в каталог RPM-пакетов SOURCES, обычно в системе Red Hat Linux это каталог /usr/src/redhat/SOURCES, а в системе SUSE Linux — /usr/src/packages/SOURCES. Например:
$ <b>cp myapp-1.0.tar.gz /usr/src/redhat/SOURCES</b>
RPM-система полагает, что исходные файлы находятся в каталоге SOURCES в виде tar-файлов. (Есть и другие опции, но эта самая простая.) SOURCES — это один из каталогов, на которые рассчитывает RPM-система.
RPM-система полагается на пять каталогов, приведенных в табл. 9.4.
Таблица 9.4