Kniga-Online.club
» » » » Денис Колисниченко - Linux-сервер своими руками

Денис Колисниченко - Linux-сервер своими руками

Читать бесплатно Денис Колисниченко - Linux-сервер своими руками. Жанр: Программное обеспечение издательство -, год 2004. Так же читаем полные версии (весь текст) онлайн без регистрации и SMS на сайте kniga-online.club или прочесть краткое содержание, предисловие (аннотацию), описание и ознакомиться с отзывами (комментариями) о произведении.
Перейти на страницу:

vi [параметры] файл

Программа vi — это текстовый редактор. Более подробную информацию вы сможете получить в справочной системе.

wc [параметры] файл

Эта программа подсчитывает количество строк, символов или слов в текстовом файле. Если файл не указан, используется стандартный ввод. Данную программу удобно использовать при написании сценариев обработки текста. Параметры программы рассмотрены в табл. 19.33.

Параметры программы wc Таблица 19.33

Параметр Описание --bytes Подсчет количества байтов -с Подсчет количества символов --chars Подсчет количества символов -l Подсчет количества строк --lines Подсчет количества строк -w Подсчет количества слов. Данный параметр используется по умолчанию --words Подсчет количества слов. Данный параметр используется по умолчанию

xedit файл

Программа xedit является простейшим текстовым редактором, предназначенным для работы в системе X Window. Вместо него обычно удобнее использовать редакторы kedit или gedit. Первый из них является стандартным редактором оконной среды KDE, а второй — оконной среды Gnome.

zdiff файлы

Данная программа распаковывает архивы gzip и выполняет программу diff.

19.5. Создание RPM-пакетов

Программа RPM предназначена для произведения всех видов операций с программным обеспечением, в том числе и для создания пакетов для установки (RPM-пакетов).

Прежде, чем описать много сухих фактов, взятых из документации, рассмотрим простой пример создания небольшого RPM-пакета. Я создал этот пакет для своей программки, которая контролирует состояние указанного последовательного порта.

Будем считать, что программа уже откомпилирована и все файлы, необходимые для ее работы, уже подготовлены. При этом понадобятся следующие файлы:

port — откомпилированный бинарный файл.

README — файл, который будет помещен в каталог /usr/doc/port-1.0-99.

port.1 — файл для справочной системы man.

Все эти файлы я поместил в каталог /root/port. Конечно, это не совсем корректно, но об этом будет сказано немного позже.

Для создания пакета нужно создать файл спецификаций. В файле спецификаций указывается вся информация о создаваемом пакете: название, версия, файлы программ, файлы документации, действия, выполняемые при установке пакета и при его удалении. Мой файл спецификаций для программы port представлен в листинге 19.1

Листинг 19.1. Файл спецификации для программы port

Summary: Program to control your serial device

Name: port

Version: 1.0

Release: 101

Group: Monitoring

License:GPL

Packager: Denis Kolisnichenko [[email protected]]

URL: http://dkws.narod.ru

%description

Программа port предназначена для мониторинга состояния последовательного

порта. При получении сигнала (1) на какой-нибудь контакт указанного порта,

port отправляет сообщение запустившему ее пользователю на указанный email

%files

%doc /root/port/README

/root/port/port

/root/port/port.1

Для построения пакета нужно ввести команду:

# rpm –bb /root/port/port.spec

Если вы не допустили никаких ошибок при создании файла спецификаций, на экране вы увидите примерно такое сообщение:

Executing(%install): /bin/sh –e /var/tmp/rpm-tmp.33439

Processing files: port-1.0-99

Finding Provides: (using /usr/lib/rpm/find-provides)…

Finding Requires: (using /usr/lib/rpm/find-requires)…

Requires: ld-linux.so.2 libc.so.6 libc.so.6(GLIBC_2.0)

Записан: /usr/src/RPM/RPMS/i686/port-1.0-99.i686.rpm

При этом будет создан пакет port-1.0-99.i686.rpm. Этот пакет будет помещен в каталог /usr/src/RPM/RPMS/i686.

При удалении такого пакета он будет удален из базы RPM, но удаления самих файлов не произойдет. Действия, которые нужно выполнить до и после удаления пакета из базы RPM, вы можете определить в макрокомандах %preun и %postun соответственно. Например

%preun

rm –f /usr/bin/port

rm –f /usr/man/man1/port.1

Такой подход — самый простой выход из положения, однако он является не очень корректным. Решение этой проблемы оставляю вам в качестве домашнего задания.

