- Configure Make Install
- Перед установкой
- Configure
- Install
- Ubuntu Make — разработчику в помощь
- Установка
- Использование
- Мнение
- Компиляция и установка программ из исходников
- Содержание
- Распаковка
- Сборка пакета
- Установка
- Правильная установка(Вариант №1)
- Правильная установка(Вариант №2)
- Установка (вариант №3)
- Неправильная установка
- Ошибки
- Необходимое программное обеспечение
- Ubuntu Wiki
- ubuntu-make
- Our philosophy
- Supported platforms
- How to use it
- Installing Ubuntu Make
- Example: How to install android-studio
- How to contribute
- Reports bugs and propose enhancements
- Help translating
- Write some documentation
- Spread the word!
Configure Make Install
NB: Чем лучше Вы разбираетесь в C++, Linux и работе компиляторов — тем проще Вам будет разобраться с configure make install
Перед установкой
Сначала Вам скорее всего нужно скачать архив с программой, которую Вы хотите установить.
Например, команда для скачивания python3.7:
Затем распаковать архив
tar -xf Python-3.7.0.tgz
И перейти в только что распакованную директорию
В этой директории скорее всего будет находиться скрипт configure
Configure
configure — это не команда linux а скрипт, который обычно лежит в папке к configure
Означает, что означает что префикс установки /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 отключает использование библиотеки.
.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
Источник
Ubuntu Make — разработчику в помощь
Появилось желание познакомиться с разработкой под android. Скачал Android Studio, распаковал и удалил. Решил поискать другие варианты установки. В процессе поиска наткнулся на Ubuntu Make (он же Ubuntu Developer Tools Center в прошлом), и в этой небольшой заметке хочу рассказать вам о нем.
Ubuntu Developer Tools Center промелькнул в новостях вместе с Ubuntu 14.10 (Utopic Unicorn), но широкого внимания масс, как мне кажется, к себе не привлек. Не многим позже проект переименовали в Ubuntu Make, как он и называется по сей день подросшим до версии 0.4. Разработкой занимается Didier Roche, Software Engineer, Canonical. Также достоин внимания тот факт, что Ubuntu Make написан на Python 3.4.
Основная цель проекта быстрая и легкая установка общих потребностей разработчика в Ubuntu. И хотя до «общих потребностей» еще далековато (список доступных для установки пакетов пока маловат), с «быстро и просто» все отлично.
На данный момент с помощью Ubuntu Make можно установить:
- Android Studio
- Eclipse
- IntelliJ Idea Community Edition
- PyCharm Community Edition
- go-lang Google compiler
- Stencyl game developer IDE
Установка
В ubuntu 15.04 ubuntu-make доступен из коробки, пользователям версий 14.04 и 14.10 предлагается установить из ppa:
Использование
Установка с ubuntu-make проста до неприличия. Для установки Android Studio достаточно выполнить в терминале:
Немного ожидания и вот результат:
Иконка в dash и openjdk (если явы не было в системе) в комплекте. После запуска «студия» подтянула sdk и обновилась до версии 1.0.2. «Hello world» был запущен на телефоне и на этом проверка работоспособности завершилась.
golang устанавливается аналогично:
Для PyCharm, Eclipse, Idea добавится еще один аргумент:
Для удаления пакета достаточно добавить аргумент «-r» к той же строчке:
Мнение
Кто-то скажет: — «Много ли делов. Скачать архив, распаковать, иконку в dash да яву проверить. Нужен ли ubuntu make?». Согласен может дел и не много, но я нашел пакет полезным для себя. Он сэкономил мне время и избавил от рутины. Надеюсь будет полезным и вам.
Ссылки:
Ubuntu Make на Github.
Блог Didier Roche.
Источник
Компиляция и установка программ из исходников
Содержание
Не редко необходимые пакеты можно найти только в виде исходных текстов, в данной статье описывается метод установки пакета из исходных текстов.
Распаковка
Программы обычно распространяются в упакованных архивах, это файлы с расширениями
Нужно понимать отличие между архиватором и упаковщиком.
Для архивации директорий и файлов используется программа 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 программы. Так что если не получается собрать, то посмотрите на этот список и сверьте с тем что у вас установлено.
Источник
Ubuntu Wiki
ubuntu-make
Ubuntu Make is a command line tool which allows you to download the latest version of popular developer tools on your installation, installing it alongside all of the required dependencies (which will only ask for root access if you don’t have all the required dependencies installed already), enable multi-arch on your system if you are on a 64 bit machine, integrate it with the Unity launcher. Basically, one command to get your system ready to develop with!
Our philosophy
First, let’s define the core principles around the Ubuntu Make and what we are trying to achieve with this:
- Ubuntu Make will always download, test and support the latest available upstream developer stack. No version is stuck in stone for 5 years. We get the latest and the best release that upstream delivers to all of us. We are conscious that being able to develop on a freshly updated environment is one of the core values of the developer audience and that’s why we want to deliver that experience with Ubuntu Make.
- We know that developers want stability overall and not have to upgrade or spend time maintaining their machine every 6 months. We agree they shouldn’t have to and the platform should «get out of my way, I’ve got work to do.» That’s the reason why we focus heavily on the latest LTS release of Ubuntu. All tools will always be backported and supported on the latest Long Term Support release. Tests are running multiple times a day on this platform. In addition to this, we support, of course, the latest available Ubuntu Release for developers who likes to live on the edge!
- We want to ensure that the supported developer environment is always functional by always downloading the latest version from upstream. The software stack can change its requirements, requiring newer or extra libraries and thus cause breakage. That’s why we are running an entire suite of functional tests multiple times a day, on both versions that you can find in distro and on the latest trunk. That way we know if:
- We broke ourselves in trunk and needs to fix it before releasing.
- The platform broke one of the developer stack and we can promptly fix it.
- A third-party application or a website changed and broke the integration. We can then fix this really early on.
All of those tests running will ensure the best experience we can deliver, while always fetching the latest release version from upstream. All of this on a very stable platform!
Supported platforms
The list of supported platforms is always evolving. We divided Ubuntu Make in categories so that it’s easier for developers to navigate and install what they require. We invite you to look at existing current support using the —list option or shell completion. This list goes from Android (java and native) development, to games, frontend web (javascript and dart), backend (go and dart), and various ide (python, C++ java…). This list might not be up to date, so check the github page for the new contributions!
How to use it
Example: how to install Ubuntu Make and then, Android Studio.
Installing Ubuntu Make
You can install the snap package (not working at the moment on 17.10)
If you run the snap you have to run ubuntu-make.umake
If you’re running 17.10 or want to run the «traditional» package, you can install from the Ubuntu Make PPA. First, add the PPA to your system:
Then, installing Ubuntu Make:
Example: How to install android-studio
And then, accept the installation path and Google license. It will download, install all requirements alongside Android Studio and latest android SDK itself, then configure and fit it into the system like by adding an Unity launcher icon…
And that’s it! Happy Android application hacking on Ubuntu. You will find the familiar experience with the android emulator and sdk manager + auto-updater to always be on the latest.
How to contribute
Reports bugs and propose enhancements
The more direct way of reporting a bug or giving any suggestions is through the upstream bug tracker.
The tool is really to help developers, so do not hesitate to help us directing the Ubuntu Developer Tools Center on the way which is the best for you.
Help translating
We already had some good translations contributions through launchpad! Thanks to all our translators, we got Basque, Chinese (Hong Kong), Chinese (Simplified), French, Italian and Spanish! There are only few strings up for translations in Ubuntu Make and it should take less than half an hour in total to add a new one. It’s a very good and useful way to contribute for people speaking other languages than English! We do look at them and merge them in the mainline automatically. Contribute on the code itself
Some people started to offer code contribution and that’s a very good and motivating news. Do not hesitate to fork us on the upstream github repo. We’ll ensure we keep up to date on all code contributions and pull requests. If you have any questions or for better coordination, open a bug to start the discussion around your awesome idea. We’ll try to be around and guide you on how to add any framework support! You will not be alone!
Write some documentation
We have some basic documentation (this wiki page!). If you feel there are any gaps or any missing news, feel free to edit the wiki page! You can as well merge some of the documentation of the https://github.com/ubuntu/ubuntu-make/blob/master/README.md file or propose some enhancements to it!
To give an easy starts to any developers who wants to hack on Ubuntu Make itself, we try to keep the README.md file readable and up to the current code content. However, this one can deviate a little bit, if you think that any part missing/explanation requires, you can propose any modifications to it to help future hackers having an easier start.
Spread the word!
Finally, spreading the word that Ubuntu Loves Developers and we mean it! Talk about it on social network, tagging with #ubuntulovesdevs or in blog posts, or just chatting to your local community! We deeply care about our developer audience on the Ubuntu Desktop and Server and we want this to be known!
ubuntu-make (последним исправлял пользователь lyzardking 2017-12-21 12:05:21)
Источник