Вторник
30.04.2024, 14:37
| RSS
Главная
Меню сайта

Категории раздела
Madriva [3]
Ubuntu (KUbuntu, EdUbuntu, XUbuntu) [78]
SUSE [1]
Fedora Core [9]
ASPLinux [1]
Debian [16]
Gentoo [3]
Другие [167]

Мини-чат

Наш опрос
Оцените мой сайт
Всего ответов: 45

Статистика

Rambler's Top100Рейтинг@Mail.ru

Главная » 2009 » Март » 1 » Установка ПО из исходников для Mandriva Linux.
Установка ПО из исходников для Mandriva Linux.
17:28

Установка ПО из исходников

Установка программного обеспечения (ПО) путём сборки из исходных кодов является наименее предпочтительным способом установки в Mandriva Linux, и его следует использовать только тогда, когда вы не можете найти нужной вам программы ни в одном из официальных или неофициальных репозиториев (подробнее об установке из репозиториев см. здесь). Иногда, однако, установка из исходников неизбежна. В данной статье разъясняется стандартный способ установки из исходников в Mandriva Linux.

Прежде чем начать

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

Что происходит

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

Подготовка

Важно, чтобы исходный код сохранялся даже после того, как вы установили программу, так как без него будет сложно выполнить деинсталляцию. Было бы хорошей идеей создать в своей домашней директории папку source или src, и помещать все исходные тексты, которые вы собираетесь компилировать, в поддиректории внутри этой папки. Вам также нужно убедиться, что установлены некоторые основные приложения, необходимые для компиляции почти любого ПО. Установите пакет gcc, если он ещё не установлен. Прежде чем пытаться компилировать какую-либо программу, внимательно прочитайте документацию, вложенную в архив с исходниками. Обычно там бывает файл с именем INSTALL, содержащий указания по установке программы и информацию по работе приложения.

Шаг 1

В большинстве случаев шаг 1 заключается в выполнении команды ./configure в верхнем уровне директории с исходниками. Если процесс конфигурирования пройдёт успешно, скрипт завершит работу без каких-либо сообщений об ошибках, или выведет краткую сводку, как именно программа будет скомпилирована: какие опции будут включены, и, возможно, куда она будет установлена. Более сложные программы обычно допускают настройку тех или иных дополнительных параметров, позволяющих включать или отключать те или иные возможности программы. Вы можете использовать команду ./configure --help для просмотра этих опциональных параметров чтобы выяснить, нет ли тут чего-либо полезного для вас. В большинстве случаев вам не следует использовать опции --prefix, --sysconfdir или --localstatedir.

Варианты

Как было отмечено выше, для некоторых простых приложений, шаг 1 может отсутствовать вовсе. В этом случае сразу переходите к шагу 2. В некоторых других случаях — как правило, в ещё незрелых программах или в отлаживаемых версиях — вам может потребоваться перез запуском ./configure запустить другую команду: ./autogen.sh. Она создаст скрипт configure и другие файлы, нужные для создания Makefiles (скриптов, контролирующих процесс компиляции). В более необычном случае, программа может использовать совершенно иной способ компиляции, нежели традиционный, описываемый в данной статье, и тогда он безусловно должен быть указан во вложенных файлах документации, таких, как README, INSTALL и т. п.

Проблемы

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

Без паники! Всё дело в принятых в Мандриве соглашениях об организации пакетов. В MandrivaLinux разделяемые библиотеки — наборы функций, размещаемые в общих директориях и могущие потенциально быть использованы более чем одной программой — упаковываются отдельно от самих программ. Пакеты с библиотеками также разделяются. Некоторые библиотеки полезны только для компиляции: они никогда не используются для запуска программ. В MandrivaLinux библиотеки, необходимые для работы программы помещаются в один пакет, а библиотеки, полезные только для компиляции — в другой. Так что для довольно типичной ситуации, когда есть программа и связанные с ней библиотеки, MandrivaLinux обычно имеет три пакета. Если сама программа называется 'example', пакеты будут называться примерно следующим образом:

example libexample libexample-devel

К названиям могут добавляться номера версий, но общая схема обычно именно такая. Пакет example содержит саму программу, файлы настройки, меню и связанные с программой данные, такие как звуки, изображения, переводы и т. д. Пакет libexample содержит файлы библиотек, связанных с этой программой, необходимых для её запуска (а также других, которые могут заходеть использовать ту же самую библиотеку). Пакет libexample-devel содержит файлы библиотек, которые нужны лишь для компиляции приложений, использующих данную библиотеку.

Если вы пытаетесь скомпилировать что-либо из исходников и скрипт configure выдаёт ошибку, сообщая, что example не установлены, скорее всего вам требуется установить именно libexample-devel.

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

Шаг 2

