Колисниченко Д.Н. - Linux-сервер своими руками (1077324), страница 99
Текст из файла (страница 99)
Но это дерево по умолчанию может430Полезные команды и программы. Создание RPM-пакетовсодержать другие файлы, относящиеся к другим пакетам. Поэтому сначалас помощью тэга BuildRoot нужно задать какой-нибудь временный каталог,а после установки удалить его.В каждом сегменте находятся макрокоманды. С некоторыми мы ужезнакомы — это %description, %files, %doc, %install. В табл. 19.34 приведенополное описание макрокоманд.МакрокомандыТаблица 19.34Макрокоманда%description%ргер%setup%build%files%config список%doc список%install%pre%post%preun%postun%cleanОписаниеПолное описание пакетаПодготовка архива. Здесь задаются команды для извлечения исходного текстапрограммы и его распаковки, дополнительная подготовка исходного текста. Послемакрокоманды %ргер задаются обычные команды shellМакрокоманда извлечения файлов из архивов.
Опция -п возволяет указать каталог,в котором будет создаваться новый пакет. Обычно распаковывается архив, расположенный в каталоге SOURCES, в каталог BUILDМакрокоманда компилирования. Обычно здесь запускается программа makeс необходимыми параметрамиЗадает список файлов, входящих в состав пакета.
При указании имен файлов долженбыть указан полный, а не относительный путь. Для указания лолного пути можно использовать переменную окружения $RPM_BUILD_ROOT. Необходимые файлы уже должныбыть помещены в каталог BUILD. Этого можно достичь с помощью макрокоманды%setup или с помощью макрокоманды %рге (см. ниже)Задает список файлов, которые будут помещены в каталог /etcЗадает список файлов, которые будут помещены в каталог/usr/doc/[package] - [ver] - [release]Этап установки программного обеспечения.
Здесь нужно записать команды, которыебудут устанавливать файлы, входящие в состав пакета. Удобнее использовать командуinstall, которую я использовал в листинге 19.1Действия, которые будут выполнены до инсталляции пакетаДействия, которые будут выполнены после инсталляции пакетаДействия, которые будут выполнены перед удалением пакетаДействия, которые будут выполнены после удаления пакетаУдаление дерева BUILD. Используется вместо опции — clean программы rpm.Обычно содержит одну команду: rm -rf $RPM_BUILD_ROOTНужно сделать небольшое замечание относительно макрокоманд %configи %doc. В этом случае список задается не так, как в макрокоманде %files.Если после макрокоманды %files можно было просто указать по одномуфайлу в каждой строке, то в макрокоманде %doc каждому файлу (иликаждому списку) должна предшествовать команда %doc.
Например:%doc README TODO Changes%doc I n s t a l lа не%docREADMETODOChangesInstallЕще раз отмечу, что наличие всех макрокоманд в файле спецификацийне является обязательным.431Полезные команды и программы. Создание РРМ-пакетовПри создании пакета мы использовали опцию -bb программы rpm. Приуказании этой опции создается только двоичный RPM-пакет, если вы хотитесоздать также пакет, содержащий исходный текст программы, используйтеопцию -Ьа.
Созданный пакет помещается в каталог SRPMS и будет иметь имяport-1.0-99. src. rpm. To есть вместо названия архитектуры будет указано,что данный пакет содержит исходный текст профаммы. Для создания такогопакета в каталоге SOURCES должны находиться исходные тексты программы.Для полноты картины осталось рассмотреть опции менеджера rpm, которые используются для создания пакетов (см. табл. 19.35).Опции менеджера пакетов rpmОпция-Ьа-bb-be-bi-Ы-bp--recompile package. src. rpm--rebuildpackage. src.
rpm--test--clean--showrcТаблица 19.35ОписаниеСоздаются два пакета: двоичный и содержащий исходный текст. При этомне пропускается ни один этап установки, указанный в файле спецификацийСоздается только двоичный пакет. Не пропускается ни один этап установки,указанный в файле спецификацийВыполняются этапы %рге и %build. При этом пакет распаковывается и компилируетсяВыполняются этапы %pre, %build, %installВыполняется проверка списка файлов, указанных в макрокоманде %filesВыполняется только этап %рге, то есть распаковывается архивУказанный пакет, содержащий исходные тексты, сначала устанавливается,а потом компилируетсяУстанавливается и компилируется пакет исходных текстов, а затем создается новыйдвоичный пакетПроверка файла спецификацийУдаление дерева каталогов BUILD после создания пакетаВыводит файл конфигурации19.6.
Использование редактора viСогласно традиции, в состав любой Unix-подобной операционной системы входит текстовый редактор vi. Если вам придется работать с другимдистрибутивом, в нем может не оказаться предпочитаемого вами редактора,а вот vi есть всегда. Редактор vi помещается на загрузочную дискету, поэтому если вам придется редактировать системные файлы, загрузившись ссистемной дискеты для восстановления системы, особого выбора у вас небудет — только редактор vi. Поэтому давайте остановимся на нем подробнее.Несмотря на свое название (vi — visual editor), vi является далеко несамым простым в использовании редактором. При работе в vi вы можетенаходиться в одном из трех режимов:1. Командный режим.2. Режим вставки.3. Режим последней строки.Первым режимом является режим командной строки, и именно в этомрежиме вы находитесь, когда запускаете vi.
В этом режиме вы можетевводить различные команды для работы с текстом.В режиме вставки вы можете редактировать текст файла. Переход врежим вставки происходит при введении команды i (от insert) в командном432Полезные команды и программы. Создание РРМ-пакетоврежиме. Для возврата из режима вставки в режим командной строки нажмите клавишу «Esc».Режим последней строки является расширением командного режима.Команды, которые вы будете вводить в этом режиме, будут отображаться впоследней строке экрана. Находясь в этом режиме, вы можете сохранитьфайл, выйти из vi или выйти без сохранения. Например, для сохраненияфайла используется команда w, а для выхода — команда q, если вы хотитевыйти с сохранением файла, введите команду wq, а без сохранения команду q!. Войти в режим последней строки можно, нажав ":".Запустите редактор vi командой:vi s o m e _ f i l e .
t x tТак как файла some_file.txt не существует, vi создаст новый файл стаким именем. В левой части экрана вы увидите столбец, состоящий изсимволов тильды «~». Этот столбец сообщает о том, что вы находитесь в концефайла: и это не удивительно, поскольку только что созданный файл пуст.Курсор отображается в верхнем левом углу как символ подчеркивания «_».Нажмите i для перехода в режим вставки и начинайте печатать. Перейтина новую строку вы можете с помощью клавиши «Enter», корректироватьввод можно клавишами «Backspace» и «Del».
Для возврата в командныйрежим нажмите клавишу «Esc». В командном режиме вы можете использовать стрелки для перемещения по тексту.Кроме команды i, для вставки текста вы можете использовать команду а.Эта команда вставляет текст после текущего положения курсора. Например,используя команду а, вы можете вставить текст между словами first и second:first_second thirdКоманда о вставляет текст в строку, которая находится ниже текущей.Для удаления текста в режиме команд используются команды: х, dd, dw.Первая удаляет символ перед курсором, вторая удаляет целые строки, аdw — слово, на котором находится курсор.Для замены текста используется команда R.
Это не автоматическаязамена одного фрагмента текста на другой, как в других текстовых редакторах. Имеется в виду режим замены, который в обыкновенных редакторахвключается с помощью клавиши «Insert».Редактор vi разрабатывался таким образом, чтобы его можно было использовать на алфавитно-цифровых терминалах, на клавиатуре которых былитолько алфавитно-цифровые клавиши. На таких терминалах для перемещения по тексту используются клавиши h, j, k, и 1 для перемещения влево,вниз, вверх и вправо соответственно.
Команда w переместит курсор наначало следующего слова, a b — на начало предыдущего. Команды 0 (ноль)и $ используются для перемещения в начало и конец текущей строки.Комбинация клавиш Ctrl+F переместит вас на один экран вперед, a Ctrl+B —на один экран назад. Для перемещения на определенную строку используйтеномер этой строки и символ G. Например, команда 1G переместит вас напервую строку файла, а команда G (без номера) — в конец файла.433Полезные команды и программы.