команда configure в linux

Команда configure в linux

Библиотека сайта rus-linux.net

Три шага до любви к Свободному софту: configure, make, make install

Недавно я перечитал статью Стивена Гудвина «How to hate free software in 3 easy steps» (перевод на русский язык сделан А.Дмитриевым: «Три шага до ненависти к свободному ПО»). Не будучи программистом, я тем не менее, самостоятельно установил несколько дистрибутивов. И, честно говоря, у меня есть претензии к этой статье.

К данной статье также были комментарии, в которых утверждалось, будто не-программисты не собирают программы из исходного кода, будто сама сборка из исходников требует квалификации программиста, и что другие операционные системы не «падают», когда вы «химичите» с их разделами.

Химичим с основными системными файлами, аптечка первой помощи

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

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

И наконец, версии библиотек UNIX-подобных систем весьма развиты: вы не только можете иметь несколько версий библиотеки, мягкие ссылки и правила для динамической линковки позволяют вам создавать специальную версию библиотеки, которая будет «обслуживать» единственную программу, безо всякого ущерба для остальных. Короче, у вас мало шансов превратить Линукс систему в невосстановимый хлам, даже «химича» с системными файлами, кроме того случая, когда вы являетесь системным администратором, вооруженным молотком и соответствующими навыками.

Что касается повреждения жесткого диска, то это вина не GNU или BSD и даже (обычно) не Windows.

Химичим с разделами жесткого диска, основные ловушки

Первой проблемы легко избежать: не удаляйте старое ядро, до тех пор, пока не убедитесь, что новое работает. И всегда обновляйте LILO или GRUB после любых действий c ядром.

Во втором случае, когда вы начинаете изменять размеры, уничтожать и создавать разделы по всему диску, запаситесь эффективным LiveCD (Knoppix очень рекомендуется), не только потому, что это хороший инструмент для восстановления, просто лучше не работать сразу с «живой» системой (не потому, что это невозможно, просто это избавит вас от «жонглирования» командой chroot все время). Кроме того, это позволит вам возвратиться к исходному состоянию и/или обновить вашу /etc/fstab в течение пары минут. Больше того, при редактировании этого файла, у вас есть ряд опций.

Падение ядра

Если после всего этого вы настаиваете на загрузке данного модуля и форсируете этот процесс, то молитесь. Просто молитесь. Горячо.

Компиляция: когда стоит ею заниматься

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

Короче: а так ли вам необходимо устанавливать из исходников?

Компиляция 2: что стоит делать, и чего не стоит.

Если вы не смогли найти никаких инструкций по сборке, попробуйте сразу запустить make. Если это не сработает, программа make сообщит вам, чего не хватает. Вернитесь к началу, намыльте, промойте, повторите.

Начало конфигурирования

Компиляция закончена, что дальше?

Сразу после этого вы можете перезапускать Xorg и посмотреть заработает ли DRI (Direct Rendering Infrastructure): на некоторых системах он запустит Xorg и GNOME, KDE или Xfce вполне нормально, до тех пор пока вы не начнете настраивать фон; в других случаях появится черный экран, а иногда и «мертвое» зависание системы, так что неплохо заране поставить в файле /etc/inittab initial init level в значение 3 (Mandriva, SuSE) или 1 (Ubuntu), или иметь где-нибудь запасной образ ядра.

Заключение

Информация об авторских правах

This entry is (C) Copyright by its author, 2004-2008. Unless a different license is specified in the entry’s body, the following license applies: «Verbatim copying and distribution of this entire article is permitted in any medium without royalty provided this notice is preserved and appropriate attribution information (author, original site, original URL) is included».

Читайте также:  код ошибки 10001 windows 10

Источник

Компиляция и установка программ из исходников

Содержание

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

Распаковка

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

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

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

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

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

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

Сборка пакета

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

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

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

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

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

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

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

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

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

Установка

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

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

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

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

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

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

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

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

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

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

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

Ошибки

Необходимое программное обеспечение

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

Источник

Компиляция программ Linux

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

В этой статье мы рассмотрим, как выполняется компиляция программ Linux, как происходит процесс компиляции, а также рассмотрим насколько гибко вы сможете все настроить.

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

