75796

Создание RPM пакета в операционной системе Linux

Курсовая

Информатика, кибернетика и программирование

Основным преимуществом программного обеспечения с открытым кодом является, как следует из названия, доступность внутренней информации об особенностях работы приложений. Имея исходный код, вы можете изучить, как приложение работает, изменить, улучшить и расширять его функции, заимствовать и повторно использовать код...

Русский

2015-01-26

629.67 KB

2 чел.

МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РФ

КОСТРОМСКОЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ ИМ. Н.А. НЕКРАСОВА

 

 

 

 

 

 

 

Курсовая работа

 

на тему: «Создание RPM пакета в операционной системе Linux»

 

 

 

 

 

 

 

 

Работу выполнила студентка 4 курса 5 группы

Липина Алена Сергеевна

 

  

 

 

 

 

 

 

 

 

Кострома 2014

Оглавление

[1] Введение

[2] 1. Сборка утилиты wget

[3] 2. Создание RPM пакета

[4] 3. Собираем пакет RPM

[5] Заключение

[6] Список литературы


Введение

Основным преимуществом программного обеспечения с открытым кодом является, как следует из названия, доступность внутренней информации об особенностях работы приложений. Имея исходный код, вы можете изучить, как приложение работает, изменить, улучшить и расширять его функции, заимствовать и повторно использовать код (в пределах лицензионного приложения), а также портировать приложение на новые и развивающиеся платформы.

Обычно предварительно созданное приложение с открытым исходным кодом называется пакетом и объединяет в себе все исполняемые файлы, данные и конфигурационные файлы, необходимые для работы приложения. Пакет также пошагово выполняет все действия, требуемые для развертывания приложения в системе, обычно для этого используются скрипты. Скрипт может генерировать данные, запускать и останавливать системные службы, и выполнять операции с файлами и каталогами. Скрипт также может выполнять обновление существующего программного обеспечения — апгрейд на новую версию.

Поскольку в каждой операционной системе имеют свои особенности, пакет, как правило, подстраивается под конкретную систему. Кроме того, в каждой операционной системе имеется свой собственный менеджером пакетов - специальная утилита для добавления и удаления пакетов из системы. Например, в Linux системах, основанных на Debian, используется менеджер пакетов Advanced Package Tool (APT), а в системах Fedora Linux используется менеджер пакетов RPM. Менеджер пакетов исключает частичную и неправильную установку и "удаление" за счет того, что пакет автоматически добавляет и удаляет файлы. С помощью менеджера пакетов также поддерживается работа с манифестом — специальным описанием всех пакетов, установленных в системе, что позволяет знать о всех ранее установленных пакетах и особенностях, имеющихся в системе.

Для демонстрационных целей мы рассмотрим сетевую утилиту wget, которая загружает файлы из интернета. Утилита wget является полезной, но она обычно не входит в состав стандартных дистрибутивов (в дистрибутивах часто используется ее аналог - curl). [1]


1. Сборка утилиты wget

Загружаем последнюю версию исходного кода утилиты wget с сайта. Остальные шаги выполняются в командной строке так, как это показано в Скрине 1.

Скрин 1

В прошлом пакеты создавались только пользователем root, т.е. суперпользователем, поскольку только root был единственным пользователем, имеющим доступ к репозитарию с системным кодом. С помощью команды sudo su -  выходим под root, в следующей строке вводим пароль.

Команда ./configure опрашивает систему и устанавливает настройки компиляции в соответствие с обнаруженным аппаратным и программным обеспечением.

Команда make компилирует код, а команда sudo make install устанавливает код в системные директории. По умолчанию используются директории, находящиеся в корне /usr/local.

