Configure Make Install
Перед установкой | |
Configure | |
Make | |
Install | |
Похожие статьи |
NB: Чем лучше Вы разбираетесь в C++, Linux и работе компиляторов - тем проще Вам будет разобраться с configure make install
Перед установкой
Сначала Вам скорее всего нужно скачать архив с программой, которую Вы хотите установить.
Например, команда для скачивания python3.7:
wget https://www.python.org/ftp/python/3.7.0/Python-3.7.0.tgz
Затем распаковать архив
tar -xf Python-3.7.0.tgz
И перейти в только что распакованную директорию
cd Python-3.7.0
В этой директории скорее всего будет находиться скрипт configure
Configure
configure - это не команда linux а скрипт, который обычно лежит в папке к
configure
Команда
configure --prefix=/usr
Означает, что означает что префикс установки /usr ,
Бинари уходят в usr/bin
libraries в usr/lib
Проверяется наличие всего необходимого
Создается файл
MakeFile
--prefix=PREFIX - папка для установки программы, вместо /, например, может быть /usr/local/,
тогда все файлы будут распространены не по основной файловой системе, а в /usr/local;
--bindir=DIR - папка для размещения исполняемых файлов, должна находится в PREFIX;
--libdir=DIR - папка для размещения и поиска библиотек по умолчанию, тоже в PREFIX;
--includedir=DIR - папка для размещения man страниц;
--disable-возможность - отключить указанную возможность;
--enable-возможность - включить возможность;
--with-библиотека - подобно enable активирует указанную библиотеку или заголовочный файл;
--without-библиотека - подобное disable отключает использование библиотеки.
Make
.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 и название файла
make -f aomake
У файла
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
make -j
-j - jobs Определяет число работ - jobs
(commands) которые запускаются
одновременно.
Если указано больше чем одна -j опция, то применяться будет последняя.
Если -j опция дана без аргументов
make не будет ограничивать количество работ запускаемых одновременно. То есть
запуститься сможет неограниченное количество работ одновременно.
Более подробную информацию по Makefile вы можете найти в статье «makefile tutorial»
РЕКЛАМА от Яндекса. Может быть недоступна в вашем регионе
Конец рекламы. Если там пусто считайте это рекламой моей телеги
Install
install
Make - это не единственный способ устанавливать программы под linux. Более того,
за сорок с лишним лет существования утилиты make вышло много её версий.
ru.wikipedia.org
gnu.org
Прежде чем ставить что-то по-старинке с make install - советую изучить checkinstall
Источники: make