Колисниченко Денис Николаевич
Шрифт:
В каждом сегменте находятся макрокоманды. С некоторыми мы уже знакомы — это %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-пакет, если вы хотите создать также пакет, содержащий исходный текст программы, используйте опцию –ba. Созданный пакет помещается в каталог SRPMS и будет иметь имя port-1.0-99.src.rpm. To есть вместо названия архитектуры будет указано, что данный пакет содержит исходный текст программы. Для создания такого пакета в каталоге SOURCES должны находиться исходные тексты программы.
Для полноты картины осталось рассмотреть опции менеджера 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». В командном режиме вы можете использовать стрелки для перемещения по тексту.