Для того, чтобы сделать так, чтобы этот процесс был выполнен менеджером пакетов RPM, вы помещаете исходный код в репозитарий и пишите конфигурационный файл, в котором указывается, где можно найти исходный код, который будет компилироваться, как собирать этот код и как его устанавливать. Конфигурационный файл, называемый файлом спецификаций, подается на вход утилиты rpmbuild. Файл спецификаций и двоичные файлы упаковываются утилитой rpmbuild в RPM пакет. Когда другой пользователь загружает ваш RPM пакет, утилита rpm читает файл спецификаций файлов и устанавливает пакет в соответствие с предварительно записанной инструкцией.

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

Для того, чтобы создать пакет RPM, нужно:

  •  Создать иерархию директориев в соответствие со спецификациями утилиты rpmbuild.
  • Поместить исходный код и дополнительные файлы в надлежащие места в этой иерархии.
  • Создать файл спецификаций.
  • Собрать пакет RPM. Дополнительно собрать пакет RPM исходных кодов (source RPM) для того, чтобы разрешить другим пользоваться исходным кодом.

Сначала создадим эту иерархию. В домашнем директории, home/mywget, создадим следующие пять поддиректорий:

  • BUILD. Директорий BUILD используется для компилирования программного обеспечения.
  •  RPMS. В директории RPMS содержится бинарный пакет RPM, который создается утилитой rpmbuild.
  • SOURCES. Директорий SOURCES используется для исходных кодов.
  • SPECS. В директории SPECS находится ваш файл спецификаций или несколько файлов спецификаций — по одному для каждого пакета RPM, который вы хотите собрать.
  • SRPMS. В директории SRPMS хранится пакет RPM с исходными кодами, который был создан в процессе сборки.

Нам потребуется исходный код в директории SOURCES и файл спецификаций в директории SPECS.

Скопируйте ваш ваш исходный код, в идеале он должен иметь вид tar архива (tarball), в директорий SOURCES так, как это показано в листинге 2. Мы переименовали архив так, что в его имени указан номер версии приложения. В соответствие с общепринятым соглашением имя должно иметь вид пакет-версия.tar.gz. В случае с утилитой wget, выполняем следующее:

Скрин 2

Затем, создаем файл спецификаций. Файл спецификаций является ничем иным, как обычным текстовым файлом, имеющим специальный синтаксис. В Скрине 3 показан файл спецификаций.

Скрин 3

В строках с 1 по 5 определен набор удобных переменных, которые используются в остальной части файла. В строках с 7 по 15 задается ряд требуемых параметров, для этого используется формат параметр:значение. Параметр names  понятен сам по себе, но параметр BuildRoot поясним для того, чтобы отличать его от директория BUILD, который у нас уже создан. Если wget, в конечном счете устанавливается в /usr/local/bin/wget и в другие поддиректории в /usr/local, такие как /usr/local/man для документации,BuildRoot служит в качестве указателя на /usr/local в процессе сборки пакета RPM.  Нужно всегда устанавливать значение BuildRoot в файле спецификаций.

Следующий раздел начинается с %description. Сюда мы помещаем краткое, но ясное описание программы. Эта будет выдаваться всякий раз, когда мы будем запускать команду rpm -qi для того, чтобы сделать запрос к базе данных RPM.

Далее идут разделы %prep, %build и %install. В каждом разделе создается шелл скрипт, который добавляется в пакет RPM и последовательно исполняется как часть процесса установки. В разделе %prep указываются операции по подготовке исходного кода, такие, как распаковка tar архива. Указанная здесь команда %setup -q является операцией, которая автоматически распаковывает tar архив с именем, указанным в переменной Source.

Инструкции в разделе %build будут выглядеть аналогичным образом. Они идентичны тем пошаговым операциям, которые делали при ручном конфигурировании и сборке пакета. Раздел %install также идентичен.

В разделе %files перечисляются файлы, которые должны быть добавлены в пакет RPM и дополнительно можно задать права доступа, а также указать другую информацию. Внутри раздела %files,можно использовать команду %defattr, с помощью которой задаются права доступа, владелец и группа, используемые по умолчанию для файлов, входящих с состав пакета RPM; в нашем примере команда %defattr(-,root,root) устанавливает для всех файлов владельца root независимо от того, кто был владельцем, когда они были взяты из системы при сборке пакета RPM.Также если вы в разделе %files указать имя директория, то в пакет RPM будут включены все файлы, содержащиеся в этом каталоге [2].

