Как установить программу из исходников на linux mint

Обновлено: 07.07.2024

Время от времени появляются новые задачи либо необходимость в решении старых задач новыми способами — тогда возникает потребность в дополнительном программном обеспечении. Что делать, если вам нужна новая программа для Linux? Попробую описать некий алгоритм.

1. Надо понять какое именно решение вам нужно. Для этого можно использовать поисковые системы. Формировать запрос о своей проблеме и выбирать подходящие решения.

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

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

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

1. Находим официальный сайт приложения и пытаемся найти там .deb пакет (У нас Ubuntu Linux — у него пакетная система основана на deb формате). Если такой пакет есть на официальном сайте, то скачиваем его и устанавливаем.

2. Если .deb пакета нет на официальном сайте, то ищем его в поисковой системе (помимо автора, другие люди могли для удобства собрать deb-пакет для приложения). Запрос может выглядеть так: «xneur deb» или «gimp deb».

3. Если нам не повезло и программа настолько редкая, что deb-пакета для нее нет, то смотрим в каком виде она вообще распространяется.

Установка приложения из tar.gz

Часто приложения распространяются в архивах tar.gz. Этот формат не так удобен в Ubuntu, так как это не пакет, а просто архив, в котором могут быть как исходные коды, так и скомпилированные приложения и библиотеки.

Установка из tar.gz:

1. Распаковываем архив в отдельную директорию.

2. Если есть исполняемый файл — запускаем и пользуемся, если нет — читаем раздел «Компиляция».

Установка приложения из SVN

SVN — Subversion. Это система контроля версий кода, в которых хранится исходный код приложений, особенно Open Source.

1. Создаем директорию для нашего приложения.

2. Открываем терминал в директории (cd 'путь/к/директории');

3. Скачиваем исходные коды:

svn co (SVN-адрес)

4. Читаем раздел «Компиляция».

Установка приложения из CVS

CVS — Concurrent Versions System. Это также система контроля версий кода.

1. Создаем директорию для нашего приложения.

2. Открываем терминал в директории (cd 'путь/к/директории');

3. Скачиваем исходные коды:

cvs -z3 -d (CVS-адрес) co ./

4. Читаем раздел «Компиляция».

Установка приложения из RPM

rpm-пакеты не родные для Ubuntu. Существует утилита alien, с помощью которой можно установить как обычные (sudo apt-get install alien). С ее помощью можно переконвертировать rpm-пакет в deb-пакет. Очень проста в использовании:

И в директории с rpm-пакетом появится deb-пакет. А его мы уже без труда установим.

Компиляция

1. Открываем терминал в директории с нашим приложением (cd 'путь/к/директории');

2. Смотрим информацию о конфигурировании приложения:

Смотрим вывод и решаем с какими параметрами надо конфигурировать. Если эта команда выдает ошибку — значит конфигуратора нет. Если конфигуратор присутствует — конфигурируем:

Можно эту команду выполнить без аргументов — будет стандартная конфигурация.

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

3. Компилируем приложение:

В ходе компиляции могут быть ошибки. В случае ошибок, вам снова поможет поисковая система.

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

Если приложения требует инсталляции, то выполняем (понадобятся права администратора — вспоминаем команду sudo):

Эта команда скопирует файлы приложения в необходимые системные директории.

5. Пользуемся приложением.

Приложения, установленные таким образом, могут быть удалены с трудом. Поэтому, советую почитать про программу checkinstall.

Пользователям Linux необходимо хотя бы приблизительно знать как происходит сборка программ из исходников. Так как вы можете столкнуться стем, что вашей программы может и не быть скомпилированной под ваш дистрибутив. Сама сборка программ не сложна, и обычно описана в файле README или INSTALL, который идет вместе с пакетами для сборки. Так что, будьте внимательны. И так, сборку из исходников мы будем разбирать на примере программы GParted. Но, для начала давайте установим необходимые утилиты – интерпретатор и компилятор, для того, что бы можно было собирать программы. Для установки необходимых утилит вводим команду:

Debian/Ubuntu

sudo apt install build-essential automake autoconf

