Lipetsk *nix Association Forum Lipetsk *nix Association Forum
Новости:
 
*
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?
02 Декабря 2024, 13:12:12


Войти


Страниц: [1]   Вниз
  Печать  
Автор Тема: Установка программ из исходных файлов  (Прочитано 12093 раз)
0 Пользователей и 1 Гость смотрят эту тему.
wrag
Небритый одмин
*****

Карма: 0
Сообщений: 673



Награды
« : 15 Сентября 2007, 19:21:06 »

Распространять программы в Linux можно несколькими способами: в виде исходных кодов, пакетов и готовых откомпилированных двоичных файлов. Готовые файлы не вызывают каких- либо затруднений - просто скопируйте в любой каталог и запускайте оттуда. Куда именно и что копировать, а также параметры запуска обычно описываются в прилагаемом файле с описанием. Для установки пакетов существуют интуитивно понятные графические программы (например rpmdrake), поэтому их установка также не сложна, а для тех, кто вынужден не использовать графический интерфейс, существует команда rpm, использование которой также очень простое. А вот установка программ, распространяющихся в виде исходных файлов, вызывает особые трудности у большинства начинающих пользователей Linux, хотя умение это делать является одним из основных навыков, необходимых для работы в Linux.
Как правило, исходные файлы заархивированы в так называемый тарболл. Обычно тарболл имеет суффикс .tar.gz и имя вроде program-1.11, где program- название программы, а 1.11 - её версия. Чем больше номер версии, тем новее пакет (как, впрочем, и в Windows). Отличие тарболла от пакета (RPM, DEB или какого- либо другого) в том, что пакет содержит уже откомпилированные двоичные файлы, нужные для их работы библиотеки и скрипты удаления/обновления, а при установке автоматически копирует это всё в определённые папки; тарболл же содержит только исходные коды, которые должны быть скомпилированы для получения двоичных исполнимых файлов. После компиляции происходит установка уже готовых файлов с помощью команды make install, но то же самое можно сделать и вручную. А если вы используете тарболл просто, чтоб ознакомиться с неизвестной программой, то подождите устанавливать её - может быть, она не подойдёт, и тогда её можно удалить, просто удалив папку, в которой происходила компиляция. Тем более что во многих тарболлах не предусмотрена возможность make uninstall, поэтому удалять их придётся вручную, что может составить большую трудность для начинающего пользователя.
В кратком виде процесс установки выглядит так: сначала распаковываем тарболл в заготовленную для этого папку, потом выполняем configure, если он есть, далее make или сс, а потом make install (при желании). Итак, попробуем провести установку какой- нибудь программы.
Создадим для неё папку, и скопируем тарболл туда (имейте в виду, в Linux регистр имён команд и файлов имеет значение, поэтому вы получите ошибку если наберёте Mkdir вместо mkdir):

mkdir folder_name cp file_name > folder_name

Здесь file_name - имя копируемого файла, folder_name - имя папки назначения.
Скорее всего, вам не придётся проделывать это всё вручную, и вы сможете создать папку и скопировать в неё тарболл с помощью имеющих графический интерфейс программ, вроде Konqueror.
Далее необходимо распаковать тарболл:

tar xfzv file_name

Просто просмотреть содержимое тарболла, не распаковывая его в какую- либо папку, можно такой командой:

tar tvf file_name

Опять же, скорее всего, у вас будет возможность воспользоваться каким- нибудь архиватором с графической оболочкой, где всё интуитивно понятно, даже если вы никогда не видели Linux.
После распаковки в текущей папке образуется несколько (а может, очень много) разных файлов и папок, из которых нас сейчас интересуют только два файла: README и INSTALL. Файл README обычно содержит описание программы, инструкции автора и т.п., а файл INSTALL описывает работу скрипта configure, также находящегося в папке с распакованным тарболлом. Этот скрипт, изучив вашу систему, создаёт makefile, необходимый для компиляции программы, и если автор был внимателен при создании своей программы, то, скорее всего, makefile будет создан в любой версии Linux. Однако в некоторых тарболлах, обычно содержащих несложные программки, configure отсутствует- туда сразу помещён готовый makefile. Также исходник программы может представлять один- единственный файл с суффиксом .c или .cc.
Итак, переходим в папку с распкованным тарболлом:

cd folder_name

Запускаем скрипт конфигурации (если его нет, то данный шаг просто пропускаем):

./configure (это может длиться довольно долго, не волнуйтесь, так и должно быть)

Для файлов .c или .cc

make (для .c)
cc program.c -o program (для .cc; program - имя файла, обычно совпадающее с названием программы, но при желании переименуйте, как вздумается).
Скрипт configure должен выполняться без ошибок, хотя и может выводить предупредительные сообщения. Обычно это не приводит к отказу в компиляции программы, хотя может быть, что на вашем компьютере отсутствуют какие- то заголовочные файлы/библиотеки или их расположение нестандартно.
Далее запускаем make:

make

И устанавливаем программу (при этом обычно происходит установка двоичных файлов, документации и страниц man):

make install