А сейчас проведем небольшой эксперимент. Запустите Midnight Commander (mc), перейдите в каталог /usr/src/RPM/RPMS/i686/ и «войдите» в пакет port-1.0-99.i686.rpm как в обычный каталог. В нем будет «подкаталог» INFO, в котором и содержится вся информация о пакете.

Что ж, вы успешно разобрались с построением простого пакета, но для создания реальных пакетов установки ваших знаний все еще не хватает. Теперь настала очередь той сухой теории, о которой я упомянул в начале этого пункта. Традиционно, процедура создания RPM-пакетов состоит из следующих этапов:

1. Извлечения исходных текстов программы из архива.

2. Компилирование программы из исходных текстов.

3. Создание RPM-пакета.

Первые два этапа можно пропустить, что мы и сделали при создании пакета. Такое можно сделать только в случае, если программа уже откомпилирована из исходных текстов.

Программа RPM использует файл конфигурации rpmrc. Поиск этого файла производится в каталогах /usr/lib/rpm, /etc, $HOME. Просмотреть этот файл можно с помощью команды:

# rpm --showrc

Запись topdir файла конфигурации rpmrc содержит название каталога, в котором находится дерево подкаталогов, которое используется менеджером RPM для построения пакетов. Введите команду:

# rpm –-showrc | grep topdir

-14 _builddir %{_topdir}/BUILD

-14 _rpmdir %{_topdir}/RPMS

-14 _sourcedir %{_topdir}/SOURCES

–14 _specdir %{_topdir}/SPECS

–14 _srcrpmdir %{_topdir}/SRPMS

–14 _topdir %{usrsrc}/RPM

У меня эти подкаталоги находятся в каталоге /usr/src/RPM. Как вы видите, в этом каталоге находятся подкаталоги BUILD, RPMS, SOURCES, SPECS, SRPMS.

В каталоге BUILD создается RPM-пакет. В каталоге SOURCES находятся сжатые исходные тексты программы. В каталог RPMS помещаются созданные пакеты. Точнее, они помещаются в один из его подкаталогов, в какой именно — это зависит от архитектуры. В каталог SRPMS помещаются пакеты, содержащие исходные тексты программы. В каталоге SPECS находятся файлы спецификаций. Обычно файл спецификации называется назва-ние_программы-версия-релиз.8рес.

Например, если у вас есть исходный текст программы в архиве, из которого вы хотите создать пакет RPM, скопируйте его в каталог SOURCES:

# ср source_code-1.0.tar.gz /usr/src/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.

Есть еще очень полезный тэг: BuildRoot. Он изменяет расположение дерева BUILD. Значением по умолчанию является /usr/src/RPM или другой каталог, задаваемый переменной окружения $RPM_BUILD_ROOT. В целях экономии дискового пространства полезно после установки удалить дерево %RPM_BUILD_ROOT. Но это дерево по умолчанию может содержать другие файлы, относящиеся к другим пакетам. Поэтому сначала с помощью тэга BuildRoot нужно задать какой-нибудь временный каталог, а после установки удалить его.

В каждом сегменте находятся макрокоманды. С некоторыми мы уже знакомы — это %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. Например:

Перейти на страницу:

Денис Колисниченко читать все книги автора по порядку

Денис Колисниченко - все книги автора в одном месте читать по порядку полные версии на сайте онлайн библиотеки kniga-online.club.


Linux-сервер своими руками отзывы

Отзывы читателей о книге Linux-сервер своими руками, автор: Денис Колисниченко. Читайте комментарии и мнения людей о произведении.


Уважаемые читатели и просто посетители нашей библиотеки! Просим Вас придерживаться определенных правил при комментировании литературных произведений.

  • 1. Просьба отказаться от дискриминационных высказываний. Мы защищаем право наших читателей свободно выражать свою точку зрения. Вместе с тем мы не терпим агрессии. На сайте запрещено оставлять комментарий, который содержит унизительные высказывания или призывы к насилию по отношению к отдельным лицам или группам людей на основании их расы, этнического происхождения, вероисповедания, недееспособности, пола, возраста, статуса ветерана, касты или сексуальной ориентации.
  • 2. Просьба отказаться от оскорблений, угроз и запугиваний.
  • 3. Просьба отказаться от нецензурной лексики.
  • 4. Просьба вести себя максимально корректно как по отношению к авторам, так и по отношению к другим читателям и их комментариям.

Надеемся на Ваше понимание и благоразумие. С уважением, администратор kniga-online.


Прокомментировать
Подтвердите что вы не робот:*
Подтвердите что вы не робот:*