Debian configure нет такого файла или каталога

Обновлено: 07.07.2024

Сначала Вам скорее всего нужно скачать архив с программой, которую Вы хотите установить.

Например, команда для скачивания python3.7:

Затем распаковать архив

tar -xf Python-3.7.0.tgz

И перейти в только что распакованную директорию

В этой директории скорее всего будет находиться скрипт configure

Configure

configure - это не команда linux а скрипт, который обычно лежит в папке к configure


--prefix=PREFIX - папка для установки программы, вместо /, например, может быть /usr/local/, тогда все файлы будут распространены не по основной файловой системе, а в /usr/local;

--bindir=DIR - папка для размещения исполняемых файлов, должна находится в PREFIX;

--libdir=DIR - папка для размещения и поиска библиотек по умолчанию, тоже в PREFIX;

--includedir=DIR - папка для размещения man страниц;

--disable-возможность - отключить указанную возможность;

--enable-возможность - включить возможность;

--with-библиотека - подобно enable активирует указанную библиотеку или заголовочный файл;

--without-библиотека - подобное disable отключает использование библиотеки.

.cpp файлы компилируются в .o файлы

один .h файл может использоваться несколькими .cpp файлами

makefile нужны для того чтобы печатать меньше названий файлов и опций вручную.

С их помощью можно делать build только тех файлов, которые изменились.

Make это инструмент, который вызывает компиллятор. Можно указать тот компиллятор который нужен именно Вам.

С помощью инструкций в makefile можно указать какие именно файлы нужно заново компилировать.

Рассмотрим пример из C++ .

В директории находятся три .cpp файла, два .h файла и три .o файла, оставшиеся от прошлой компиляции.

  • Example.cpp , Example.o
  • Second.cpp , Second.h , Second.o
  • Third.cpp , Third.h , Third.o

Все они нужны для проекта и не могут быть объединены в один файл.

Известно, что Example.cpp включает в себя файл Second.h и других зависимостей не имеет.

Мы хотим, чтобы при изменении самого Example.cpp либо его зависимости Second.h начиналась новая компиляция Example.cpp а затем новый Example.o линковался со старыми Second.o и Third.o

Для этого напишем Makefile aomake

all: simple simple: Example.o Second.o Third.o g++ Example.o Second.o Third.o - Simple Example.o: Example.cpp Second.h g++ -c Example.cpp

Отступы нужно ставить табуляцией

Смотрим на последние две строки:

Если Second.h или Example.cpp (в который включен Second.h) изменились нужно компилировать файл Example.cpp после чего получается object файл Example.o и, как видно из первых двух строк - после обновления Example.o все object файлы линкуются.

Выигрыш в этой ситуации заключается в том, что нам не нужно было перекомпилировать Second.cpp и Third.cpp мы просто перелинковали уже существующие Second.o Third.o с новым Example.o

Чтобы запустить этот файл нужно к команде make добавить опцию f и название файла

У файла Second.cpp две зависимости: Second.h и Third.h

У файла Third.cpp только одна зависимость: Third.h

Учтём эти зависимости в нашем aomake

all: simple simple: Example.o Second.o Third.o g++ Example.o Second.o Third.o - Simple Second.o: Second.cpp Second.h Third.h g++ -c Second.cpp Third.o: Third.cpp Third.h g++ -c Third.cpp Example.o: Example.cpp Second.h g++ -c Example.cpp

Ещё одной полезной опцией является j

-j - jobs Определяет число работ - jobs (commands) которые запускаются одновременно.

Если указано больше чем одна -j опция, то применяться будет последняя.

Если -j опция дана без аргументов make не будет ограничивать количество работ запускаемых одновременно. То есть запуститься сможет неограниченное количество работ одновременно.

Более подробную информацию по Makefile вы можете найти в статье «makefile tutorial»

Install

Make - это не единственный способ устанавливать программы под linux. Более того, за сорок с лишним лет существования утилиты make вышло много её версий.

Прежде чем ставить что-то по-старинке с make install - советую изучить checkinstall

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

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

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

Итак, чтобы собрать что-то из исходников, нужно сначала собрать конфигуратор configure . Если файл с таким именем уже есть, то можно сразу запускать его. Но бывает так, что этого файла нет. Тогда, если это проект на c/c++, а не какой-нибудь Ruby или Go, то правила сборки конфигуратора описаны в файле configure.in . Для сборки конфигуратора необходимо выполнить

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

