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

на главную - закладки

Жанры

Основы программирования в Linux
Шрифт:

Установка RPM-пакетов

Для установки RPM-пакета запустите команду

rpm
. Формат очень простой:

rpm -Uhv name-version-release.architecture.rpm

Например,

$ rpm -Uhv MySQL-server-5.0.41-0.glibc23.i386.rpm

Эта команда устанавливает (или при необходимости обновляет) пакет сервера СУРБД MySQL для системы на базе Intel x86.

Команда

rpm
обеспечивает большую часть взаимодействия пользователя с RPM-системой. Вы можете узнать, установлен ли пакет, с помощью следующей команды:

$ rpm -qa xinetd

xinetd-2.3.14-40

Формирование RPM-пакетов

Для создания RPM-пакета выполните команду

rpmbuild
. Процесс относительно прост. Вы должны сделать следующее:

1. Собрать программное обеспечение, которое хотите поместить в пакет.

2. Создать файл spec, описывающий, как собирать пакет.

3. Сформировать пакете помощью команды

rpmbuild
.

Поскольку создание RPM-пакета может быть очень сложным, мы будем придерживаться в этой главе простого примера, достаточного для распространения приемлемого приложения в виде исходного или двоичного файла. Более таинственные опции и поддержку пакетов, полученных с помощью файлов исправлений (patches), мы оставим любознательным читателям. Для получения дополнительной информации изучите страницу интерактивного справочного руководства, посвященную программе rpm, или справочное руководство RPM HOWTO (обычно хранящееся в каталоге /usr/share/doc). Кроме того, прочтите книгу Эрика Фостера-Джонсона (Eric Foster-Johnson) "Red Hat RPM Guide" ("Справочник по Red Hat RPM"), доступную в интерактивном режиме на Web-сайте http://docs.fedoraproject.org/drafts/rpm-guide-en/.

Последующие разделы соответствуют трем шагам, необходимым для создания пакета тривиального приложения 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)

dist: myapp-1.0.tar.gz

myapp-1.0.tar.gz: myapp myapp.1

 -rm -rf myapp-1.0

 mkdir myapp-1.0

 cp *.c *.h *.1 Makefile myapp-1.0

 tar zcvf $@ myapp-1.0

Задание

myapp-1.0.tar.gz
в make-файле формирует сжатый архив (tarball) из исходных файлов нашего простого примера приложения. Этот код вставлен для простоты в задание
dist
, в котором вызываются те же команды. Для создания файла архива выполните следующую команду:

$ make dist

Далее нужно скопировать файл myapp-1.0.tar.gz в каталог RPM-пакетов SOURCES, обычно в системе Red Hat Linux это каталог /usr/src/redhat/SOURCES, а в системе SUSE Linux — /usr/src/packages/SOURCES. Например:

$ cp myapp-1.0.tar.gz /usr/src/redhat/SOURCES

RPM-система полагает, что исходные файлы находятся в каталоге SOURCES в виде tar-файлов. (Есть и другие опции, но эта самая простая.) SOURCES — это один из каталогов, на которые рассчитывает RPM-система.

RPM-система полагается на пять каталогов, приведенных в табл. 9.4.

Таблица 9.4

RPM-каталог Описание
BUILD Команда
rpmbuild
создает программное обеспечение в этом каталоге
RPMS Команда
rpmbuild
хранит в этом каталоге созданные ею двоичные файлы
SOURCES В этот каталог следует поместить исходные файлы для вашего приложения
SPECS В этот каталог следует помещать файлы spec для всех RPM-пакетов, которые вы планируете создать, хотя это и не обязательно
SRPMS Команда
rpmbuild
помещает в этот каталог RPM-пакеты из исходных файлов

У каталога RPMS обычно есть ряд подкаталогов, определяющих тип архитектуры системы, например такие, как приведенные далее (для системы с архитектурой Intel х86).

$ ls RPMS

athlon

i386

i486

i586

i686

noarch

В системах Red Hat Linux по умолчанию предполагается, что RPM-пакеты создаются в каталоге /usr/src/redhat.

Примечание

Этот каталог специфичен для системы Red Hat Linux. В других дистрибутивах Linux используются иные каталоги, например каталог /usr/src/packages.

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

Дитя прибоя

Трофимов Ерофей
Дитя прибоя
Фантастика:
боевая фантастика
попаданцы
фэнтези
5.00
рейтинг книги
Дитя прибоя

Егерь. Столичный гамбит

Скиба Николай
4. Зверолов
Фантастика:
рпг
уся
фэнтези
фантастика: прочее
попаданцы
6.67
рейтинг книги
Егерь. Столичный гамбит

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

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

Второгодка. Книга 3. Ученье свет

Ромов Дмитрий
3. Второгодка
Фантастика:
городское фэнтези
сказочная фантастика
альтернативная история
5.00
рейтинг книги
Второгодка. Книга 3. Ученье свет

Пришельцы с небес

Желязны Роджер Джозеф
Золотая библиотека фантастики
Фантастика:
научная фантастика
5.00
рейтинг книги
Пришельцы с небес

Я все еще князь. Книга XXI

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

Сборник "Приграничье" (1-5 части)

Корнев Павел Николаевич
Приграничье
Фантастика:
боевая фантастика
9.02
рейтинг книги
Сборник Приграничье (1-5 части)

Адмирал. Пенталогия

Светлов Дмитрий Николаевич
Адмирал
Фантастика:
фэнтези
6.29
рейтинг книги
Адмирал. Пенталогия

Том 2. Рассказы и пьесы 1904-1907

Андреев Леонид Николаевич
2. Собрание сочинений в шести томах
Проза:
русская классическая проза
5.00
рейтинг книги
Том 2. Рассказы и пьесы 1904-1907

Неучтенный

Муравьёв Константин Николаевич
1. Неучтенный
Фантастика:
боевая фантастика
космическая фантастика
попаданцы
8.25
рейтинг книги
Неучтенный

Библия. Синодальный перевод

Священное Писание
Религия и эзотерика:
религия
5.00
рейтинг книги
Библия. Синодальный перевод

Корона мечей

Джордан Роберт
7. Колесо Времени
Фантастика:
фэнтези
8.62
рейтинг книги
Корона мечей

За миллиард лет до конца света (сборник)

Стругацкие Аркадий и Борис
Фантастика:
научная фантастика
8.45
рейтинг книги
За миллиард лет до конца света (сборник)

Тень Гегемона

Кард Орсон Скотт
2. Эндер Виггин. Сага теней
Фантастика:
научная фантастика
7.11
рейтинг книги
Тень Гегемона