44933

Два способа установки ПО

Доклад

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

В первом случае пакет ПО обычно поставляется в виде trgz архива во втором случае в виде rpm пакета но это не обязательно исполняемые модули также могут распространяться в виде trgz архива. Проще всего установить ПО представленное в виде rpm пакета содержащего исполняемые файлы. Программа rpm Название этой программы или команды является аббревиатурой от Redht Pckge Mnger. Программа rpm в некотором смысле аналогична программам типа setup wizrd для MS Windows.

Русский

2013-11-14

22.78 KB

0 чел.

Два способа установки ПО

Как правило, существует две основных формы распространения ПО: в исходных текстах и в виде исполняемых модулей. В первом случае пакет ПО обычно поставляется в виде tar-gz архива, во втором случае - в виде rpm -пакета (но это не обязательно, исполняемые модули также могут распространяться в виде tar-gz -архива).

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

Программа rpm

Название этой программы (или команды) является аббревиатурой от Redhat Package Manager. Программа rpm в некотором смысле аналогична программам типа setup wizard для MS Windows.

Rpm -пакеты - это специальным образом подготовленные архивы, предназначенные для обработки программой rpm. Название rpm -пакетов оканчивается на суффикс .rpm, например, xzip-180-1.i386.rpm или xzip-180-1.src.rpm. Как видите, перед суффиксом .rpm стоит еще один суффикс. Если это .i386, .i686 или .i586, то в пакете находятся исполняемые файлы (оптимизированные для соответствующего типа процессора), а если этот суффикс .src, - то в пакете исходные тексты, которые после установки еще надо скомпилировать. Обычно rpm -пакеты с исполняемыми файлами располагаются в каталогах с названием RPMS, а rpm -пакеты с исходными текстами - в подкаталогах SRPMS. Часто встречаются также rpm -пакеты с суффиксом .noarch.rpm, содержащие файлы, которые просто без всякой дополнительной обработки устанавливаются в соответствующие каталоги (например, файлы страниц интерактивного руководства man ).

Для установки пакета из архива достаточно перейти в каталог, где находится архив, и дать команду

[root]# rpm -i имя_rpm-архива

Если у вас была установлена предыдущая версия пакета, то в простейшем случае надо дать команду следующего формата:

[root]# rpm -U --force имя_rpm-архива

Здесь параметр -U говорит программе, что надо произвести обновление (upgrade) пакета, а опция --force требует безусловно (и без лишних вопросов) обновить все входящие в пакет файлы. Заметьте, что это очень сильное требование, и в некоторых случаях может быть лучше сохранить какие-то (например, конфигурационные) файлы от предыдущей версии. Если установка проходит нормально, и никаких дополнительных сообщений не появляется, то после завершения работы программы (после появления приглашения оболочки) вы можете пользоваться вновь установленным пакетом.

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

[root]# rpm -qpl имя_rpm-архива

А для получения информации о том, для чего служит ПО, содержащееся в rpm -пакете, используйте команду

[root]# rpm -qpi имя_rpm-архива

Дело в том, что файлы RPM кроме собственно архива файлов содержат информацию о пакете, включая имя, версию и краткое описание. С помощью той же программы rpm вы можете просмотреть эту дополнительную информацию. Например, для пакета glib-1.0.6-3.i386.rpm вывод команды

[root]# rpm -qpi glib-1.0.6-3.i386.rpm

будет примерно таким:

Name : glib Relocations: (not relocateable)

Version : 1.0.6 Vendor: Red Hat Software

Release : 3 Build Date: Суб 10 Окт 1998 04:49:03

Install date: (not installed)

Build Host : porky.redhat.com

Group : Libraries Source RPM: glib-1.0.6-3.i386.rpm

Size : 55305

Packager : Red Hat Software <bug@redhat.com>

Summary : Handy library of utility functions

Description : Handy library of utility functions. Development libs and headers are in gtk+-devel.

Если дать команду:

[root]# rpm -qpl glib-1.0.6-3.i386.rpm

будет выдан список входящих в пакет файлов с указанием того, куда они будут установлены:

/usr/lib/libglib.so.1

/usr/lib/libglib.so.1.0.6