Arch/Manjaro

sudo pacman -S base-devel --needed

Сборка программ c Github

И начнем мы с GParted, сборку или как еще называется данный процесс – компиляцию мы будем выполнять в Ubuntu 20.04 . Вы можете спросить почему именно в Ubuntu, отвечу, для Arch Linux и подобных есть AUR. Да и со сборкой программ в Arch мы разберемся чуть позже. Там можно найти практически все программы, которые существуют для Linux. Для начала нужно скачать исходники программы, для этого переходим на сайт, скачиваем, а затем распаковываем архив. Так же можно выполнить команду:

Затем переходим в папку:

Теперь заглянем в файл README и посмотрим его внимательно. Если приглядеться, то можно увидеть какие зависимости необходимы доустановить:

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

Если проблема с зависимостями у вас останется, то вы увидите об этом вывод:

После того, как вы установите все необходимые зависимости, запускаете снова “autogen.sh”. В итоге он вам скажет что можно приступать к дальнейшим действиям:

Далее запускаем “make” и затем когда “make” выполнит свою работу, запускаем “sudo make install”. Обратите внимания, в некоторых инструкциях не упоминается о том, что нужно установку программы выполнять именно от “sudo”, а именно: “sudo make install”. Из за этого у вас могут возникнуть проблемы. И так продолжаем сборку программы вводим команды:

make
sudo make install

Стоит отметить, что многие программы с открытым исходным кодом, можно найти на github. Там обычно самая последняя версия программы, по этому, если есть такая возможность, то лучше собирать программы с github.

После установки можно найти программу в меню установленных программ.

Сборка программ из архива

Распаковывать архив можно из терминала, а можно при помощи графического интерфейса, например программой Ark или Менеджер архивов. Тут все зависит от того, как вам удобней. Для того что бы распаковать архив в терминале, нужно выполнить определенную команду. На примере с GParted такой командой будет:

tar xzf gparted-1.1.0.tar.gz

Примечание, tar является утилитой командной строки для распаковки архивов. И так, затем переходим в папку с распакованной программой и смотрим какие там имеются файлы. Тут как раз имеются README:

Для наглядности я открою файл README в графической утилите Mousepad. Как вы можете заметить, в инструкции подробно прописано как устанавливать данную программу из исходников:

Для того что бы собрать данную программу, достаточно выполнить команды, которые прописаны в инструкции. Так как мы уже распаковали данный архив, пропускаем это шаг. Если вы не знаете как перейти в терминале в директорию программы, поясню. А если знаете, то пропустите данный шаг. Для того что бы перейти в терминале в нужную директорию, используется команда “ cd “. Например, у вас папка с программой находится по адресу “Загрузки – папка с программой”, выполняем команду:

После чего можно посмотреть что у нас имеется в данной директории введя команду “ ls “, после чего снова вводим команду “ cd ” и переходим в нужную нам директорию. Например:

Теперь приступаем к сборке программы GParted. Для этого вводим команды которые написаны в файле README.

На этом этапе установки могут возникнуть проблемы с зависимостями. По этому их необходимо установить:

После того как все необходимые зависимости были установлены, снова запускаем “./configure” и продолжаем компиляцию программы как описано выше. А именно, после запуска “./configure” запускаем “make”, а затем “sudo make install”.

Ошибки при сборке программы

Возможно, при компилировании у вас могут возникнуть проблемы с зависимостями. Для этого надо будет устанавливать необходимые пакеты. Обычно если у вас не хватает зависимостей, вы увидите во время выполнения команды ./configure ошибки. Если же вы не знаете какой зависимости не хватает, то тут выручит поисковик.

После того как вы установите необходимые зависимости, снова необходимо запустить ./configure. А может быть и так, что у вас не будет файла ./configure, попробуйте запустить другие скрипты:

Если таких скриптов вы не смогли найти, то можно выполнить последовательно следующие команды:

aclocal
autoheader
automake --gnu --add-missing --copy --foreign
autoconf -f -Wall

В случае с дистрибутивами Arch/Manjaro необходимые пакеты вы можете подгрузить используя “Менеджер программ”, Предварительно не забыв подключить репозиторий AUR:

