Установка и обновление программны х пакетов Предыдущий раздел




страница1/4
Дата11.11.2016
Размер2.45 Mb.
Просмотров324
Скачиваний0
ТипГлава
  1   2   3   4
Глава 10. Установка и обновление программных пакетов Предыдущий раздел Оглавление Следующий раздел. Два способа установки ПО
Необходимость в установке новых программных пакетов под LINUX возникает в двухосновных случаях когда появляется новая версия одного из уже установленных у вас пакетов;

когда возникает желание или необходимость использовать какой­то пакет, еще неустановленный в системе.
Во втором случае это может быть один из пакетов, имеющихся на вашем установочном диске, ноне установленный в процессе инсталляции. Однако чаще всего новое ПО выбудете находить в Интернете, тем более, что значительная часть этого ПО бесплатна. Как бы тони было, но рано или поздно вы все равно окажетесь перед необходимостью установить новый пакет. Для дистрибутивов, основанных на Red Hat Linux, существует две основных формы распространения ПО в исходных текстах ив виде исполняемых модулей. В первом случае пакет ПО обычно поставляется в виде tar­gz архива, во втором случаев виде пакета (но это необязательно, исполняемые модули также могут распространяться в виде архива. Проще всего установить ПО, представленное в виде пакета, содержащего исполняемые файлы, этот способ и рассмотрим первым. Отметим только, что для инсталляции новых пакетов вы должны войти в систему как пользователь root
10.2. Программа Название этой программы (или команды) является аббревиатурой от Redhat Package Manager. Такая расшифровка дается в большинстве книги руководств пои кажется мне более правильной и логичной, хотя в главе 6 "The Official Red Hat Linux Reference Guide" говорится
"The RPM Package Manager (RPM), is an open packaging system available for any­one to use, and works on Red Hat Linux as well as other Linux and UNIX systems", те. предлагается рекурсивная расшифровка названия RPM, подобная расшифровке GNU — GNU is Not Unix). Программа rpm в некотором смысле аналогична программам типа setup wizard для MS Windows. Преимуществом использования этой программы по сравнению с установкой tar gz архивов является то, что она автоматически проделает все необходимые действия по установке ПО создаст необходимые каталоги, распределит по ним файлы, создаст ссылки. Кроме того, она может быть использована не только для установки нового пакета, но и для обновления версий ПО, получения перечней установленного ПО и проверки установки, а также для деинсталляции отдельных пакетов (например, если после периода пробной работы с программой вы решили отказаться от ее дальнейшего использования. С помощью той же программы rpm можно самому
создать пакет формата rpm, однако для начинающих лучше, наверное, этим не заниматься, а воспользоваться готовыми пакетами. пакеты — это специальным образом подготовленные архивы, предназначенные для обработки программой rpm
. Название пакетов оканчивается на суффикс .rpm, например, xzip­180­1.i386.rpm или xzip­180­1.src.rpm. Как видите, перед суффиксом .rpm стоит еще один суффикс. Если это .i386, .i686 или .i586, тов пакете находятся исполняемые файлы оптимизированные для соответствующего типа процессора, а если этот суффикс .src, — тов пакете исходные тексты, которые после установки еще надо скомпилировать. Обычно как на установочных компакт­дисках, таки в интернет­каталогах пакеты с исполняемыми файлами располагаются в каталогах с названием RPMS, а пакеты с исходными текстами — в подкаталогах SRPMS. Часто встречаются также пакеты с суффиксом .noarch.rpm, содержащие файлы, которые просто без всякой дополнительной обработки устанавливаются в соответствующие каталоги (например, файлы страниц интерактивного руководства man). И, наконец, если пакет рассчитан на версию Linux, предназначенную для другой аппаратной платформы (AMD, DEC Alpha, SUN Sparc, MIPS, PowerPC), это тоже будет отображено в имени пакета вместо i386 в суффиксе будет стоять, соответственно, athlon, alpha, sparc, mips или ppc. В Интернете пакеты можно найти на различных серверах. По моему опыту наиболее удобным сервером в Интернете для поиска архивов является сервер http://rufus.w3.org недаром он имеет другое имя http://rpmfind.net). На нем установлена поисковая система, которая позволяет упорядочивать список пакетов наиболее удобным для вас способом по именам пакетов;

по дистрибутивам;

по группам приложений;

по датам;

по поставщикам (производителям) ПО.
Общий объем архива пакетов на этом сервере составляет более 66 Гигабайт. Очень богатые архивы хранят также два сервера в России ftp://ftp.chg.ru/pub/Linux и ftp://ftp.nc.orc.ru/. Необходимо только заметить, что если для перекачки пакетов из Интернета вы используете компьютер, работающий под Windows 95, то все имена пакетов у вас будут, скорее всего, искажены. Дело в том, что Windows "не любит" имена, в которых несколько точек (например, glib­1.0.6­3.i386.rpm) и заменит "лишние, по его мнению, точки на знаки подчеркивания — glib­
1_0_6­3_i386.rpm. Так что после получения пакета (при переносе его на ПК с ОС Linux) желательно эти "исправления" устранить, вернувшись к исходным именам UNIX. Правда, делать это необязательно, поскольку внутри пакет все равно правильно идентифицирован, но для единообразия и облегчения поиска файлов все же целесообразно. Итак, вы нашли и скачали архив с исполняемой версией нужного вам пакета. Если выставите совершенно новый пакету вас не было на компьютере предыдущих версий этого ПО, то
для установки пакета из этого архива достаточно перейти в тот каталог, где находится архив, и дать команду (для самых нетерпеливых не спешите выполнять эту рекомендацию, прочитайте еще хотя бы пару абзацев)
[root]# rpm -i
_rpm- имя архива
Если у вас была установлена предыдущая версия пакета, тов простейшем случае надо дать команду следующего формата
[root]# rpm -U --force
_rpm- имя архива
Здесь параметр
-U
говорит программе, что надо произвести обновление (upgrade) пакета, а опция
--force требует безусловно (и без лишних вопросов) обновить все входящие в пакет файлы. Заметьте, что это очень сильное требование, ив некоторых случаях может быть лучше сохранить какие­то (например, конфигурационные) файлы от предыдущей версии. Если установка проходит нормально, и никаких дополнительных сообщений не появляется, то после завершения работы программы (после появления приглашения оболочки) вы можете пользоваться вновь установленным пакетом. К сожалению, не всегда все так просто. Приведу конкретный пример. У меня был установлен
RedHat Linux версии 5.2, причем программа Midnight Commander (
mc
) была версии 4.1.36. На сервере я увидел версию 4.5.30 этой программы (пакет mc­4.5.30­12.i386.rpm) и, естественно, решил ее поставить. Однако оказалось, что для этого необходимо установить еще 4 других пакета, о чем rpm мне и сообщила
: ошибка неудовлетворенные зависимости redhat-logos нужен для libglib-1.2.so.0 нужен для libc.so.6(GLIBC_2.1) нужен для libc.so.6(GLIBC_2.0) нужен для
Это неудивительно, если вы вспомните, что и при первоначальной установке Linux программа инсталляции тоже проверяла взаимозависимости пакетов и предлагала установить недостающие. Однако в случае инсталляции с CD­ROM все необходимые пакеты находятся на том же диске, а здесь мне пришлось вначале поискать нужные пакеты. Два пакета (redhat­logos­1.0.5­1.noarch.rpm и glibc­2.1.1­6.i386.rpm) я нашел без труда, после чего rpm перестала просить и GLIBC_2.0. А вот с libglib.so.1 вышло сложнее. Во­первых, я никак не мог найти пакета с таким названием. Как оказалось, такого пакета и не существует, файл libglib.so.1 входит в состав пакета glib­1.0.6­
3.i386.rpm. Программа rpm позволяет выяснить, какие файлы установит тот или иной пакет. Для этого надо дать следующую команду (только учтите, что текущим должен быть каталог, содержащий интересующий вас пакет
[root]# rpm -qpl
_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
Summary : Handy library of utility functions
Description : Handy library of utility functions. Development libs and headers are in gtk+- Если дать команду
[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 -а вы получите перечень всех установленных в системе пакетов (перечень будет очень большим, так что лучше сразу направить вывод в фильтр more или в файл, который потом просматривать с помощью less или встроенной программы просмотра из оболочки Midnight Commander). Вы можете искать информацию об отдельном пакете или об отдельных файлах. Например, вы можете легко найти, какому пакету принадлежит файл и откуда появился. Команда
[root]# rpm -qf /etc/bashrc
сообщит Если вы беспокоитесь о том, что случайно удалили важный файл из установленного пакета, просто проверьте это
[root]# rpm -Выбудете оповещены об любых аномалиях. Потом можно переустановить пакет, если это необходимо. Любые конфигурационные файлы будут сохранены. Как видите, rpm это очень полезная утилита, и у нее имеется много разных опций. Выше приведено только несколько примеров. Всего rpm имеет 16 основных режимов работы, которые можно объединить в 6 групп (после двоеточия приводится формат команды для соответствующего режима. Запросы. Запрос rpm [--query] Показать метки запросов (Querytags): rpm Установка и поддержка установленных пакетов. Установка rpm [--install] [installoptions] Обновление rpm [--freshen|-F] [installoptions] [package_file]+

Деинсталляция: rpm [--uninstall|-e] [uninstalloptions] Проверка rpm [--verify|-V] [verifyoptions] Подписи (пакеты подписываются электронной цифровой подписью в формате PGP, с целью обеспечения неизменяемости и сохранения авторства пакетов. Проверка подписи rpm [--verify|-V] [verifyoptions] [package]+

Переподписывание: rpm [--resign] Добавление подписи rpm [--addsign] Работа с базой . Инициализация базы rpm -i Обновление базы (Rebuild Database): rpm -i Создание пакетов. Создать пакет rpm [-b|t] [package_spec]+

Перекомпилировать пакет rpm [--rebuild] Скомпилировать пакет из архива rpm [--tarbuild] [tarredsource]+
Разное. Показать конфигурацию программы rpm
: rpm Задать пользователей rpm [--setperms] Задать группы rpm [--setgids] Подробное описание всех возможностей команды rpm выходит за рамки нашей книги Его вы можете найти в
RPM­HOWTO
, на страницах man и info. Кроме того, большой раздело программе rpm имеется в книге
[П1.3]
П рим ечание Как и другие программы для Linux, программа rpm постоянно развивается и совершенствуется. При этом при замене версии этой программы могут возникнуть трудности с установкой пакетов, созданных в предыдущих версиях. Так было, например, при переходе с третьей на четвертую версию rpm. Так что надо использовать пакеты, соответствующие установленной у вас версии программы.
Приведенное выше описание программы rpm предполагает, что она запускается с консоли или в эмуляторе терминала. Между тем в разных дистрибутивах имеются графические оболочки для управления пакетами. В составе графической среды KDE такая оболочка называется kpackage
. Вы можете запустить ее либо из командной строки, либо из основного меню KDE. Однако, намой взгляд, она не дает никаких преимуществ по сравнению с работой из командной строки. Кроме того, она описана в книге А.Федорчука "Офис, графика, Web в Linux" П, так что я не буду тратить время на ее рассмотрение. Компиляция ПО из исходных текстов
Если пакеты с необходимым вам программным обеспечением нужно еще поискать (и не всегда можно найти, то архив любого ПО для Linux найдется в Интернете непременно. В некоторых случаях такие архивы содержат исполняемые модули приложений. Тогда установка приложения лишь немного сложнее, чем в случае установки из пакета необходимо просто развернуть архив с помощью программ gunzip и tar
, перейти в созданный каталоги можно уже запускать полученное приложение. Но чаще всего приложения поставляются в исходных текстах, те. в виде программы на языке Си. Установить их в этом случае немного сложнее, хотя и тут нет ничего невозможного даже для начинающего пользователя. Давайте рассмотрим, как это делается.
10.3.1. Необходимые сведения о программировании на языке Си
Начать стоит с того, что операционная система UNIX родилась на свет одновременно с языком программирования C (Си. Более того, язык C был создан специально для разработки этой ОС, значительная часть UNIX была написана на языке С. ОС Linux тоже написана на Си. Поэтому, а также в соответствии с принципом свободного распространения исходных кодов, многие приложения для Linux распространяются в виде текстов на С (а в последнее время — и на С.
Естественно, что для установки и запуска такого приложения на исполнение, его необходимо предварительно скомпилировать. Для выполнения процедур компиляции обычно используется программа gcc
(хотя существуют и некоторые альтернативные разработки. Примечание Изначально аббревиатура GCC имела смысл GNU C Compiler, нов апреле 1999 года сообщество GNU решило взять на себя более сложную миссию и начать создание компиляторов для новых языков с новыми методами оптимизации, поддержкой новых платформ, улучшенных библиотеки других изменений
(http://gcc.gnu.org/gccmission.html). Поэтому сегодня GCC расшифровывается как GNU
Compiler Collection (коллекция компиляторов GNU) и содержит в себе компиляторы для языков C, C++, Objective C, Chill, Fortran, Ada и Java, а также библиотеки для этих языков
(libstdc++, libgcj, ...). компилятор с языка С gcc, содержит в себе 4 основных компонента, соответствующие четырем этапам преобразования исходного кода в исполняемую программу. Первый компонент — это препроцессор, который модифицирует исходный код программы перед компиляцией в соответствии с командами препроцессора, содержащимися в С­программе. В соответствии с этими командами выполняются простые подстановки текста. Второй — собственно компилятор, который обрабатывает исходный код и преобразует его в код на языке ассемблера. Третий компонент — ассемблер, который генерирует объектный код. И, наконец, четвертый компонент — компоновщик, который собирает исполняемый файл из файлов объектного кода. Дело в том, что большие программы обычно пишутся по частям, в виде множества отдельных файлов, содержащих исходный код соответствующей части. Компилятор обрабатывает каждый такой файл отдельно и создает отдельные объектные модули (файлы таких модулей обычно имеют расширение o). Создание единой исполняемой программы из таких модулей и является задачей компоновщика. При таком подходе, если в какой­то модуль программист вносит исправление, нет необходимости заново компилировать всю программу достаточно откомпилировать исправленный модуль и заново запустить компоновщик. Для выполнения стандартных операций программист может использовать функции из стандартных библиотек. Самый характерный пример — это библиотека libc, которая содержит функции, выполняющие такие задачи, как управление памятью и операции ввода­вывода. Программисты могут создать свои собственные библиотеки и использовать их при написании новых программ. Библиотеки бывают статическими, разделяемыми и динамическими. Статическая библиотека — это библиотека, код которой встраивается в программу при компиляции. Код разделяемой библиотеки не встраивается в программу, а загружается в память одновременно с программой и программа получает доступ к функциям этой библиотеки. Динамические библиотеки — разновидность разделяемых, но библиотечные функции загружаются в память только тогда, когда из программы поступит вызов соответствующей функции. В процессе выполнения
программы они могут выгружаться и заменяться другими функциями из той же или другой библиотеки. Имена статических библиотек обычно имеют суффикса имена разделяемых библиотек — суффикс .so, за которым следует старший и младший номера версии. Имя может быть любой строкой, которая однозначно характеризует библиотеку. Обычно имена библиотек начинаются с lib. Примеры libm.so.5 — общая математическая библиотека, libX11.so.6 — библиотека для работы с системой X Window. Библиотека libc.so.5 компонуется автоматически, в то время как большинство других библиотек необходимо явно указывать в командной строке при вызове программы gcc
. Это делается через опцию ­l, за которой следует уникальная часть имени библиотеки, например, для вызова математической библиотеки достаточно указать ­lm. Многие системные библиотеки располагаются в системных каталогах, например, вино некоторые могут располагаться ив других местах. Список этих каталогов помещается в файл
/etc/ld.so.conf. Каждый раз, когда разделяемая библиотека изменяется или инсталлируется вновь, нужно выполнять команду ldconfig
, чтобы обновить файла также ссылки на него. Если библиотека инсталлируется из пакета, это обычно делается автоматически, хотя и не всегда. При компиляции больших программ, использующих фрагменты исходного кода, расположенные в разных файлах, бывает очень трудно отследить, какие файлы нужно перекомпилировать, а какие только компоновать. В таких случаях очень помогает утилита make
, которая автоматически определяет, следует ли компилировать файл исходного кода, по дате его последней модификации. Утилита make оперирует файлами, исходя из их зависимости друг от друга. Эти зависимости определяются файлом с именем makefile. Строка файла makefile состоит из трех частей имени целевого файла, списка файлов, от которых он зависит, и команды. Если какой­
либо файл из списка изменился после целевого файла, то выполняется указанная в строке команда. В строке может быть указано несколько команд. Обычно команда — это вызов компилятора для компиляции файла исходного кода или компоновки файлов объектного кода. Строки, определяющие зависимости, отделяются друг от друга пустой строкой.
10.3.2. Инсталляция пакетов ПО из исходных текстов
Теперь, когда мы получили общее представление о компиляции программ на языке С, можно рассмотреть обращение с пакетами программ, распространяемыми в виде исходных кодов. Первое, что надо сказать в этой связи, это то, что для установки таких пакетов вы, естественно, должны иметь в своей системе утилиты gcc и Непосредственно процесс инсталляции пакета состоит из следующих шагов
1. Перейти (с помощью команды cd
) в каталог, содержащий исходные коды устанавливаемого пакета. Выполнить команду
./configure
, которая осуществляет конфигурирование пакета в соответствии с вашей системой. Процесс выполнения этой команды занимает довольно длительное время, причем команда выдает на экран сообщения о том, какие именно
особенности системы испытываются. Выполнить команду make
, для того, чтобы скомпилировать пакет. После этого можно выполнить (это шаг не является обязательным) команду make check
, которая вызывает запуск процедур самотестирования, которые поставляются с пакетом. Выполнить команду make install для установки программа также файлов данных и документации. Заключительный этап состоит в выполнении команды make clean
, которая удаляет промежуточные объектные и двоичные файлы из каталога с исходными кодами. Для удаления временных файлов, которые создала команда configure
(после чего пакет можно компилировать для другого типа компьютеров, надо выполнить команду make В большинстве случаев выполнение этой последовательности команд достаточно для установки нового пакета. Основная проблема, с которой приходится сталкиваться при инсталляции программ из исходных кодов, связана с конфликтами версий для вновь устанавливаемого пакета требуются новые версии каких­то системных утилит, которые пока еще не установлены в вашей системе. Более того, часто возникает целая цепочка (или даже дерево для программы нужна какая­то новая версия утилиты, для последней нужно обновить еще какие­то утилиты, и т. д. Но, если вы не очень давно устанавливали (или обновляли) дистрибутив, то таких проблем не возникает, и обновление пакета пройдет без затруднений. Желаю вам успеха!
Глава 11. Русификация и шрифты Предыдущий раздел Оглавление Следующий раздел
Может возникнуть вопроса надо ли подробно разбирать вопрос русификации, не лучше ли просто сразу установить русифицированный дистрибутив Тем более, что в последних версиях дистрибутивов Red Hat Cyrillic Edition, ASPLinux и AltLinux русификация выполнена на вполне приемлемом уровне. Однако, даже в случае установки русифицированного дистрибутива вы имеете шанс столкнуться с проблемой русификации на последующих этапах. Может получиться так, что новая версия нерусифицированного дистрибутива появится раньше, чем соответствующий русифицированный вариант, ивы захотите его установить. Не всегда хочется дожидаться пока выйдет русская версия. Русификация может нарушиться при обновлении отдельных программных пакетов. У меня, например, что­то случилось с русификацией после установки XFree86 версии 4.0.1. Таким образом, задача русификации может встать перед любым пользователем ОС Linux. Когда я начинал работать с ОС Linux, самым лучшим материалом по русификации был "The
Linux Cyrillic HOWTO" Александра Беликова (Версия 4.2 b2, Декабрь 11, 1998) в переводе ЕМ. Балдина. Кроме этого HOWTO были доступны только материалы со странички Леонида
Кантера. Однако оба этих источника уже в то время существенно устарели, так как в Red Hat
версии 6 изменились даже команды выбора шрифта. Переводчик "The Linux Cyrillic HOWTO" Е. Балдин в настоящее время создает свой вариант HOWTO по кириллизации П. Думаю, что в ближайшее время (когда автор закончит работу над ним) он станет исчерпывающим источником сведений поэтому вопросу (Примеч. Очень полезен также RU.LINUX.FAQ П. Настоящая глава во многом следует этим двум основным источникам. Начать надо с двух замечаний. Во­первых, поскольку способы вывода информации на экран в графическом и текстовом режимах принципиально различны, придется отдельно рассмотреть вопрос о русификации текстового и графического режима. Во­вторых, в системе Linux существуют два конкурирующих пакета управления консольными шрифтами и клавиатурой

kbd (ftp://ftp.win.tue.nl/pub/linux/utils/kbd/ или и consoletools (В разных дистрибутивах применяются или один, или другой. Например, в Red Hat хи для русификации консоли применялся пакет kbd. В Red Hat 6.x применяется уже другой пакет ­ consoletools. Приводимое ниже описание ориентировано, в основном, на пакет consoletools.
11.1. Предварительные сведения
В разд. 9.3. мы уже рассмотрели вопрос о кодировке символов и о работе клавиатуры, а также научились задавать (изменять) раскладку клавиатуры, те. вопрос о вводе информации в компьютер. Теперь надо рассмотреть вторую сторону этого вопроса – вопрос о выводе информации для восприятия человеком.
11.1.1 Вывод символов на экран
Обычно (если не считать управляющих комбинаций) код нажатой клавиши либо записывается в файл, либо соответствующий символ отображается на экране. В файл, разумеется, записываются последовательности байтов, а не символы как таковые, но и они в конечном итоге предназначены для прочтения человеком, а человек воспринимает только изображения печатных знаков на экране или в распечатке. Текстовый режим


Поделитесь с Вашими друзьями:
  1   2   3   4


База данных защищена авторским правом ©nethash.ru 2017
обратиться к администрации

войти | регистрация
    Главная страница


загрузить материал