automake --gnu --add-missing --copy --foreign

autoconf -f -Wall

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

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

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

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

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

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

Дальше инсталлить или мэйкать нет смысла. Прочитал файл readme, там пишут:

Хорошо, нажимаю инсталл

Ну и почему в readme многоуважающими прогерами не указано, какой файл надо обработать? Привожу содержимое папки, куда распаковал содержимое matlab2k9b.tar.gz.

Ну, и как мне инсталлировать или хотя бы собрать deb-пакет в линуксе? Расскажите, как пошагово все это выполнить. Спасибо.

то вызывается общесистемная команда. Вам же нужен ./install (из текущего каталога), ну, или sh ./install (если это скрипт)

В третьих, deb-пакет зачем? Тем более, что у разных дистрибутивов свои форматы бинарных пакетов (deb, rpm и пр). И зависимости тоже неясно кто прописывать будет.

ак и посоветовали в инете, пытаюсь выполнить ./configure

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

Я пытаюсь установить Java SE 7 на моем ubuntu 13.04.

Я уже загрузил tar.gz-файл и извлек его.

Но когда я писал в терминале:

Я вижу это даже после установки пакета Essentials.

4 ответа

Вы запускаете команду ./configure при создании определенных приложений из источника.

Загружаемые файлы установки Java не являются исходным кодом, они представляют собой предварительно скомпилированные двоичные файлы. Инструкции по установке Java см. На странице Ubuntu Wiki , поскольку у нее есть несколько различных опций.

(a.) ПОСЛЕДУЮЩАЯ ИНСТРУКЦИЯ ПО РЕАКЦИИ

  1. Найдите местонахождение загруженного файла Java tar.gz.
  2. Извлеките файл, щелкнув его правой кнопкой мыши и выберите «Извлечь здесь».
  3. Найдите файл «Readme text» и откройте его.
  4. Следуйте инструкциям по установке файла в тексте Readme (установка файла tar.gz может отличаться от обычных команд, используемых для установки файлов в Ubuntu).

(b.) ИСПОЛЬЗОВАНИЕ ОБЩИХ КОМАНДОВ

  1. Откройте терминал, нажав CTRL + ALT + T .
  2. Введите tar -zxvf .tar.gz .
  3. Введите sudo su и введите пароль root.
  4. введите cd и добавьте путь к вашему загруженному файлу . Если вы не знаете путь к загруженному типу файла ls -a , чтобы перечислить все каталоги и найти каталог файлов.
  5. Введите ./ configure и нажмите клавишу ВВОД
  6. Введите make и нажмите клавишу ВВОД.
  7. Введите make install и нажмите клавишу ВВОД.

(c) ИСПОЛЬЗОВАНИЕ ЦЕНТРА ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ UBUNTU

Открыть программный центр Ubuntu

Введите java в поиск

Найдите Java SE 7 и нажмите «установить», чтобы установить его.

У меня есть matlab2k9b.tar.gz. Я его распаковал. Как и посоветовали в инете, пытаюсь выполнить

Дальше инсталлить или мэйкать нет смысла. Прочитал файл readme, там пишут:

Хорошо, нажимаю инсталл

Ну и почему в readme многоуважающими прогерами не указано, какой файл надо обработать? Привожу содержимое папки, куда распаковал содержимое matlab2k9b.tar.gz.

Ну, и как мне инсталлировать или хотя бы собрать deb-пакет в линуксе? Расскажите, как пошагово все это выполнить. Спасибо.

2 ответа 2

то вызывается общесистемная команда. Вам же нужен ./install (из текущего каталога), ну, или sh ./install (если это скрипт)

В третьих, deb-пакет зачем? Тем более, что у разных дистрибутивов свои форматы бинарных пакетов (deb, rpm и пр). И зависимости тоже неясно кто прописывать будет.

ак и посоветовали в инете, пытаюсь выполнить ./configure

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

ответ дан Astrophe 25 July 2013 в 12:25

Преамбула

(a.) СЛЕДУЮЩУЮ ИНСТРУКЦИЮ README

  1. Найдите, где вы скачали файл Java tar.gz.
  2. Извлеките файл, щелкнув по нему правой кнопкой мыши и выбрав «Извлечь здесь».
  3. Найдите файл «Readme text» и откройте его.
  4. Следуйте инструкциям по установке файла в тексте Readme (установка файла tar.gz может отличаться от обычных команд, используемых для установки файлов в Ubuntu).