Пример необходимых зависимостей при установки в Manjaro программы Blender. Компиляция производилась с использованием файла PKGBUILD:

Удаление программ

Если же вы захотите в будущем удалить GParted, или какую то иную программу, оставьте папку которую скачивали. Так как только в ней есть инструкция куда устанавливались те или иные пакеты. Обычно, в файле README написано как удалять установленные программы. В случае с GParted достаточно перейти в каталог с исходниками и выполнить команду:

Сборка в Arch/Manjaro (Arch Build System – ABS)

В дистрибутивах Arch и Arch подобных есть несколько способов устанавливать программное обеспечение, собственно, как и во многих других дистрибутивах. Но, в Arch имеется AUR, это пользовательский репозиторий, где лежат программы, которые не вошли в официальные репозитории. А так же существует способ собрать программу из исходников и вот тут вы можете столкнуться с тем, что вам попадется файл “PKGBUILD”. PKGBUILD это грубо говоря скрипт, который содержит инструкцию по скачиванию необходимых пакетов. Так же вместе с PKGBUILD могут быть и другие файлы, например “blender.desktop”. Вы можете открыть PKGBUILD и изменить необходимые параметры, но, это только при условии что вы знаете что делаете. Предположительно, вы уже перешли в каталог с исходниками программы, если же нет, сделать это можно командой в терминале “cd и путь к директории”. Для сборки пакета выполняем команду:

Опишу опции которые тут применяются, опция -s произвести проверку и установку зависимостей, а опция i установку самого пакета:

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

Программы обычно распространяются в упакованных архивах, это файлы с расширениями

Нужно понимать отличие между архиватором и упаковщиком.

Для архивации директорий и файлов используется программа tar; результатом её работы является файл с расширением .tar. Грубо говоря, это копия файловой системы - директорий и файлов с их атрибутами и правами доступа, помещённая в один файл.

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

Программа tar умеет распаковывать, поэтому не нужно вызывать gunzip, а можно просто указать программе tar, что файл нужно cначала распаковать. Например, команда

сразу распакует и разархивирует. Отличие файлов с расширениями

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

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

Для сборки программ в GNU/Linux используется (в основном) программа make, которая запускает инструкции из Makefile, но поскольку дистрибутивов GNU/Linux много, и они все разные, то для того чтобы собрать программу, нужно для каждого дистрибутива отдельно прописывать пути,где какие лежат библиотеки и заголовочные файлы. Программисты не могут изучать каждый дистрибутив и для каждого отдельно создавать Makefile. Поэтому придумали конфигураторы, которые «изучают» систему, и в соответствии с полученными знаниями создают Makefile. Но на конфигураторе они не остановились и придумали конфигураторы конфигураторов …на этом они остановились

Для сборки нам нужны компиляторы: они прописаны в зависимостях пакета build-essential, так что достаточно установить его со всеми зависимостями. Ещё нужны autoconf и automake.

Итак, чтобы собрать что-то из исходников, нужно сначала собрать конфигуратор; как собрать конфигуратор, описано в файле configure.in. Для сборки конфигуратора необходимо выполнить

Если таких скриптов в архиве не оказалось, то можно выполнить последовательно следующие команды:

Все эти команды используют файл configure.in. После выполнения этих команд создастся файл configure. После этого необходимо запустить конфигуратор для проверки наличия всех зависимостей, а также установки дополнительных опций сборки (если возможно) и просмотра результата установки (опционально- может не быть)

Конфигуратор построит Makefile основываясь на полученных знаниях и файле makefile.am. Можно передать конфигуратору опции, предусмотренные в исходниках программы, которые позволяют включать/отключать те или иные возможности программы, обычно узнать о них можно командой

Также есть набор стандартных опций, вроде

, которая указывает, какой каталог использовать для установки. Для Ubuntu обычно

БЕЗ слеша в конце! Теперь можно запустить процесс сборки самой программы командой