Мы будем компилировать программы, написанные на Си или С++, так как это наиболее используемый язык для программ, которые требуют компиляции. Мы уже немного рассматривали эту тему в статье установка из tar.gz в Linux, но та статья ориентирована больше на новичков, которым нужно не столько разобраться, сколько получить готовую программу.

В этой же статье тема рассмотрена более детально. Как вы понимаете, для превращения исходного кода в команды процессора нужно специальное программное обеспечение. Мы будем использовать компилятор GCC. Для установки его и всех необходимых инструментов в Ubuntu выполните:

sudo apt install build-essential manpages-dev git automake autoconf

Затем вы можете проверить правильность установки и версию компилятора:

Но перед тем как переходить к самой компиляции программ рассмотрим более подробно составляющие этого процесса.

Как выполняется компиляция?

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

Читайте также:  пол лавки как пишется

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

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

Компиляция программ Linux

Получение исходников

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

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

git clone https://github.com/vim/vim

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

Настройка configure

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

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

Также для создания этого скрипта можно воспользоваться утилитой automake:

Утилита automake и другие из ее набора генерируют необходимые файлы на основе файла Mackefile.am. Этот файл обязательно есть в большинстве проектов.

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

Рассмотрим наиболее часто используемые, стандартные для всех программ опции:

Во время настройки утилита будет проверять, есть ли все необходимые библиотеки в системе, и если нет, вам придется их установить или отключить эту функцию, если это возможно. Например, может возникнуть такая ошибка: no terminal library found checking for tgetent(). configure: error: NOT FOUND!

В таком случае нам необходимо установить требуемую библиотеку. Например, программа предлагает ncurses, поэтому ставим:

sudo apt install libncurces-dev

Сборка программы

Когда настройка будет завершена и Makefile будет готов, вы сможете перейти непосредственно к сборке программы. На этом этапе выполняется непосредственно преобразование исходного кода в машинный. Утилита make на основе Makefile сделает все необходимые действия:

Дальше осталось установить саму программу, если вы использовали опцию prefix, чтобы не устанавливать программу в основную файловую систему, то можно применить стандартную опцию make:

Затем просто установите получившийся пакет с помощью dpkg:

sudo dpkg install vim.deb

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

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

sudo make uninstall

Команда удалит все файлы, которые были скопированы в файловую систему.

Выводы

В этой статье мы рассмотрели, как выполняется компиляция программы Linux. Этот процесс может быть сложным для новичков, но в целом, все возможно, если потратить на решение задачи несколько часов. Если у вас остались вопросы, спрашивайте в комментариях!

На завершение видео о том, что такое компилятор и интерпретатор:

Источник

Команда configure в linux

Система сборки Gwyddion на Unix основана на GNU autotools (autoconf, automake, libtool), так же, как и большинство современного свободного программного обеспечения и программ с открытым исходным кодом под Unix. Если вы когда-либо собирали программы из исходников, вы, вероятно, уже встречались с autotools и знаете, что делать дальше. Этот раздел, тем не менее, будет описывать процесс сборки достаточно детально, чтобы быть понятным и тем, кто ещё этого не делал. Файл INSTALL в каталоге верхнего уровня архива с исходным кодом содержит общие инструкции по установке с помощью GNU autotools.

Краткие инструкции

Если вам уже знакома последовательность действий:

Распаковка исходного кода

Распакуйте архив с исходным кодом командой

заменяя 2.49 текущим номером версии. При этом будет создан каталог gwyddion-2.49 (снова с текущим номером версии вместо 2.49), перейдите с помощью cd в этот каталог. Все остальные действия по сборке будут проходить там.

Читайте также:  когда можно грунтовать наливной пол после заливки

Если в операционной системе отсутствует xz, можно загрузить gwyddion-2.49.tar.gz (сжатый с помощью gzip) вместо предыдущего архива и распаковать его с помощью

Однако, современные Unix и подобные им системы поддерживают и gzip, и xz, и заметно меньший gwyddion-2.49.tar.xz обычно будет более удачным вариантом.

