Компиляция и установка программ из исходников
Не редко необходимые пакеты можно найти только в виде исходных текстов, в данной статье описывается метод установки пакета из исходных текстов.
Распаковка
Программы обычно распространяются в упакованных архивах, это файлы с расширениями
Нужно понимать отличие между архиватором и упаковщиком.
Для архивации директорий и файлов используется программа 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. Для установки выполните
Для создания и установки deb-пакета необходимо выполнить
Правильная установка(Вариант №2)
Быстрое создание deb-пакета «вручную».
Установка (вариант №3)
Процедура создания deb-пакета подробно описана в данной статье.
Неправильная установка
Для установки необходимо выполнить
Для удаления пакета, установленного данным способом необходимо выполнить в корневой директории исходников программы (там где вы запускали make install).
Ошибки
Часто на этапе конфигурации конфигуратор сообщает, что нехватает той или иной библиотеки. Название библиотеки, которое он сообщает, не всегда соответствует названию пакета в Ubuntu. Из собственного опыта могу посоветовать поискать в Синаптике нужный пакет, исключив префикс lib, если нашлось несколько пакетов различающихся приставкой -dev в названии, то вам нужно установить именно -dev пакет (обычно он тянет за собой и не -dev пакет). Можно ещё поискать с помощью http://packages.ubuntu.com/, введя имя библиотеки в поиск по содержимому пакетов, аналогично, если найдётся dev и не dev, нужны оба . Ну или просто поискать в Google.
Необходимое программное обеспечение
Пакеты с буквами mm в конце описания — это пакеты для C++ программ. Список для bmpx, но подойдёт почти для любой GTK2/Gnome программы. Так что если не получается собрать, то посмотрите на этот список и сверьте с тем что у вас установлено.
Как мне установить файл.tar.gz (или.tar.bz2)?
Я скачал файлы tar.gz. Но я не знаю, как его установить. Как мне установить этот тип файла?
13 ответов
Первое, что вам нужно сделать, это извлечь файлы из архива tar в папку. Давайте скопируем файлы на ваш рабочий стол. Вы можете извлечь архив, щелкнув правой кнопкой мыши значок файла архива в браузере файлов и нажав соответствующую запись в контекстном меню. Извлечение архива должно создать новую папку с аналогичным именем. например program-1.2.3 , Теперь вам нужно открыть свой терминал и перейти в этот каталог с помощью следующей команды:
Убедитесь, что вы прочитали файл с именем INSTALL , INSTALL.txt , README или что-то подобное, если один был извлечен. Вы можете проверить, существует ли такой файл из терминала, используя ls команда. Файл можно открыть и прочитать с помощью команды:
Где INSTALL — это имя вашего файла. Этот файл будет содержать правильные шаги для продолжения процесса установки. Обычно три «классических» шага:
Вам также может понадобиться установить некоторые зависимости, если, например, работает configure запросил у вас сообщение об ошибке, какие зависимости вы пропустили. Вы также можете использовать checkinstall вместо make install , Смотрите здесь https://help.ubuntu.com/community/CheckInstall
Помните, что ваш пробег может отличаться.
Вы не можете «установить» .tar.gz файл или.tar.bz2 файл. .tar.gz файлы — сжатые архивы gzip, сжатые архивы как .zip файлы. Файлы.bz2 сжимаются с помощью bzip2. Вы можете извлечь .tar.gz файлы, использующие:
Точно так же вы можете извлечь.tar.bz2 файлы с
Если вы хотите, чтобы файлы распаковывались во время распаковки, добавьте v :
Даже если у вас нет подключения к Интернету, вы все равно можете использовать систему управления пакетами Ubuntu, просто загрузите .deb файлы с http://packages.ubuntu.com/. Не забудьте также скачать зависимости.
Чтобы упростить установку пакетов в автономном режиме, см. Вопрос » Как установить программное обеспечение в автономном режиме»?,
Как вы компилируете программу из источника
- открыть консоль
- используйте команду cd перейти к правильной папке. Если есть файл README с инструкциями по установке, используйте его.
извлечь файлы с помощью одной из команд
- Если это tar.gz использовать tar xvzf PACKAGENAME.tar.gz
- если это использовать tar.bz2 tar xvjf PACKAGENAME.tar.bz2
Загрузите пакет из источников программного обеспечения или из центра программного обеспечения.
Если вы устанавливаете пакет из источников программного обеспечения и не загружаете его самостоятельно, вы получите новые обновления для этого пакета и установите их через диспетчер обновлений.
Вы можете просто установить MYPACKAGE набрав в терминале:
sudo apt-get install MYPACKAGE
или с помощью программного центра и поиска MYPACKAGE , Но если это не так, идите с источником..
Перво-наперво
Как правило, не рекомендуется загружать и устанавливать приложения из интернет-файлов. Большинство приложений для Ubuntu доступны через «Ubuntu Software Center» в вашей системе (например, K3B ). Установка из Центра программного обеспечения намного безопаснее, намного проще и позволит приложению получать обновления из Ubuntu.
Тем не менее, как установить tar пакеты
Лучший способ — сначала загрузить пакеты tar.bz2 и tar.gz в вашу систему. Затем нажмите правой кнопкой мыши на файл и выберите извлечь, чтобы распаковать файлы. Откройте расположение извлеченной папки, найдите файл Readme и дважды щелкните его, чтобы открыть его, и следуйте инструкциям по установке конкретного пакета, поскольку для правильной установки файла могут быть разные инструкции, как в обычной процедуре. возможно, не сможет предотвратить без каких-либо ошибок.
Это только для .tar.* файлы, код которых предварительно скомпилирован, но упакован в файл tar.
Хорошо, это довольно сложная задача для новичка, но просто следуйте моим инструкциям, и все должно быть в порядке.
Прежде всего, загрузите .tar.* файл, и сохраните его. Не открывай это. (В этих примерах я буду устанавливать бета-сборку Dropbox, потому что я все равно собирался ее установить, поэтому я решил, что я также могу задокументировать установку.)
После того, как вы загрузили свой файл, (при условии, что вы сохранили его в Downloads ,) введите следующее:
ПРИМЕЧАНИЕ: используйте имя любого файла, который вы скачали. (например, для 64-битной сборки Firefox Nightly 19.0a1 вы должны набрать sudo cp firefox-19.0a1.en-US.linux-x86_64.tar.bz2 /opt/ )
Теперь перейдите к /opt/ каталог, распакуйте программу и удалите старый файл:
(снова используйте имя загруженного файла. Не забудьте расширение.)
Хорошо, проверьте, как называется извлеченная папка:
вы получите что-то вроде этого:
Хорошо, в нашем примере мы установили Dropbox, и единственная папка там называется .dropbox-dist , Это, вероятно, папка, которую мы хотим, поэтому подключите ее к следующему шагу (добавьте / до конца, так как это папка.)
Хорошо, теперь он помечен как исполняемый, поэтому пришло время создать символическую ссылку (это то, что позволяет запустить его из Терминала):
ПРИМЕЧАНИЕ: это sudo ln -s /opt/
Ладно, все готово. Программа теперь установлена и запущена из Терминала.
Что это? Вы говорите, что хотите запустить его из программы запуска, и хотите, чтобы на нем была иконка? Нет проблем!
Эта часть довольно проста:
ПРИМЕЧАНИЕ. Если вы устанавливаете НАД предыдущей установкой, используйте ls -a /usr/share/applications и искать уже существующий файл.desktop. Вместо этого вставьте имя этого файла.
Теперь вот где вы создаете иконку. Вот хороший шаблон; отредактируйте его соответствующим образом.
Вы можете полностью отключить опцию MimeType. Это может быть очень плохо, если вы этого не сделаете.
Как мне установить файл .tar.gz (или .tar.bz2)?
Я скачал файлы tar.gz. Но я не знаю, как его установить. Как мне установить этот тип файла?
14 ответов
Вы не можете «установить» файл .tar.gz или .tar.bz2. Файлы .tar.gz представляют собой сжатые архивами gzip, сжатые архивы, такие как файлы .zip . Файлы .bz2 сжимаются с помощью bzip2. Вы можете извлечь .tar.gz файлы, используя:
Аналогично вы можете извлечь файлы .tar.bz2 с помощью
Если вы хотите, чтобы файлы извлекались во время распаковки, add v :
Даже если у вас нет подключения к Интернету, вы все равно можете использовать систему управления пакетами Ubuntu, просто загрузите файлы .deb с http: //packages.ubuntu. ком / . Не забудьте также загрузить зависимости.
Чтобы упростить установку пакетов в автономном режиме, см. Вопрос Как установить программное обеспечение в автономном режиме? .
Сложно ответить конкретно, поскольку у каждого программного обеспечения может быть свой процесс сборки, даже если они заархивированы как TAR / GZ
Что я могу сказать о большинстве исходных кодов, о которых мне известно, так это Сначала вам нужно извлечь архив tarball в папку по вашему выбору. Тогда большинство исходных кодов полагаются на программы AUTOCONF и MAKE, поэтому вам нужно будет использовать следующие команды:
, чтобы собрать свои двоичные файлы, а затем:
Для установки. это в системе.
«./ configure» использует механизм autoconf для получения информации о вашей системе и подготовки сценариев сборки в исходном файле для создания соответствующих двоичных файлов, совместимых с вашей установкой. «make» вызовет саму сборку, которая создаст двоичные файлы из исходного кода. «make install» затем скопирует двоичные файлы, документацию, файл конфигурации и т. д. в соответствующие папки вашей системы, чтобы программное обеспечение было доступно пользователям.
Это очень простое объяснение, реальный ответ таков: прочитайте документацию, поставляемую с исходным кодом . Только там вы точно будете знать, как его построить.
Прежде всего, важно установить пакет build-essential , он содержит все программы, необходимые для самостоятельной компиляции.
После прочтения файла INSTALL, как указано выше, и выполнения предварительных условий, вы можете творить чудеса.
Первое, что вам нужно сделать, это извлечь файлы из архива tar в папку. Давайте скопируем файлы на ваш рабочий стол. Вы можете извлечь архив, щелкнув правой кнопкой мыши значок файла архива в браузере файлов и нажав соответствующую запись в контекстном меню. Извлечение архива должно создать новую папку с аналогичным именем. например program-1.2.3 . Теперь вам нужно открыть свой терминал и перейти к этому каталогу с помощью следующей команды:
Убедитесь, что вы читаете файл с именем INSTALL , INSTALL.txt , README или что-то подобное, если один был извлечен. Вы можете проверить, существует ли такой файл из терминала, с помощью команды ls . Файл можно открыть и прочитать с помощью команды:
Где INSTALL — имя вашего файла. Этот файл будет содержать правильные шаги для продолжения процесса установки. Обычно три «классических» шага таковы:
Вам также может понадобиться установить некоторые зависимости, если, например, при запуске configure вам будет выдан список ошибок, которые вы пропустили. Вы также можете использовать checkinstall вместо make install . Смотрите здесь https://help.ubuntu.com/community/CheckInstall
Помните, что ваш пробег может отличаться.
Перво-наперво
Как правило, не рекомендуется загружать и устанавливать приложения из файлов Интернета. Большинство приложений для Ubuntu доступны через «Ubuntu Software Center» в вашей системе (например, K3B ). Установка из Центра программного обеспечения намного безопаснее, намного проще и позволит приложению получать обновления из Ubuntu.
Тем не менее, как установить tar пакеты
Лучший способ — это сначала загрузить пакеты tar.bz2 и tar.gz в вашу систему. Затем нажмите правой кнопкой мыши на файл и выберите извлечь, чтобы распаковать файлы. Откройте расположение извлеченной папки и найдите файл Readme , дважды щелкните его, чтобы открыть его, и следуйте инструкциям по установке конкретного пакета, поскольку для правильной установки могут быть разные инструкции. файл, который обычная процедура не сможет предотвратить без каких-либо ошибок.
Вы всегда должны пытаться установить программное обеспечение из репозиториев, будь то официальное, PPA / любой другой неофициальный репозиторий. Таким образом, вы получите все стабильные версии, обновления безопасности и новые функции, пока вы устанавливаете другие системные обновления. Еще одним преимуществом является то, что вам не нужно беспокоиться о сборке, зависимостях и более сложной деинсталляции (поскольку приложение не будет отображаться в синаптическом режиме) с файлами tar.
Например, вы можете установить mysql, установив пакет mysql-server.
Если вы действительно хотите использовать tar-файлы, обычно запускается процесс (для make install может потребоваться sudo):
Обратите внимание, что некоторые из приведенных выше команд могут быть не нужны к любым файлам readme в файле tar или попробуйте запустить ./configure —help
Как скомпилировать программу из источника
- открыть консоль
- с помощью команды cd перейти к нужной папке. Если есть файл README с инструкциями по установке, используйте его.
извлекать файлы с помощью одной из команд
- Если это tar.gz , используйте tar xvzf PACKAGENAME.tar.gz
- , если это tar.bz2 использовать tar xvjf PACKAGENAME.tar.bz2
Загрузите пакет из источников программного обеспечения или из центра программного обеспечения.
Если вы устанавливаете пакет из источников программного обеспечения и не загружаете его самостоятельно, вы получите новые обновления для этого пакета и установите их через диспетчер обновлений.
Вы можете просто установить MYPACKAGE , набрав в терминале:
sudo apt-get install MYPACKAGE
или используя центр программного обеспечения и выполнив поиск MYPACKAGE . Но если это не так, идите с источником ..
С официального сайта Linux Mint
Установка из архивов (.zip tar.gz и т. Д.):
Эти архивы как правило, содержат источник пакета. У каждого из них обычно свой подход к установке. Я буду обсуждать общий метод, который предположительно будет работать для всех из них.
бизон или бизон ++
Поскольку эти архивы содержат исходные тексты, вашей системе требуются необходимые языки программирования для компиляции и компоновки исходного кода. Таким образом, указанных выше пакетов общих требований может быть недостаточно для вас. В этом случае вам необходимо установить необходимые пакеты через один из процессов # 1, # 2, # 3 (требуется подключение к Интернету). Вы можете узнать о зависимостях вашего программного обеспечения в файле readme, включенном в архив.
открыть архивы с помощью диспетчера архивов, дважды щелкнув по нему, а затем извлечь его.
путь к папке извлечения
- внутри извлеченной папки, посмотрите внимательно . [ 1127]
а. Если вы найдете файл с именем configure, то
. Если первый код не может быть выполнен, запустите этот код перед кодами, указанными выше:
b. Если вы найдете файл с именем install.sh, тогда
./install.sh или sudo ./install.sh (если требуется разрешение root)
или вы можете дважды щелкните по нему и выберите запустить в терминале или просто запустить.
N.B .: иногда есть файл, что-то вроде your_software_name.sh вместо install.sh . В этом случае вы должны заменить install.sh на правильное имя в предыдущих кодах.
с. Если вы найдете файл с именем install, тогда
./install или sudo ./install (если для этого требуется разрешение root)
или вы можете дважды щелкнуть это и выберите запустить в терминале или просто запустить.
д. Если вы найдете файл с именем make (если нет файла конфигурации), то код
e. Если вы все еще не можете найти требуемые файлы
, возможно, они находятся в специальной папке (обычно в папке с именем bin ). Перейдите в эту папку с помощью команды cd с соответствующим путем, а затем посмотрите снова и выполните тот же процесс.
Часто программы, предлагаемые в виде файлов tar.gz, не нуждаются в компиляции из исходного кода; их просто нужно разархивировать, вставить в соответствующий каталог и связать с исполняемым путем. Вот несколько примеров команд, которые я использовал сегодня.
Каталоги, которые я использовал, были проинформированы этим постом: Где устанавливать программы?
Перед компиляцией извлеченного tar.gz-, tar bz2-, tar.xz-архивы необходимо сделать следующее:
Сначала необходимо проверить существование пакета Ubuntu для приложения, которое Вы пытаетесь скомпилировать.
Например, при попытке скомпилировать Сочувствие, необходимо искать архив пакета его на packages.ubuntu.com для выпуска (или для всех выпусков).
Результаты для Сочувствия:
- надежный человек (14.04LTS) (гном): GNOME многопротокольный чат и 3.8.6-0ubuntu9 клиент вызова: amd64 arm64 armhf i386 powerpc ppc64el
- испытанные обновления (гном): GNOME многопротокольный чат и 3.8.6-0ubuntu9.2 клиент вызова: amd64 arm64 armhf i386 powerpc ppc64el
- гостеприимный (16.04LTS) (гном): GNOME многопротокольный чат и клиент вызова [вселенная]
3.12.11-0ubuntu3: amd64 arm64 armhf i386 powerpc ppc64el s390x - ловкий (гном): GNOME многопротокольный чат и клиент вызова [вселенная]
3.25.90+really3.12.14-0ubuntu1: amd64 arm64 armhf i386 ppc64el s390x - бионический (гном): GNOME многопротокольный чат и клиент вызова [вселенная]
3.25.90+really3.12.14-0ubuntu1: amd64 arm64 armhf i386 ppc64el s390x
Затем установите существенный для сборки пакет с
Поскольку мы знаем, что пакеты имеют зависимости (и на выполнении и на компиляции), таким образом, мы должны установить зависимости времени компиляции (также известный как зависимости сборки). Необходимо включить Репозитории исходного кода (deb-src) в программном обеспечении и Обновлениях ( software-properties-gtk ) и затем выполненный
Затем можно извлечь загруженный исходный архив и попытку скомпилировать его обычным способом
Примечание: в этом примере ./configure этап перестанет работать на Гостеприимной Ubuntu (16.04 LTS) из-за того, что зависимости от версий библиотеки не удовлетворены.
В этом случае у Вас есть две опции — используют более старую предварительно скомпилированную упакованную версию из репозитория, пытаются найти более новую версию в PPAs или обновить целую Ubuntu для следующего выпуска (предпочтительно LTS).
Это только для .tar.* файлов, код которых предварительно скомпилирован, но упакован в tar-файл.
Хорошо, это довольно сложная задача для новичка, но просто следуйте моим инструкциям, и все должно быть в порядке.
Прежде всего, загрузите файл .tar.* и сохраните его . Не открывай это. (В этих примерах я буду устанавливать бета-версию Dropbox , потому что я все равно собирался ее установить, поэтому я решил, что я также могу задокументировать установку.)
После вы загрузили свой файл, (при условии, что вы сохранили его в Downloads ), введите следующее:
ПРИМЕЧАНИЕ: используйте имя любого файла, который вы загрузили. (например, для 64-разрядной сборки Firefox Nightly 19.0a1 вы должны набрать sudo cp firefox-19.0a1.en-US.linux-x86_64.tar.bz2 /opt/ )
Теперь перейдите в каталог /opt/ , извлеките программу и удалите старый файл:
(снова используйте имя загруженного файла. Не забудьте расширение.)
Хорошо, проверьте, как называется извлеченная папка:
[ 1132] вы получите что-то вроде этого:
Хорошо, в нашем примере мы установили Dropbox, и единственная папка там называется .dropbox-dist . Это, вероятно, та папка, которую мы хотим, поэтому подключите ее к следующему шагу (добавьте / в конец, поскольку это папка.):
Хорошо, теперь она помечена как исполняемая, поэтому пришло время создать символическую ссылку (это то, что позволяет запускать ее из Терминала):
ПРИМЕЧАНИЕ: это sudo ln -s /opt/
Хорошо, все готово. Программа теперь установлена и запущена из Терминала.
Что это? Вы говорите, что хотите запустить его из программы запуска, и хотите, чтобы на нем была иконка? Нет проблем!
Эта часть довольно проста:
ПРИМЕЧАНИЕ. Если вы устанавливаете OVER предыдущей установки, используйте ls -a /usr/share/applications и найдите уже существующий файл .desktop. Вместо этого вставьте имя этого файла.
Теперь вот где вы создаете иконку. Вот хороший шаблон; отредактируйте его соответствующим образом.
Вы можете полностью отключить опцию MimeType. Это может быть очень плохо, если вы этого не сделаете.