Для сборки достаточно привелегий обычного пользователя. Окончанием сборки можно считать момент, когда команды в консоли перестанут «беспорядочно» выполняться и не будет слова error. Теперь всё скомпилировано и готово для установки.

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

Правильная установка(Вариант №1)

Установка при помощи утилиты checkinstall. Для установки выполните

Минус данного способа: checkinstall понимает не все исходники, поскольку автор программы может написать особые скрипты по установке и checkinstall их не поймёт.

Для создания и установки deb-пакета необходимо выполнить

Правильная установка(Вариант №2)

Быстрое создание deb-пакета «вручную».

Основное отличие от предыдущего способа заключается в том, что в данном случае вы создаете пакет вручную и отслеживаете все вносимые изменения. Так же этот способ подойдет вам, если исходники не поддерживают сборку пакета с checkinstall. Производим установку во временную директорию, где получаем весь набор устанавливаемых файлов: Создадим в «корне пакета» директорию DEBIAN и сложим в DEBIAN/conffiles список всех файлов, которые должны попасть в /etc: После чего создаём файл DEBIAN/control следующего содержания: При необходимости там же можно создать скрипты preinst, postinst, prerm и postrm. Получаем на выходе tempinstall.deb, который и устанавливаем

Установка (вариант №3)

Процедура создания deb-пакета подробно описана в данной статье.

Неправильная установка

Минус данного способа заключается в том, что если вы устанавливаете напрямую через make install, то нормально удалить или обновить пакет вы, скорее всего, не сможете. Более того, установка новой версии поверх старой, скорее всего, затрёт ваши изменения в конфигах. make install делает ровно то, что ему сказано — производит установку файлов в нужные места, игнорируя тот факт, что там что-то уже есть. После этого процесса совершенно никакой информации о том, что и куда ставилось, получить в удобоваримом виде невозможно. Иногда, конечно, Makefile поддерживает действие uninstall, но это встречается не так часто, да и не факт, что корректно работает. Кроме того, вам будет необходимо хранить для деинсталяции распакованное дерево исходников и правил сборки.

Для установки необходимо выполнить

Для удаления пакета, установленного данным способом необходимо выполнить в корневой директории исходников программы (там где вы запускали make install).

Пакеты с буквами mm в конце описания — это пакеты для C++ программ. Список для bmpx, но подойдёт почти для любой GTK2/Gnome программы. Так что если не получается собрать, то посмотрите на этот список и сверьте с тем что у вас установлено.

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


Спасибо - я смотрел. Ничего не получилось. Примерно так:


./configure
make
make install


какая программа, какое содержимое каталогов?

Возможно, надо xmkmf сделать, если это классическая иксовая программа.

Ещё и другие варинты бывают, типа scons.

А можно конкретный пример: ну например, как тот же xmms установить?


>А можно конкретный пример: ну например, как тот же xmms установить?

xmms именно так и устанавливается, с ./configure, оно там есть. Ты уверен, что ты исходники слил? :)

самый верный способ - прочитать readme(install), который практически всегда валяется в каталоге с исходником

1. закрываешь все программы (как бывшый виндовзятнег)
2. в консоли пишешь:

3. перезагружаешь компьютер (как бывшый виндовзятнег)

если желаешь перестать быть виндузятником, п.1 и 3 пропускай

спасибо. Это относится ко всем приложениям. Можно вопрос: а если исходники лежат на рабочем столе? как перейти в папку? ЗЫ я бывший виндовзяник-профи =)Просто обстоятельства заставили на линух перейти

[QUOTE]самый верный способ - прочитать readme(install), который практически всегда валяется в каталоге с исходником[/QUOTE] Плоховато английским владею=) [quote]xmms именно так и устанавливается, с ./configure, оно там есть. Ты уверен, что ты исходники слил? :)[/quote] Мне xmms ни к чему. Я на мандриве 2006 (он там в комплекте) Просто взял для примера


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

Лучше бы сначала checkinstall-ом собирать rpm-пакеты и устанавливать уже их. Как это делать тебе подскажет man и/или гугл. =)