Настройка

PKG_CONFIG_PATH=/opt/gnome/lib/pkgconfig:$HOME/opt/fftw3/lib/pkgconfig
export PKG_CONFIG_PATH

Может потребоваться настроить эти переменные чтобы включить нестандартные каталоги с исполняемыми файлами и библиотеками соответствующих пакетов. Переменные LD_LIBRARY_PATH и DYLD_LIBRARY_PATH обе задают путь поиска для разделяемых библиотек, но первая используется в системах на основе Linux и BSD, в то время, как вторая на OS X.

Может потребоваться настроить эти переменные чтобы включить нестандартные каталоги с заголовочными файлами и библиотеками пакетов, с которыми не шло файлов pkg-config, например, для libTIFF в /usr/local можно установить:

CPPFLAGS=-I/usr/local/include
export CPPFLAGS
LDFLAGS=-L/usr/local/lib
export LDFLAGS

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

Настройки процесса конфигурирования

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

Полный список опций и важных переменных configure можно получить с помощью команды:

Список будет длинным и большая часть опций контроллирует включение/выключение отдельных опциональных возможностей или передачу необходимых флагов компиляции и связывания для различных библиотек. Например, задавая FFTW3_CFLAGS и FFTW3_LIBS можно задать (или переопределить) как будет осуществляться компиляция и связывание с FFTW3. Однако, такое ручное задание является резервным вариантом для гораздо более удобного метода, основанного на использовании pkg-config в том случае если он почему-то не работает.

Некоторые интересные общие опции описаны в следующих параграфах.

Настройки пользователей

C Gwyddion поставляются различные файлы взаимодействия со средой рабочего стола, которые определяют типы MIME, элементы меню, привязки файлов, генерацию миниатюр и т.п. Если Gwyddion устанавливается в системный каталог, они обычно находятся в правильных местах файловой системы. Однако, если вы устанавливаете его куда-то в свой каталог пользователя, то эти файлы нужно поместить в другое место. а именно в определённые скрытые каталоги, начинающиеся с точки в вашем домашнем каталоге.

Настройки создателей пакетов

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

Настройки для разработчиков

Источник

В общем такой команды (./configure ) вообще не существует (у меня стоит Ubuntu 10.4), так вот в help она не описывается, а в способах установке (в справке) метода установки из исходников вообще нет. (есть только описание способа установки из репозиториев и из пакетов)!

Зачем тебе что-то ставить из исходников, если ты не понимаешь что ты делаешь?

>вы знаете или нет почему у меня на убунту 9.10 всё работало, а на убунту 10.4 не работает.
я знаю!
деградируете, да!
прежде чем что-то делать, надо почитать что это, с чем его едят, и КАК едят!

Спасибо за ссылки, НО, я не пытаюсь быть пользователем убунту, я пытаюсь понимать что к чему, и мне (как сказал Галыгин) Срааать :). Что ставить.

А зачем? LFS собираешь? Под Slackware пакеты?

жесть. вот вам популярность линукса на десктопе.

А потом говорят что пользователи убунту-дебилы

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

>Спасибо за ссылки, НО, я не пытаюсь быть пользователем убунту, я пытаюсь понимать что к чему, и мне (как сказал Галыгин) Срааать :). Что ставить.

Под виндой можешь попробовать (тогда на винфак, там мозги поделай и назначь норммального пользователя), удачи 🙂

Выпендрёжники. И на хрена тогда форум. Чтоб вот так вот посылать. Форум для того чтоб если у человека что то не получилось, этому человеку всё разъяснить.

Ну, во-первых: установка из исходников через make install засоряет систему неучтёнными менеджером пакетов файлами. Если захочется их удалить, а источника уже не будет, будешь делать всё руками

Во-вторых, судя по «В общем такой команды (./configure ) вообще не существует» Вы не знаете вообще азов — что такое рабочий каталог, поэтому за установку из исходников лучше Вам пока не браться

Asteronix дело написал. Если ты новичок и тебе говорят «тебе это не под силу», надо задуматься, а не строить из себя.

Форум нужен для разрешения нестандартных проблем

Источник

Образовательный портал