(б) ИСПОЛЬЗОВАНИЕ ОБЩИХ КОМАНД

  1. Откройте терминал, нажав CTRL + ALT + T .
  2. Введите tar -zxvf .tar.gz .
  3. Введите sudo su и введите свой корневой пароль.
  4. введите cd и добавьте путь к загруженному файлу . Если вы не знаете путь к загруженному файлу, введите ls -a , чтобы вывести список всех каталогов и найти каталог вашего файла.
  5. Введите ./ configure и нажмите клавишу ENTER
  6. Введите make и нажмите клавишу ENTER.
  7. Введите , выполните установку и нажмите клавишу ENTER.

(c) ИСПОЛЬЗОВАНИЕ ПРОГРАММНОГО ЦЕНТРА UBUNTU

Открытый центр программного обеспечения Ubuntu

Введите java в поиске

Найдите Java SE 7 и нажмите «Установить», чтобы установить его.

ответ дан all4naija 25 July 2013 в 12:25

Это произошло со мной при установке контроллера домена samba, и вы можете загрузить пакет, подобный мне, как показано ниже: (Команды относятся к установке samba !!)

и вы в папке сказать ( например: папка1) и когда вы набираете

ответ дан Ahmed Reda 25 July 2013 в 12:25

Команда ./configure запускается только при сборке определенных приложений из исходного кода.

Установочные файлы Java, которые вы скачали, не являются исходным кодом, они являются предварительно скомпилированными двоичными файлами. Для получения инструкций по установке Java посмотрите на страницу в Ubuntu Wiki , так как здесь есть несколько различных опций.

ответ дан Cheesemill 25 July 2013 в 12:25

Другие вопросы по тегам:

Похожие вопросы:

2 ответа

Если файл называется configure.ac,

Если вы не знаете, что делать,

попробуйте $> cat readme

Они должны означать, что вы используете «autoconf» для создания исполняемого файла «configure».

$> autoconf$> ./configure$> make$> make install

Отказоустойчиво для создания скрипта configure является autoreconf -i, который не только заботится о вызове autoconf, но также и множество других инструментов, которые могут понадобиться.

o11c 3 октября 2014, 08:46:14

2 ответа

Не отличное решение (потому что без mysql), но работающее (как и все в мире программирования).

1) brew remove mysql

2) brew install mysql@5.7 (я не знаю почему, но он работает только с этой версией)

Это работает для меня, потому что мне нужен postgresql в первую очередь

Николай Агеев 27 Июн 2019 в 16:16

Вы запускаете команду ./configure в папке с исходным кодом Sphinx? Эти инструкции предназначены для компиляции Sphinx.

pat 26 Июн 2019 в 23:23

Решение

Проблема здесь в следующем:

autom4te: нужен GNU m4 1.4 или более поздней версии: / usr / bin / m4

Похоже, вам нужно установить GNU M4 с Brew:

brew install m4

Таким образом, вы должны получить более новую M4.

В качестве альтернативы вам, возможно, придется (пере) установить «Инструменты командной строки» из XCode. Opens, открывает настройки и кнопка установки «Инструменты командной строки» можно найти в разделе «Загрузки».

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

78 Ответ от alex_q_2000 2019-06-25 16:41:11 (2019-06-25 16:51:53 отредактировано alex_q_2000)

Здравствуйте, saahriktu.

Install
To build Duc with its default options, run:

$ ./configure
$ make
$ sudo make install

To get the required dependencies on Debian or Ubuntu, run:
$ sudo apt-get install libncursesw5-dev libcairo2-dev libpango1.0-dev build-essential

On RHEL or CentOS systems, you need to do:
$ sudo yum install pango-devel cairo-devel tokyocabinet-devel

Имею список файлов:

lsbuild/ configure.ac doc/ gentoo/ INSTALL Makefile.am src/ todo valgrind-suppressionsChangeLog COPYING examples/ img/ LICENSE README.md test.sh* TODO.md

По инструкции делаю следующее:

Здесь хочу ещё раз подчеркнуть, что всё делаю по инструкции с официального сайта.

Получаем 2 файла:

http://images.vfl.ru/ii/1561469009/1dbefea4/27001709_s.jpg

Mageia 7 x86_64, KDE Plasma

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

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

В данном случае, как и в большинстве других с Линуксом имеем другую схему:
1. Заходим на сайт
2. Получаем НЕправильную информацию
3. Начинаем всем миром искать концы
4. Потом вылазит бородатый мужик