3. Собираем пакет RPM

Теперь, когда ваши файлы находятся на должном месте и определен файл спецификации, вы готовы собрать файл RPM. Для того, чтобы его собрать, используйте утилиту rpmbuild с надлежащим образом указанными параметрами: rpmbuild -ba SRECS/wget.spec

Скрин 4

В указанной выше команде используется файл спецификаций для того, чтобы собрать пакет RPM с исходными кодами, -ba ("build all" — собрать все) вместо -bb(бинарный пакет).

Утилита rpmbuild выполняет следующие операции:

  • Читает и анализирует файл спецификаций wget.spec.
  •  Выполняет операции раздела %prep — распаковывает исходный код во временный директорий. В нашем случае временный директорий - BUILD.
  •  Выполняет операции раздела %build— компилирует исходный код.
  •  Выполняет операции раздела %install— устанавливает код в директории на машине, где собирается пакет.
  •  Читает список файлов из раздела %files, находит их и создает бинарный пакет RPM (и пакет RPM с исходными кодами, если это выбрано).

Если проверить  директорий home/mywget, то теперь в нем находится новый директорий с именем wget-1.12-root. Этот директорий выполняет роль прокси для целевого директория.

Скрин 5

Также находится новый директорий с именем RPMS/i386, в котором должен находиться пакет RPM, имеющий имя wget-1.12-1.i386.rpm. В имени отражается, что это версия 1.12 утилиты wget, предназначенной для работы на процессоре i386.

Скрин 6

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

sudo rpm -i wget-1.12-1.i386.rpm


Заключение

 Наше описание лишь малое упоминаете того, что можно делать с помощью RPM. Хотя эта технология наиболее часто используется для установки программного обеспечения и сопутствующих файлов, вы можете упаковывать все, что угодно — от системных скриптов и исходного кода и до документации. И вы можете использовать технологию RPM для пропатчивания исходного кода, а также восстановления и переустановки программ. Формат, в котором распространяются пакеты RPM, поддерживается во многих системах Linux и он является основным, используемым для установки бинарных программ на системах Red Hat, Fedora и некоторых других.


Список литературы

  1.  Баурн С. Операционная система UNIX. -М.: Мир, 1986. -462 с.
  2.  URL: http://www.ibm.com/developerworks/library/l-rpm1/

4


 

А также другие работы, которые могут Вас заинтересовать

40104. Синтез алгоритмов управления нестабильным объектом 449.5 KB
  Для достижения цели проекта необходимо решить следующие задачи: 1 составить нелинейную математическую модель объекта и провести анализ методом компьютерного моделирования; 2 провести анализ устойчивости управляемости и наблюдаемости объекта по линеаризованной модели; 3 синтезировать регулятор состояния методом размещения собственных значений [2]; 4 синтезировать наблюдатель состояний и динамический регулятор; 5 оценить размеры области притяжения положения равновесия нелинейной системы с непрерывным регулятором; 6 построить...
40105. Двойственный симплекс-метод, основные принципы, алгоритм. Случаи, когда удобно применять двойственный симплексный метод 178 KB
  ДСМ ДСМ как и СМ называется методом последовательного улучшения оценок и применяется для решения задачи: исходным пунктом этого метода является выбор такого базиса . Таким образом основные принципы ДСМ заключаются в том чтобы: каждый раз выполнялось 2 значения целевой функции убывало. Для этого воспользуемся 2м принципом ДСМ. Чтобы обеспечить это надо выбрать так что: 6 Алгоритм ДСМ формулируется так: Выбираем базис и строим I симплекстаблицу Если все то решение оптимально иначе переход к 3.