RPM также предоставляет мощную систему запросов по установленным в системе пакетам. По команде

[root]# rpm -qа

вы получите перечень всех установленных в системе пакетов (перечень будет очень большим, так что лучше сразу направить вывод в фильтр more или в файл, который потом просматривать с помощью less или встроенной программы просмотра из оболочки Midnight Commander ). Вы можете искать информацию об отдельном пакете или об отдельных файлах. Например, вы можете легко найти, какому пакету принадлежит файл и откуда появился. Команда

[root]# rpm -qf /etc/bashrc

сообщит:

bash-1.14.7-16

Если вы беспокоитесь о том, что случайно удалили важный файл из установленного пакета, просто проверьте это:

[root]# rpm -Va

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

Как видите, rpm это очень полезная утилита, и у нее имеется много разных опций. Выше приведено только несколько примеров. Всего rpm имеет 16 основных режимов работы, которые можно объединить в 6 групп (после двоеточия приводится формат команды для соответствующего режима).

Запросы

  1.  Запрос: rpm [--query] [queryoptions] 
  2.  Показать метки запросов (Querytags): rpm [--querytags]

Установка и поддержка установленных пакетов

  1.  Установка: rpm [--install] [installoptions] [package_file]+ 
  2.  Обновление: rpm [--freshen|-F] [installoptions] [package_file]+ 
  3.  Деинсталляция: rpm [--uninstall|-e] [uninstalloptions] [package]+ 
  4.  Проверка: rpm [--verify|-V] [verifyoptions] [package]+

Подписи (пакеты подписываются электронной цифровой подписью в формате PGP, с целью обеспечения неизменяемости и сохранения авторства пакетов).

  1.  Проверка подписи: rpm [--verify|-V] [verifyoptions] [package]+ 
  2.  Переподписывание: rpm [--resign] [package_file]+ 
  3.  Добавление подписи: rpm [--addsign] [package_file]+

Работа с базой

  1.  Инициализация базы: rpm -i [--initdb] 
  2.  Обновление базы (Rebuild Database): rpm -i [--rebuilddb]

Создание rpm-пакетов

  1.  Создать пакет: rpm [-b|t] [package_spec]+ 
  2.  Перекомпилировать пакет: rpm [--rebuild] [sourcerpm]+ 
  3.  Скомпилировать пакет из tar -архива: rpm [--tarbuild] [tarredsource]+

Разное

  1.  Показать конфигурацию программы rpm: rpm [--showrc] 
  2.  Задать пользователей: rpm [--setperms] [package]+ 
  3.  Задать группы: rpm [--setgids] [package]+

Подробное описание всех возможностей команды rpm можно найти в RPM-HOWTO, на страницах man и info.

Примечание

Как и другие программы для Linux, программа rpm постоянно развивается и совершенствуется. При этом при замене версии этой программы могут возникнуть трудности с установкой пакетов, созданных в предыдущих версиях. Так что надо использовать пакеты, соответствующие установленной у вас версии программы.

В составе графической среды KDE оболочка kpackage является аналогом rpm. Вы можете запустить ее либо из командной строки, либо из основного меню KDE.

Компиляция ПО из исходных текстов

Если rpm-пакеты с необходимым вам программным обеспечением нужно еще поискать (и не всегда можно найти), то tar-gz -архив любого ПО для Linux найдется в Интернете непременно. В некоторых случаях такие архивы содержат исполняемые модули приложений. Тогда установка приложения лишь немного сложнее, чем в случае установки из rpm -пакета: необходимо просто развернуть архив с помощью программ gunzip и tar, перейти в созданный каталог и можно уже запускать полученное приложение. Но чаще всего приложения поставляются в исходных текстах, т. е. в виде программы на языке Си. Установить их в этом случае немного сложнее, хотя и тут нет ничего невозможного даже для начинающего пользователя. Давайте рассмотрим, как это делается.

Необходимые сведения о программировании на языке Си

Многие приложения для Linux распространяются в виде текстов на С /С++. Для установки и запуска такого приложения на исполнение необходимо предварительно скомпилировать. Для выполнения процедур компиляции обычно используется программа gcc (хотя существуют и некоторые альтернативные разработки).

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

Инсталляция пакетов ПО из исходных текстов