После успешного завершения шага 1 пора перейти ко второму шагу — компиляции. Обычно это связано с запуском команды make в верхнем уровне директории с исходниками. В случае хорошо написанных приложений, если скрипт configure завершился успешно, этот шаг также должен пройти без проблем. В этом случае компиляция продлится определённое время (в зависимости от сложности приложения и мощности вашей системы она может занимать от нескольких секунд до нескольких часов) и по окончании выдаст сообщение о завершении. Если вы не видите никаких сообщений об ошибках, значит, процесс прошёл успешно.

Проблемы

Многие приложения не имеют столь совершенного кода и авторы забывают в скрипте configure сделать проверку наличия всех требуемых библиотек. В этом случае, процесс компиляции неожиданно остановится, выведя несколько сообщений об ошибке. Чтобы выяснить, в чём именно ошибка, вам обычно требуется посмотреть на первое сообщение об ошибке. Часто в этом сообщении говорится, что -lSOMETHING is not found. Это означает, что требуемая для компиляции devel-библиотека не была установлена, о чём уже было сказано в шаге 1. Обычно имя SOMETHING может навести на мысль об имени требуемой библиотеки, но иногда догадаться может быть достаточно сложно. Если вы не можете понять суть ошибки, вы можете попробовать воспользоваться Google, задав поиск по тексту этого сообщения, или попробовать задать вопрос на одном из форумов (например, на форуме Мандривы, или форуме той программы, которую вы пытаетесь установить). Вам также следует просмотреть файлы README и INSTALL, содержащиеся в архиве с исходниками, так как там может оказаться список требуемых пакетов. Установите требуемый пакет, затем перезапустите команду make и в конце концов у вас должно получиться. При этом нет необходимости возвращаться к шагу 1.

Если процесс компиляции завершается с сообщением об ошибке иного рода, вам, скорее всего, потребуется просить помощи эксперта на форуме Мандривы или форуме компилируемой вами программы.

Варианты

На данном шаги варианты встречаются редко, но иногда вам может потребоваться запустить команду make с дополнительными параметрами, чтобы скомпилировать дополнительные компоненты приложения, или ещё раз запустить команду в какой-либо поддиректории. Подобные варианты всегда оговариваются в файлах README или INSTALL.

Шаг 3

Если шаг 2 прошёл успешно, вам теперь нужно установить программу. Это означает копирование скомпилированных файлов в те директории, где они будут доступны для всех пользователей и, возможно, разделяемые библиотеки будут доступны для других программ. Этот шаг обычно выполняется путём запуска команды make install с правами root'а (чтобы получить права root'а, введите команду su и пароль root'а; не забудьте после выполнения make install набрать exit или нажать Ctrl-D).

В большинстве случаев приложение будет установлено в директорию /usr/local. Исполяемые файлы будут помещены в /usr/local/bin, библиотеки в /usr/local/lib, файлы конфигурации в /usr/local/etc, и другие файлы данных в /usr/local/share. Это ценное соглашение: MandrivaLinux (и все другие дистрибутивы) никогда ничего не устанавливает в /usr/local и никогда не трогает файлы в этой директории, так что вы можете быть уверены, что любые файлы, оказавшиеся в этой директории появились там либо после компиляции и установки вами программы, либо как результат команды, которые вы выполнили вручную. Если вы будете следовать этому соглашению, ничто из того, что вы устанавливаете из исходников, не сможет перепутаться с файлами, установленными пакетными менеджерами Мандривы.

Варианты

Иногда вам может попасться приложение, желающее установить себя в системные директории: /usr/bin для двоичных файлов, /usr/lib для библиотек, /etc для конфигурационых файлов и т. д. Это очень плохое желание, так как может получиться, что установленные вами приложения смешаются с приложениями, которые были установлены средствами пакетных менеджеров Мандривы, и такое поведение следует считать серьёзным багом приложения, кроме случаев, когда приложения для нормальной работы абсолютно необходимо размещение именно в системных директориях. О таком поведении следует сообщить разработчику программы, как о баге.

Проблемы

При самом выполнении этого шага вам едва ли встретятся проблемы (если вдруг встретятся, вам потребуется помощь эксперта). Более вероятно, что после установки таким образом программы вы не сможете её запустить. Это потому, что переменные окружения MandrivaLinux по умолчанию не принимают во внимание приложения, установленные в директории /usr/local.

Command not found

Если при попытке запустить приложения вы получаете сообщение об ошибке 'command not found', сперва попробуйте дать команду hash -r, затем попробуйте запустить программу снова. Если это не решило проблемы, то, возможно, в переменной окружения PATH отсутствует /usr/local/bin. Переменная окружения PATH содержит имена директорий, содержащих исполняемые файлы: чтобы запустить исполняемый файл, находящийся в этой директории, достаточно просто набрать его имя, без указания пути. Чтобы добавить /usr/local/bin в ваш PATH один раз, запустите команду export PATH=$PATH:/usr/local/bin. Чтобы /usr/local/bin добавлялась в ваш PATH каждый раз при запуске системы: отредактируйте файл ~/.bash_profile. Если там есть строка типа

