Меню Рубрики

Установка программ в ubuntu tar bz2

Установка программ tar bz2, из исходных кодов в Linux

Linux-системы неразрывно связаны с концепцией GNU – проекта, поддерживающего и развивающего философию свободно распространяемого программного обеспечения (ПО), в том числе и в виде исходного кода. А поскольку систем на базе ядра Linux существует великое множество и разработчики дистрибутивов всегда для своих систем используют исходный код ПО при сборке комплектов утилит, пакетов, да и самого ядра, то, очевидно, что использование исходных кодов ПО — это неотъемлемый аспект в эксплуатации Linux-систем. По крайней мере, любому пользователю, достаточно хорошо освоившему UNIX-подобные системы, рано или поздно приходится сталкиваться со сборкой ПО из исходных кодов.

Самым распространённым случаем, когда приходится собирать ПО из «исходников» является ситуация, когда в свет выходит новая версия какого-либо пакета с устранением критической уязвимости в системе безопасности или с добавлением важного функционала. Но поскольку системы Linux, как правило, снабжены хранилищами пакетов (репозиториями), из которых происходит загрузка, установка и обновление ПО, то часто бывает так, что разработчики дистрибутива, которые и поддерживают репозитории, ещё не успели сформировать новые пакеты ПО, для которых уже выпущено обновление. В этом случае можно прибегнуть к самостоятельной сборке требуемых пакетов из исходного кода.

Для чего нужно построение пакетов из исходного кода?

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

Владельцы и администраторы хостинг-площадок предпочитают также устанавливать в качестве веб-серверов, PHP-интерпретаторов и серверов баз данных (БД) предварительно собранные на целевом оборудовании соответствующие программные пакеты. Это позволяет добиться максимальной совместимости ПО с оборудованием, на котором предполагается его работа и, как следствие — стабильности, что для веб-хостинга очень важно.

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

Общий порядок сборки пакетов — утилита make

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

Общий порядок сборки выглядит так:

  1. Распаковка архива tar bz2, содержащего исходные коды (обычно именно так «исходники» и распространяются).
  2. Переход в директорию с распакованными исходными текстами.
  3. Конфигурирование предстоящей сборки (указание директорий установки, сторонних библиотек, архитектуры, дополнительных компонентов и т.д.). Для этого обычно используются служебные скрипты.
  4. Непосредственно, сама сборка — команда make.
  5. Установка (распространение) построенного ПО — команда make install.

Ниже будет приведена эта процедура на примере с FTP-клиентом FileZilla, итак распаковка архива с «исходниками»:

В результате, в домашнем каталоге пользователя в поддиректории Builds появится директория filezilla-3.38.1. Нужно перейти в неё:

Просмотрев содержимое этой директории можно заметить файл INSTALL, в котором приведены инструкции для сборки/установки FileZilla:

Раздел «Compilation» из файла INSTALL:

Теперь, согласно этой инструкции, нужно создать директорию compile и перейти в неё:

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

Подобные скрипты создаются разработчиками ПО для облегчения процесса сборки/установки. Символы ../ означают переход в каталог на уровень вверх — именно там

по отношению к недавно созданной директории compile находится служебный скрипт configure.

Вывод этого скрипта показывает , готов ли данный пакет к сборке:

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

Здесь также присутствует файл INSTALL с указанием порядка сборки библиотеки libfilezilla-0.15.0

Читайте также:  Установки центрального кондиционирования воздуха

Изучив вывод скрипта configure, можно сделать вывод о том, стоит ли далее приступать к сборке пакета. Обычно о критических ошибках сообщается фразами «configure: error». Убедившись, что всё нормально, можно приступать к построению:

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

В выводе этой команды при успешном завершении обычно присутствует сообщения вида:

Сборка и установка библиотеки завершена, можно приступать к построению пакета FileZilla:

По-умолчанию установка будет произведена в директорию /usr/bin. Для изменения директории установки следует использовать опцию —prefix=каталог:

Сборка FTP-клиента FileZilla из исходных кодов на этом завершена. Следует отметить, что для FileZilla требуются также сторонние библиотеки инструментов, обеспечивающие работу с криптографическими алгоритмами (nettle), а также для отрисовки графического пользовательского интерфейса (GUI) — wxWidgets. Специфические требования всегда указываются разработчиками ПО в файлах README или INSTALL, входящих в архив пакета или исходных кодов.

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

Обычно такие пакеты имеют идентичные с оригинальными наименования, но оканчивающиеся на «dev», к примеру nettle-3.1-dev или wx-gtk-base-dev. В данном примере предполагается, что данные пакеты установлены и правильно настроены.

Ручная сборка

Ручная сборка из исходных кодов выполняется следующим образом:

Для кода на процедурном C:

Здесь «program» — это собранный исполняемый файл, который можно теперь запускать:

Теперь стоит рассмотреть чуть более сложный вариант. Например, исходный код приложения состоит из классов, содержащихся в отдельных файлах. Класс BaseClass, заголовочный файл BaseClass.h:

Реализация, файл BaseClass.cpp:

Класс ChildClass, заголовочный файл ChildClass.h:

Файл с функцией main, main.cpp:

Пусть все приведённые файлы находятся в директории «HelloWorld», причём заголовочные файлы в поддиректории «include», а файлы реализаций *.cpp — в «src». Чтобы построить исполняемый файл в данном случае нужно выполнить следующие команды:

Определите аргументы программы! Пример: ./program 5.25

Автоматическая сборка — написание Make-файлов

Конечно, для больших проектов ручная сборка — это крайне неудобно. Именно поэтому и была когда-то давно разработана утилита make, позволяющая производить построение проектов любой сложности. Она выполняет инструкции и правила по автоматизации процесса сборки, хранящиеся в специальных Make-файлах.

Синтаксис Makefile’а следующий:

Это описание цели, в котором указываются зависимости dependencies, команды для достижения цели system command, а также сама цель target. Символ табуляции [tab] является обязательным и только этим символом обозначаются команды для достижения целей. Например, для данного примера, одна из целей будет иметь следующее описание:

Эта запись означает, что для получения объектного файла BaseClass.o нужно использовать исходный код из файла src/BaseClass.cpp, использовав команду g++, которой, в свою очередь, передаются соответствующие параметры.

Для вышеупомянутого проекта HelloWorld Make-файл будет иметь следующий вид:

Make-фалы обычно имеют имя Makefile. Это, своего рода унификация для того, чтобы утилита make самостоятельно отыскивала и распознавала Make-файлы без надобности явно их ей передавать в качестве аргумента в командной оболочке.

Теперь нужно выполнить команду make и запустить построенный исполняемый файл:

Но даже и такой вариант для больших проектов не подойдёт, поскольку придётся обрабатывать практически каждый файл отдельно, задавая для них описания целей. Используя правила implicit rules, а также predrfined implicit rules можно заставить Make-файл автоматически обрабатывать содержимое проекта и генерировать описания целей для его компонентов. Для того, чтобы составлять универсальные Make-файлы нужно придерживаться определённых правил или даже стандартов, определяющих структуру всего проекта, например:

  1. Имя конечного исполняемого файла должно совпадать с папкой проекта.
  2. Заголовочные файлы и файлы реализаций находятся в отдельных (include и src соответственно) поддиректориях.
  3. Функция main находится в отдельном файле, расположенном в корне проекта над директориями src и include.
  4. Объектные файлы должны создаваться в отдельной поддиректории, например obj.
  5. Конечный исполняемый файл должен создаваться в отдельной поддиректории, например build.

Make-файл, удовлетворяющий этим требованиям для данного проекта HelloWorld может иметь такой вид:

Обращение к переменным производится с помощью конструкции $(VALUE). Запись SOURCES=$(wildcard $(MAIN) $(SRC)/*.cpp) указывает, что исходные тексты будут искаться в поддиректории src по маске *.cpp и в файле main.cpp. А конструкция:

описывает, как будут генерироваться цели для создания объектных файлов в каталоге obj из исходных текстов файлов в каталоге src. Цель clean подразумевает удаление всего, что связано с предыдущими сборками. Функция filter-out, присутствующая в списке команд для этой цели, нужна для того, чтобы при очистке не удалились нужные файлы, в данном случае — main.cpp. Цель .PHONY описывает зависимости, не связанные напрямую с файлами.

Читайте также:  Установка каркасного бассейна intex на даче

Теперь, после выполнения команды make:

исполняемый файл будет в директории build:

Объектные файлы — в директории obj:

Следует отметить, что грамотное составление универсальных Make-файлов требует предварительно и внимательного изучения соответствующей документации, например по адресу http://www.gnu.org/software/make/manual/, где можно найти исчерпывающее описание для более подробного изучения данной темы.

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

источник

Как установить tar gz в Ubuntu

Не для всех программ уже есть готовые пакеты для вашего дистрибутива, также новые версии программ могут распространяться только в форме tar.gz архива или просто исходников.

У многих новых пользователей Ubuntu возникает вопрос, как же устанавливать программы или игры в формате tar.gz. Ведь менеджером пакетов они не открываются, а двойным кликом открывается архив. Дело в том, это на самом деле еще не программа, это действительно архив. Архив исходных кодов программы, и если говорить простыми словами, то это набор текстовых файлов с инструкциями на определенном языке программирования.

Чтобы все это превратилось в готовую к установке и выполнению программу нужно выполнить сборку (компиляцию). Но не бойтесь всех этих новых терминов, на самом деле все намного проще чем кажется, вам не нужно будет ничего ни писать, ни исправлять, достаточно только ввести несколько команд в терминале. В этой инструкции будет рассмотрена установка tar.gz в Ubuntu.

Подготовка системы

Готовить почти нечего, компилятор GCC уже предустановлен в системе, и уже можно переходить к сборке. Но мы хотим не просто установить программу, а так чтобы ею потом можно было управлять с помощью пакетного менеджера, например, при удалении полностью стереть все ее файлы, не оставляя мусора в системе. Поэтому придется установить дополнительные утилиты для создания и сборки пакетов Ubuntu.

Наберите следующую команду для установки этих инструментов:

sudo apt-get install checkinstall build-essential autoconf automake

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

Теперь можно переходить к сборке программы и установке tar.gz Ubuntu. Неважно в какой папке будет находиться архив, главное, чтобы вы знали где. Первой командой, которую мы выполним будет переход в папку с архивом:

Дальше извлечем исходники из архива с программой:

И переходим в папку с только что полученными исходными файлами:

Обычно программы в Linux состоят из большого количества файлов, и при их сборке нужны различные параметры и опции, поэтому вместо того, чтобы запускать компилятор для каждого из файлов вручную, в Linux используется утилита make. Она на основе файла Makefile подбирает правильные команды компиляции для каждого файла и собирает всю программу.

Программы часто используют внешние библиотеки, а в разных дистрибутивах путь к файлам библиотек разный, поэтому перед тем, как запускать make нужно выполнить скрипт configure для проверки зависимостей. Этот скрипт можно создать на основе файла configure.in. Но это необязательно, во многих программах скрипт конфигурации не предусмотрен и программа не требует проверки зависимостей перед сборкой, тогда файла configure.in просто нет в папке с исходниками. Если так, то просто пропустите следующие инструкции и переходите к сборке.

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

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

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

Если все прошло успешно установка из исходников Ubuntu может быть продолжена. Теперь, наверное, самое сложное, запускаем configure:

Если скрипт обнаружит что какой-то библиотеки нет (File имя_файла_библиотеки.so not found), скомпилировать пакет не получится, берем название библиотеки и ищем в Google как называется ее пакет в Ubuntu, а затем устанавливаем его через apt-get. Обычно это libимя_библиотеки или libимя_библиотеки-dev.

Например, нам не хватало libfuse.so. С помощью поисковой системы мы узнали, что эта библиотека есть в пакете libfuse. Теперь просто ее установим:

Затем опять выполняете configure, чтобы посмотреть нет ли других неразрешенных зависимостей. И повторяете все до тех пор, пока не увидите слово Sucessful или Complete в конце вывода скрипта.

Читайте также:  Установка linux на sony xperia

И только теперь установка tar.gz в Ubuntu может быть продолжена и программа собрана. Команда make скомпилирует программу из исходников, а скрипт checkinstall соберет deb пакет:

Самое сложное уже позади, на этом этапе ошибки почти никогда не возникают.

И только теперь мы получили программу, которую можно устанавливать с помощью центра приложений или в терминале. Установка с помощью dpkg будет выглядеть вот так:

источник

Школа Linux

Установка программ из tar.bz2 (исходных кодов)

Здравствуйте! После долгого перерыва я возвращаюсь опять к написанию статей. И в этой статье я хочу рассказать вам как можно установить программу из файлов форматом tar.bz2. Сначала вкратце расскажу что это такое. Tar.bz2 представляет собой сжатый архив, с сохранением прав для всех файлов. Если быть более точным, то это не один архив, а целых два. Сначала файлы архивируются с помощью tar (без сжатия) — отсюда и tar в названии архива, а потом еще архив tar сжимается при помощи bzip2. Выглядит это вроде нашей русской матрешки, архив запаковывается в другой архив. В архиве tar.bz2 обычно хранятся исходные тексты программ. Выглядит это вроде нашей русской матрешки, архив запаковывается в другой архив. В архиве tar.bz2 обычно хранятся исходные тексты программ. Но так бывает не всегда, иногда в этом архиве хранятся и уже скомпилированные бинарные файлы. Чтобы нам начать устанавливать программу из этого формата, нам сначала необходимо распаковать его. Я хочу рассказать вам об установке Midnight Commander (консольный файловый менеджер) из этого формата. Для этого нам потребуется сам архив, который вам будет необходимо скачать по ссылке: http://www.midnight-commander.org/downloads/mc-4.7.5.1.tar.bz2 Я сохранил его в домашней папке. Далее начинаем распаковку, для этого в терминале набираем:

После этой процедуры у нас должен появиться файл mc-4.7.5.1.tar, как уже заметно, окончание bz2 исчезло, значит мы его расжали.

Далее распаковыаем этот архив:

Все, у нас все файлы из архива распаковались в каталог mc-4.7.5.1, поэтому заходим в него:

И смотрим, что у нас там появилось:

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

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

Эта команда сконфигурирует исходные тексты под ваш дистрибутив linux. У меня эта команда в конце выдала такую ошибку, у вас ее может и не быть, а может быть совершенно другая, все зависит от версии вашего дистрибутива:

В этой ошибке сказано, что отсутствует библиотека libglib2.0-dev. Чтобы исправить эту ошибку пришлось доустановить эту библиотеку:

После установки этой библиотеки надо еще раз запустить configure. Но и на этот раз появилась ошибка:

Поэтому доустанавливаем и эту библиотеку:

После этого еще раз запускаем configure и на этот раз все прошло удачно. Поэтому далее мы начнем выполнять компилирование:

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

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

Но команда make install может нарушить работоспособность вашей системы. В linux для этого есть специальная утилита checkinstall, которая преобразует вашу программу в пакет, родной для вашего дистрибутива (rpm, deb). Я воспользуюсь этой утилитой, но для начала я ее установлю:

Так как мне необходим именно дебиановский пакет, то мне будет необходимол указать это в параметре утилиты checkinstall, кстати замечу, что эту команду нам необходимо запустить от root`а:

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

Вот в принципе и вся установка.

Конкурсы, конференции, викторины, олимпиады и другие мероприятия для учащихся и педагогов с действительно ценными призами. АНО «ЦПИ «Ариадна»

источник

Добавить комментарий