Спасибо. Я так и решил, после прочтения статьи, на форуме. Но вот проблема: моя ось на i586 построена, а rpm с сайта на i386 - вот и не устанавливается. Вот сейчас checkinstall пытался собрать из исходников. Результат не слишком обнадёживает=)


>моя ось на i586 построена, а rpm с сайта на i386 - вот и не устанавливается

Имхо, бред. Из-за этого не устанавливаться не может. Открой консоль, зайди в папку с rpm-файлом, запусти

rpm -ihv xxxxx.rpm

и скажи, что тебе rpm на это отвечает.

Установилось. Чёт первый раз то ли меня проглучило, то ли систему. Только не пойму куда установилось и как запустить.

И ещё вопрос. Простите, но для меня освоить линукс важно - как через консоль заходить в папку? просто /usr/local/***/ Или както по другому?


>И ещё вопрос. Простите, но для меня освоить линукс важно - как через консоль заходить в папку? просто /usr/local/***/ Или както по другому?


>Установилось. Чёт первый раз то ли меня проглучило, то ли систему. Только не пойму куда установилось и как запустить.

Бинарники обычно устанавливаются или в /usr/bin/, или в /usr/local/bin/. Запустить попробуй из консоли, просто набрав имя программы.

Лучше rpm -Uhv. Иначе если прога уже стоит, он откажется её заменять

>Бинарники обычно устанавливаются или в /usr/bin/, или в /usr/local/bin/. Запустить попробуй из консоли, просто набрав имя программы

Не получилось. Он вообще её не видит. То есть сам rpm пакет есть в системе, но приложения в списках нет


>приложения в списках нет

В каких списках? В главном меню? Дык может оно себя туда не добавило.

MC тебе в помощь. Прямо так и пиши: mc. А вместо alt-F1 у него Ctrl-\.


а)Что за программа?

б)Вспомни ДОС.
многие команды похожи

cd == cd
cp == copy
ls == dir
mkdir == mkdir
rm == del
mv == move


Если в папке с проектом нету configure набери autoreconf

>а)Что за программа? В принципе ничего конкретного. Мне важно понять сам принцип установки приложений. Вообще хочу нормальный icq клиент поставить, чтоб сносно с квипом работал (стандартные gaim и kopete не читают кириллицу с квипа)

>б)Вспомни ДОС.

Мне 14, не застал чуть-чуть=)

> Если в папке с проектом нету configure набери autoreconf

Нет, configure, как раз есть. Проблема с коммандой make. Вот например:

[***@*** mhwaveedit-1.4.5b]$ make make: *** Не заданы цели и не найден make-файл. Останов.

>MC тебе в помощь. Прямо так и пиши: mc. А вместо alt-F1 у него Ctrl-\.

Спасибо. Так полегче.=) Хотя переходить в папку уже научился=)

>вот с mhwaveedit и надо запускать ./configure

Дык я так и делаю:

]$ cd /home/rat/Desktop/mhwaveedit-1.4.5b [rat@CTK mhwaveedit-1.4.5b]$ ./configure

[rat@CTK mhwaveedit-1.4.5b]$ make make: *** Не заданы цели и не найден make-файл. Останов.

[rat@CTK mhwaveedit-1.4.5b]$ ./configure

Что бы это могло значить? ЗЫ версия самого GTK - 2.0.2.8

>Что бы это могло значить? ЗЫ версия самого GTK - 2.0.2.8

не хватает пакетов вида libgtk+1.2-devel-1.2.10-37mdk.i586.rpm или libgtk+2.0_0-devel-2.2.4-2mdk.i586.rpm и т.д.

ключевое слово -devel-

>не хватает пакетов вида libgtk+1.2-devel-1.2.10-37mdk.i586.rpm или libgtk+2.0_0-devel-2.2.4-2mdk.i586.rpm и т.д.

ключевое слово -devel-

Спасибо. Нашёл зеркало - поставил. Всё заработало=)

Только вот другие приложения не ставятся (туча ошибок), но это скорее потиому, что я ставил ось всего с одной дивидишки из трёх. Завтра сгоняю - возьму ещё - помотрим, что получится. Всем огромное спасибо за помощь. Очень признателен=)

Читайте также: