Linux-сервер своими руками
Шрифт:
Например, если у вас есть исходный текст программы в архиве, из которого вы хотите создать пакет RPM, скопируйте его в каталог SOURCES:
По умолчанию менеджер RPM работает с пакетами, расположенными в каталоге с именем, совпадающим с названием пакета и его версией. Для нашего пакета port это будет каталог port-1.0-99. Менеджер пакетов будет компилировать наш пакет в каталог /usr/src/RPM/port-1.0-99.
Думаю, уже достаточно информации о каталогах RPM. Теперь перейдем к файлу спецификаций. Файл спецификаций состоит из четырех сегментов: заголовка, подготовительного, файлового, установочного. В заголовке указывается общая информация о пакете. В листинге 19.1 к сегменту заголовка относятся тэги Summary, Name, Version, Release, Group и License. На них мы останавливаться не будем, так как их назначение понятно из листинга 19.1.
Есть
В каждом сегменте находятся макрокоманды. С некоторыми мы уже знакомы — это %description, %files, %doc, %install. В табл. 19.34 приведено полное описание макрокоманд.
Макрокоманды Таблица 19.34
Макрокоманда | Описание |
---|---|
%description | Полное описание пакета |
%prep | Подготовка архива. Здесь задаются команды для извлечения исходного текста программы и его распаковки, дополнительная подготовка исходного текста. После макрокоманды %prep задаются обычные команды shell |
%setup | Макрокоманда извлечения файлов из архивов. Опция –n позволяет указать каталог, в котором будет создаваться новый пакет. Обычно распаковывается архив, расположенный в каталоге SOURCES, в каталог BUILD |
%build | Макрокоманда компилирования. Обычно здесь запускается программа make с необходимыми параметрами |
%files | Задает список файлов, входящих в состав пакета. При указании имен файлов должен быть указан полный, а не относительный путь. Для указания полного пути можно использовать переменную окружения $RPM_BUILD_ROOT. Необходимые файлы уже должны быть помещены в каталог BUILD. Этого можно достичь с помощью макрокоманды %setup или с помощью макрокоманды %pre (см. ниже) |
%config список | Задает список файлов, которые будут помещены в каталог /etc |
%doc список | Задает список файлов, которые будут помещены в каталог /usr/doc/[package]–[ver]–[release] |
%install | Этап установки программного обеспечения. Здесь нужно записать команды, которые будут устанавливать файлы, входящие в состав пакета. Удобнее использовать команду install которую я использовал в листинге 19.1 |
%pre | Действия, которые будут выполнены до инсталляции пакета |
%post | Действия, которые будут выполнены после инсталляции пакета |
%preun | Действия, которые будут выполнены перед удалением пакета |
%postun | Действия, которые будут выполнены после удаления пакета |
%clean | Удаление дерева BUILD. Используется вместо опции — clean программы rpm. Обычно содержит одну команду: rm –rf $RPM_BUILD_ROOT |
Нужно сделать небольшое замечание относительно макрокоманд %config и %doc. В этом случае список задается не так, как в макрокоманде %files. Если после макрокоманды %files можно было просто указать по одному файлу в каждой строке, то в макрокоманде %doc каждому файлу (или каждому списку) должна предшествовать команда %doc. Например:
а не
Еще раз отмечу, что наличие всех макрокоманд в файле спецификаций не является обязательным.
При создании пакета мы использовали опцию –bb программы rpm. При указании этой опции создается только двоичный RPM-пакет, если вы хотите создать также пакет, содержащий исходный
Для полноты картины осталось рассмотреть опции менеджера rpm, которые используются для создания пакетов (см. табл. 19.35).
Опции менеджера пакетов rpm Таблица 19.35
Опция | Описание |
---|---|
– ba | Создаются два пакета: двоичный и содержащий исходный текст. При этом не пропускается ни один этап установки, указанный в файле спецификаций |
– bb | Создается только двоичный пакет. Не пропускается ни один этап установки, указанный в файле спецификаций |
– be | Выполняются этапы %pre и %build. При этом пакет распаковывается и компилируется |
– bi | Выполняются этапы %pre, %build, %install |
– bl | Выполняется проверка списка файлов, указанных в макрокоманде |
– bp | Выполняется только этап %pre, то есть распаковывается архив |
– -recompile package.src.rpm | Указанный пакет, содержащий исходные тексты, сначала устанавливается, а потом компилируется |
– -rebuild package.src.rpm | Устанавливается и компилируется пакет исходных текстов, а затем создается новый двоичный пакет |
– -test | Проверка файла спецификаций |
– -clean | Удаление дерева каталогов BUILD после создания пакета |
– -showrc | Выводит файл конфигурации |
19.6. Использование редактора vi
Согласно традиции, в состав любой Unix-подобной операционной системы входит текстовый редактор vi. Если вам придется работать с другим дистрибутивом, в нем может не оказаться предпочитаемого вами редактора, а вот vi есть всегда. Редактор vi помещается на загрузочную дискету, поэтому если вам придется редактировать системные файлы, загрузившись с системной дискеты для восстановления системы, особого выбора у вас не будет — только редактор vi. Поэтому давайте остановимся на нем подробнее.
Несмотря на свое название (vi — visual editor), vi является далеко не самым простым в использовании редактором. При работе в vi вы можете находиться в одном из трех режимов:
1. Командный режим.
2. Режим вставки.
3. Режим последней строки.
Первым режимом является режим командной строки, и именно в этом режиме вы находитесь, когда запускаете vi. В этом режиме вы можете вводить различные команды для работы с текстом.
В режиме вставки вы можете редактировать текст файла. Переход в режим вставки происходит при введении команды i (от insert) в командном режиме. Для возврата из режима вставки в режим командной строки нажмите клавишу «Esc».
Режим последней строки является расширением командного режима. Команды, которые вы будете вводить в этом режиме, будут отображаться в последней строке экрана. Находясь в этом режиме, вы можете сохранить файл, выйти из vi или выйти без сохранения. Например, для сохранения файла используется команда w, а для выхода — команда q, если вы хотите выйти с сохранением файла, введите команду wq, а без сохранения — команду q!. Войти в режим последней строки можно, нажав ":".
Запустите редактор vi командой:
Так как файла some_file.txt не существует, vi создаст новый файл с таким именем. В левой части экрана вы увидите столбец, состоящий из символов тильды «~». Этот столбец сообщает о том, что вы находитесь в конце файла: и это не удивительно, поскольку только что созданный файл пуст. Курсор отображается в верхнем левом углу как символ подчеркивания «_».
Нажмите i для перехода в режим вставки и начинайте печатать. Перейти на новую строку вы можете с помощью клавиши «Enter», корректировать ввод можно клавишами «Backspace» и «Del». Для возврата в командный режим нажмите клавишу «Esc». В командном режиме вы можете использовать стрелки для перемещения по тексту.