PATH=$PATH:$HOME/bin

добавьте в её конец /usr/local/bin:

PATH=$PATH:$HOME/bin:/usr/local/bin

Если такой строки нет, тогда добавьте следующие две строчки:

PATH=$PATH:/usr/local/bin

export PATH

После внесения каких-либо изменений в PATH выполните команду hash -r.

libraries not found

Если программа запускается, но завершается с ошибкой, сообщая о невозможности найти файлы библиотек, вам необходимо добавить /usr/local/lib в список директорий, где систем ищет разделяемые библиотеки. Для этого отредактруйте — с правами root'а — файл /etc/ld.so.conf и добавьте в его конец следующую строчку:

/usr/local/lib

Сохраните файл, и запустите команду ldconfig, также с правами рута. Вам потребуется сделать это только один раз.

Проблемы с pkgconfig

Иногда вы можете столкнуться с несколько более запутанной проблемой. Некоторые приложения — как правило, приложения GNOME — используют систему, именуемую pkgconfig. Она используется при компилляции приложений стандартным путём, чтобы проверить наличие необходимых для разработки библиотек. Если вы устанавливаете приложение или библиотеку из исходников, где используется система pkgconfig, то, чтобы дать знать другим приложениям, что она доступна для компиляции, она установит файл имя_программы.rc в директорию /usr/local/lib/pkgconfig. Если вы затем попытаетесь скомпилировать другое приложение, которое ссылается на это первое приложение, оно может сообщить, что не может его найти. Это потому, что директория /usr/local/lib/pkgconfig не принимает в учёт pkgconfig при поиске доступных библиотек. Чтобы разрешить данную проблему однократно, запустите команду

export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig

Чтобы решить её постоянно, добавить следующие две строчки в ~/.bash_profile:

 

PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig

export PKG_CONFIG_PATH

Деинсталляция

Деинсталляция программы, установленной из исходников обычно сводится к запуску команды make uninstall (с правами root'а) из верхнего уровня директории с исходниками. Иногда вам может случиться наткнуться на приложение, где есть make install, но нет make uninstall. Это очень плохо, и об этом следует сообщить разработчикам программы, как с баге с наивысшим приоритетом. В этом случае единственным способом деинсталлировать программу является ручное удаление всех относящихся к данной программе файлов. Как уже было сказано выше, скорее всего все они находятся внутри директории /usr/local.

Если вы устанавливали из исходников, удалили исходный код, а затем решили деинсталлировать программу, у вас есть две возможности. Вы можете вручную найти и удалить все файлы, так же, как в случае с отсутствием make uninstall. Однако, в большинстве случаев, поможет вариант повторного скачивания исходников той же версии, выполнения шагов 1 и 2 тем же образом, как вы устанавливали программу, и затем запуск make uninstall с правами root'а.

Продвинутое: установка в системные директории

Иногда вам может попасться приложение, которое не будет работать корректно, если оно не установлено в системные директории, то есть, его нельзя установить в /usr/local, чтобы оно оттуда могло запускаться. Обычно это оговаривается в файлах INSTALL или README. В этом случае вы можете запустить скрипт ./configure с дополнительными параметрами, чтобы сообщить ему, куда следует устанавливать файлы программы. При этом вам следует особо позаботиться, чтобы приложение, установленное из исходников, не смешивалось бы с приложениями, которые Мандрива устанавливает из пакетов. Если вы устанавливаете приложение таким способом, убедитесь, что у вас удалены «пакетные» версии того же приложения, и не устанавливайте их после установки приложения из исходников и до полного их удаления. Почти всегда будет неудачной идеей устанавливать подобным образом новую версию разделяемой библиотеки, так как другие программы, использующие данную библиотеку, могут некорректно работать с новой версией.

Чтобы установить приложение в системные директории, запустите configure со следующими ключами:

./configure --prefix=usr --sysconfdir=/etc --localstatedir=/var
Источник: http://vicza.nm.ru/mdv-wiki/source_inst.html



Категория: Madriva | Просмотров: 2688 | Добавил: tol | Рейтинг: 0.0/0 |
Всего комментариев: 1
1 bloollase  
0
Добрый день!
Хочу купить шпильки резьбовые. Кто может что-нибуть посоветовать?
Какая фирма делает хорошие шпильки?
Видел вот на этом сайте: http://metizorel.ru/
Цены по-моему умеренные, но я не уверен, поэтому если покупали дешевле, подскажите где. Где можно найти лучшее соотношение цена-качество?

Имя *:
Email *:
Код *:
Форма входа

Поиск

Друзья сайта

  • Администрация

    Andry


    Tol


    Copyright MyCorp © 2024
    Хостинг от uCoz