40106. Задача максимизации прибыли при заданных ценах на продукцию и ресурсы. Анализ оптимальных решений с помощью множителей Лагранжа 34.5 KB
  Требуется решить задачу максимизации прибыли при заданных P0 и p: mx P0fx p x 1 x  0 2 Исследование задачи будем проводить с помощью функции Лагранжа: балансовое соотношение В оптимальном плане x для любых используемых ресурсов отношение цены к предельной эффективности постоянно. Для этих же ресурсов показали что соотношение предельных эффективностей равно соотношению цен. Наибольшая отдача будет от тех ресурсов которые имеют самую большую предельную эффективность в текущей точке.
40107. Теорема о необходимых и достаточных условиях оптимальности смешанных стратегий 167.5 KB
  Пусть игра определена матрицей и ценой игры V. оптимальная стратегия 1 игрока х является первой координатой некоторой седловой точки фции выигрыша Мх у. СЛЕДСТВИЕ: Если для смешанных стратегий и числа V одновременно выполняются 1 и 2 то будут оптимальными стратегиями игроков а V цена игры. Докво: умножим 1 на y и просуммируем: умножим 2 на x и просуммируем: Получаем Тогда по следствию Т о седловой точке точка седловая и ...
40108. Функция выигрыша в матричных играх без седловой точки. Смешанные и оптимальные смешанные стратегии. Метод сведения решения матричных игр к задаче линейного программирования 119.5 KB
  Функция выигрыша в матричных играх без седловой точки. Парная игра с нулевой суммой задается формально матрицей игры матрицей А = {ij} элементы которой определяют выигрыш первого игрока и проигрыш второго если первый игрок выберет iю стратегию а второй jю стратегию. Пара i0j0 называется седловой точкой матрицы решением игры если выполняются условия: mx по столбцу I игрок min по строке II игрок Значение функции выигрыша в седловой точке называется ценой игры. Тогда выигрыш первого игрока при условии что он выбирает...
40109. Методы штрафных функций и методы центров в выпуклом программировании 90 KB
  Методы штрафных функций и методы центров в выпуклом программировании Метод штрафных функций Постановка задачи Даны непрерывно дифференцируемые целевая функция fx = fx1 xn и функции ограничений gjx = 0 j = 1 m; gjx 0 j = m1 p определяющие множество допустимых решений D. Требуется найти локальный минимум целевой функции на множестве D т. Стратегия поиска Идея метода заключается в сведении задачи на условный минимум к решению последовательности задач поиска безусловного минимума вспомогательной функции: Fx Ck =...
40110. Методы наискорейшего и координатного спуска для минимизации выпуклой функции без ограничений. Их алгоритмы и геометрическая интерпретация 94.5 KB
  Все методы спуска решения задачи безусловной минимизации различаются либо выбором направления спуска, либо способом движения вдоль направления спуска. Решается задача минимизации функции f(x) на всём пространстве Rn. Методы спуска состоят в следующей процедуре построения последовательност
40111. Субградиент как обобщение понятия градиента. Субградиент для функции максимума. Субградиентный метод и его геометрическая интерпретация в R2 141 KB
  Субградиент для функции максимума. Градиентом дифференцируемой функции fx в точке называется вектор частных производных.x0 y0 а значение lim называется частной производной функции f по x в т. Вектор называется субградиентом опорным вектором функции fx в точке если выполняется: Таких с множество но это множество ограничено и замкнуто.
40112. Типичные производственные функции с несколькими ресурсами: линейная ПФ, степенная ПФ, ПФ с постоянными пропорциями. Коэффициенты эффективности использования ресурсов для этих типов функций 162 KB
  Коэффициенты эффективности использования ресурсов для этих типов функций. Производственные возможности н х в любой момент времени определяются 2мя группами факторов: технологические условия производства которые выражают зависимости между затратами разных ресурсов и выпуском продукции объем и качество используемых ресурсов fx производственная функция зависимость результата производства объема выпуска продукции от затрат ресурсов. X = х1 хm вектор затрат ресурсов. ПФ характеризует максимально возможный выпуск продукции при...