Не забудьте о том, что каталог /tmp обычно очищается во время перезагрузки, и если компиляция происходила в нём, то все исходные файлы и результаты сборки будут удалены, поэтому заблаговременно перенесите их в другое место.
Скорее всего, make придётся выполнять от имени суперпользователя (root). Повысить свои права можно с помощью команды sudo, если это разрешено для той группы пользователей, в которую вы входите.
Если при выполнении configure или make вы получили сообщение об ошибке, после которого процесс установки прервался - прочитайте его внимательно, и постарайтесь понять, в чём дело. Скорее всего, отсутствует какой- то файл или библиотека, или их версия устарела. В этом случае вам придётся искать и устанавливать отсутствующее. Многие библиотеки входят в состав дистрибутива, но не устанавливаются в месте с ним. Можно также поискать библиотеки в других дистрибутивах - например, втором диске Gentoo Linux 2005. Если же сообщение об ошибке непонятно, то скопируйте его в текстовый файл и поищите ответ на различных форумах - велика вероятность того, то кто- то уже столкнулся с такой же или похожей проблемой и нашёл удачное решение. Если же будете задавать вопрос, не поленитесь вставить в него текст сообщения, а также указать название и версию устанавливаемой программы и операционной системы. В любом случае будет не лишним после устранения проблемы полностью удалить папку с распакованным в неё тарболлом, и начать всё с нуля. Это будет просто необходимо, если скрипт configure был выполнен до конца, потому что в нём будут содержаться устаревшие и неверные данные, и ошибка повторится. Удаление производится с помощью команды rm (от английского слова remove). Ключи, с которыми запускается rm (да и любая другая команда) можно узнать, набрав в консоли имя команды с ключом -help или man имя_команды.
Ещё раз напомню о том, что Linux чувствителен к регистру символов как в командах, так и в именах файлов и папок, потому что пользовавшиеся Windows часто забывают об этом и долго ищут причину ошибки. Также есть разница в написании путей - если в Windows они пишутся через знак \ (Мои документы\Моя музыка), то в Linux используется знак / (home/me/tmp).


По теме

$bunzip2 -d file.tar.bz2 \\ распаковка из bzip-архива
$tar -xvf file.tar \\ распаковка их tar-орского архива
$cd file \\ переход в каталог с программой
Можно перед этим прочесть файлик readme. Если такого нет - делаем следующее :
$./configure \\ создание Makefile-файла
$make \\ компиляция исходников
$make install \\ собственно установка

Примечание : на установку программы должны быть соотвесвтующие права (например, права root'a. перейти к руту можно выполнив комманду su и на приглашение ввести пароль рута - ввести пароль (пароль не отображаеться вообще, просто вводи и потом жми энтер)).

вот типичный случай:

При установке программ в Mandriva 2007 распаковываю архив с помощью Ark, потом в консоли вхожу в распакованную папку, запускаю ./configure (как узнать, есть ошибки или нет?), затем make (make: *** Не заданы цели и не найден make-файл. Останов.) и make install (make: *** Нет правила для сборки цели `install\'. Останов.). Расскажите пожалуйста, в какой последовательности и что надо делать?

Для установки программ из архивов алгоритм работы такой: в консоли набираем: tar xzvf название программы, после этого переходим в директорию с прогой командой cd название программы, и запускаем ./configure, читаем внимательно вывод, если идут ошибки - исправляем, если нет - переключаемся в режим root: вводим su и пароль root'a и вводим ./make, после выполнения команды ./make install.

не знаю насколько ето правда
поэтому пойду мучить архив wine-0.9.45.tar.bz2
« Последнее редактирование: 15 Сентября 2007, 19:23:10 от wrag » Записан

живущий в консоли
начальник отдела системотехники Люцифеp
NeO
Злобный админчик
Администратор
*****

Карма: 62
Сообщений: 2376

Debian Stretch


WWW Награды
« Ответ #1 : 15 Сентября 2007, 19:39:47 »

В идеале все так и должно быть. на практике бывает хуже Улыбка
Записан
wrag
Небритый одмин
*****

Карма: 0
Сообщений: 673



Награды
« Ответ #2 : 15 Сентября 2007, 19:44:07 »

пойду практиковаться.
"Пора мне в подполковники Улыбка"

$./configure \\ создание Makefile-файла
далее читаем что написано перед командной строкой и обычно там пишут что вводить

Не выходя из папки где компилили вводим:

$make или то что написано выше\\ компиляция исходников

до чего же долгая все семечки кончились Шокирован

$make install \\ собственно установка

Ну наконец поставилось.
Поставилось но возник вопрос как теперь ее запускать или как все екзешники ассоциировать с ней (с вине 45 ибо ставил ее) потому как ни ярлыков ни ссылок хз как ее на поверхность вытащить, пойду маны читать.
« Последнее редактирование: 16 Сентября 2007, 16:01:42 от wrag » Записан

живущий в консоли
начальник отдела системотехники Люцифеp
wrag
Небритый одмин
*****

Карма: 0
Сообщений: 673



Награды
« Ответ #3 : 16 Сентября 2007, 16:02:37 »

вопрос а деинсталяция при наличии конфиг файла make uninstall?
Записан

живущий в консоли
начальник отдела системотехники Люцифеp
NeO
Злобный админчик
Администратор
*****

Карма: 62
Сообщений: 2376

Debian Stretch


WWW Награды
« Ответ #4 : 16 Сентября 2007, 23:20:03 »

вопрос а деинсталяция при наличии конфиг файла make uninstall?
В большинстве случаев да. А если нет, то ручками Улыбка
Записан
wrag
Небритый одмин
*****

Карма: 0
Сообщений: 673



Награды
« Ответ #5 : 19 Сентября 2007, 14:11:36 »

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

живущий в консоли
начальник отдела системотехники Люцифеp
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.21 | SMF © 2011, Simple Machines

Valid XHTML 1.0! Valid CSS! Dilber MC Theme by HarzeM