Для установки таких пакетов вы, естественно, должны иметь в своей системе утилиты gcc и make.

Непосредственно процесс инсталляции пакета состоит из следующих шагов:

  1.  Перейти (с помощью команды cd ) в каталог, содержащий исходные коды устанавливаемого пакета.
  2.  Выполнить команду ./configure, которая осуществляет конфигурирование пакета в соответствии с вашей системой. Процесс выполнения этой команды занимает довольно длительное время, причем команда выдает на экран сообщения о том, какие именно особенности системы испытываются.
  3.  Выполнить команду make, для того, чтобы скомпилировать пакет.
  4.  После этого можно выполнить (этот шаг не является обязательным) команду make check, которая вызывает запуск процедур самотестирования, которые поставляются с пакетом.
  5.  Выполнить команду make install для установки программ, а также файлов данных и документации.
  6.  Заключительный этап состоит в выполнении команды make clean, которая удаляет промежуточные объектные и двоичные файлы из каталога с исходными кодами. Для удаления временных файлов, которые создала команда configure (после чего пакет можно компилировать для другого типа компьютеров), надо выполнить команду make distclean.

В большинстве случаев выполнение этой последовательности команд достаточно для установки нового пакета.

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


 

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

18531. Розв’язування звичайних диференціальних рівнянь в системі MATHCAD 391.5 KB
  Розвязування звичайних диференціальних рівнянь в системі MATHCAD Розвязування звичайних диференціальних рівнянь в системі MATHCAD. Методичні матеріали до лабораторної роботи № 2 з курсу: €œМатематичне моделювання в САПР€ для студенті
18532. Розв’язування диференціальних рівнянь з частинними похідними в системі MATHCAD 414.5 KB
  Розвязування диференціальних рівнянь з частинними похідними Розвязування диференціальних рівнянь з частинними похідними в системі MATHCAD. Методичні матеріали до лабораторної роботи № 3 з курсу: €œМатематичне моделювання в САПР€ д
18533. Символьные последовательности 18.96 KB
  Лабораторная работа № 3. Тема Символьные последовательности Если для решения задачи достаточно просмотреть исходный текст один раз то обычно текст вводится и обрабатывается посимвольно и не хранится целиком в памяти в виде массива. В программе используется перем
18534. Одномерные массивы. Упорядоченная совокупность однотипных данных 20.3 KB
  Лабораторная работа № 4. Одномерные массивы Массив используется когда дана упорядоченная совокупность однотипных данных чисел символов строк символов и т.д. с ограниченным числом элементов. Примеры описаний массивов: char text[10];/ массив из 10 символов/ int a[50];/ мас...
18535. Двумерные массивы (матрицы) 29.09 KB
  Лабораторная работа № 5. Двумерные массивы матрицы Массивы в С могут быть не только одномерными т.е. когда данные визуально выстроены в одну линию. Массивы также могут быть и двумерными трехмерными и так далее. С компиляторы поддерживают как минимум 12ти мерные масси...
18536. Подпрограммы (функции) 197.24 KB
  Лабораторная работа № 6 Функции Вы уже знакомы с некоторыми библиотечными функциями такими как printf scanf getchar putchar gets sin cos ... . Теперь нужно знать как создавать свои собственные функции. Функция это самостоятельная единица программы предназначенн...
18537. Символьные строки и функции обработки строк 223.01 KB
  Лабораторная работа № 7 Символьные строки и функции обработки строк Строка символов это последовательность символов произвольной длины завершающаяся нульсимволом все биты в байте нулевые. Строковые константы записываются в кавычках например: Как Ва...
18538. Программирование простейших циклов на языке Си. Работа в системе Turbo С (версия 2.0) 597.78 KB
  Лабораторная работа № 1 Программирование простейших циклов на языке Си. Работа в системе Turbo С версия 2.0 Структура программы Любая программа на языке Си состоит из одной или более функций являющихся основными модулями программы. Функция с которой начи...
18539. Обработка числовых последовательностей 77 KB
  Лабораторная работа № 2 Обработка числовых последовательностей Существует круг задач в которых необходимо както обработать заданную числовую последовательность причем для получения результата достаточно просмотреть последовательность один раз. Например чт