Mageia 7 x86_64, KDE Plasma

Вот есть микросхема. Сегодня она содержит 500 транзисторов. Через месяц уже 1500, через 10 лет 2 миллиона. А вот родился человек с нулевым представлением о жизни. Человек ростёт, развивается, берёт в руки паяльник и собирает схему, содержащую микросхему, которая внутри себя содержит 2 миллиона транзисторов.

На дворе 21 век. И только в Линуксе нужно встать в какую-то неописуемую раскаряку, чтобы установить программу на компьютер.

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

Консоль: root

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

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

Mageia 7 x86_64, KDE Plasma

84 Ответ от alex_q_2000 2019-06-26 18:27:51 (2019-06-26 18:30:08 отредактировано alex_q_2000)

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

В Росе есть какой-то скрипт, поищите, только его надо дорабатывать, как впрочем всё, что в Росе есть.

86 Ответ от alex_q_2000 2019-06-27 09:55:23 (2019-06-27 11:06:23 отредактировано alex_q_2000)

В Росе есть какой-то скрипт, поищите, только его надо дорабатывать, как впрочем всё, что в Росе есть.

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

alex_q_2000, не помню название, Денис Силаков вроде делал.

88 Ответ от AlexL 2019-06-27 15:26:30 (2019-06-27 15:30:58 отредактировано AlexL)

alex_q_2000, не помню название, Денис Силаков вроде делал.

90 Ответ от alex_q_2000 2019-06-28 09:54:22 (2020-02-25 21:09:20 отредактировано alex_q_2000)

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

p.s. Кто подскажет пакетов пачку, тот получит водокачку.

Очень информативно, AlexL.

Ладно, обещания надо выполнять. Сорри, красные закончились.

http://images.vfl.ru/ii/1561720891/86979738/27036510_s.jpg

93 Ответ от Olej 2019-12-17 04:23:35 (2019-12-17 04:27:56 отредактировано Olej)

что в репозитории его программы нет файла configure.

Про технологии сборки можете почитать здесь: Разработка программных проектов в Linux

94 Ответ от alex_q_2000 2020-02-28 18:40:25 (2020-02-28 19:09:33 отредактировано alex_q_2000)

%pre if [ $1 -eq 2 ]; then systemctl disable мой_сервис.service; fi%post systemctl enable мой_сервис.service%preun if [ $1 -eq 0 ]; then systemctl disable мой_сервис.service; fi%postun if [ $1 -eq 0 ]; then systemctl daemon-reload; fi

Дальше можно найти ещё много разных штук из той же оперы: %systemd_post, %systemd_preun, %systemd_postun_with_restart, %systemd_user_post, %systemd_user_preun и т.д.

Что это за лабудень (%systemd_бла_бла_бла)? Если это дополнительные костыли для работы с юнитами systemd в спеках, то где про них можно почитать? Или это какая-то абстрактная фигня, чтобы народ из спеков до пенсии не вылазил?

В общем, отвечаю сам себе. Вверху был указан BuildRequires: systemd-rpm-macros. Т.е. чтобы использовать волшебные макросы вида %systemd_post, %systemd_preun и т.д., требуется пакет systemd-rpm-macros. Он есть только в Fedora и OpenSuse. В Магии походу этого добра нет и слава тебе, Госспади. Одним геморроем меньше.

Вступление

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

bash: ./script.sh: /bin/bash^M: bad interpreter: No such file or directory

В данной статье мы рассмотрим причину возникновения данной ошибки и о способах ее исправления.

Comments

You can’t perform that action at this time.

Причина возникновения

2 ответа 2

М-м-м-м. Вообще Вы все делаете не так. Во-первых, читаете README или readme.txt. Внимательно и вдумчиво. Далее возможно поможет install.txt Во-вторых, смотрите — есть команда install (общесистемная) и скрипт, который лежит в каталоге MathCAD’а. Если Вы в консоли набираете

то вызывается общесистемная команда. Вам же нужен ./install (из текущего каталога), ну, или sh ./install (если это скрипт)

В третьих, deb-пакет зачем? Тем более, что у разных дистрибутивов свои форматы бинарных пакетов (deb, rpm и пр). И зависимости тоже неясно кто прописывать будет.

ак и посоветовали в инете, пытаюсь выполнить ./configure

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

Еще очень полезно проверить права доступа к файлам. Напоминаю, что eXecute (исполнение) — это отдельное право.

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