Встановити make ubuntu. Чарівна магія configure, make та make install. У мене немає часу, щоб ***тися з цим, краще ще раз зроблю make install, все просто і зрозуміло

Всім привіт!

Це невелика замітка для лінуксоїдів-початківців, про те що ж означають ці три чудові команди і для чого одні потрібні. Почнемо, як то кажуть, із початку. Більшість програм перед використанням треба скомпілювати, тобто перетворити з тексту зрозумілою людині на набір одиниць та нулів, зрозумілих комп'ютеру. Процес умовно поділений на три етапи: конфігурування (configure), складання (make) та встановлення (make install). Подробиці під катом 🙂

./configure

Ця команда виконує пошук необхідних для компіляції бібліотек та заголовних файлів (це для програм частково або повністю написаних на C/C++ та подібних мов), а також налаштування особливих параметрів або підключення спеціальних бібліотек, якщо ./configureвиявить все, що йому потрібно, він створить Makefiles- файл, необхідний для збирання програми

Виконати налаштування параметрів конфігуратора можна за допомогою ключів і аргументів цих ключів, наприклад:

./configure --prefix=/opt/my_program

За допомогою ключа --prefix= Ви можете вказати директорію, яка надалі виступатиме як префікс для вашої програми (тобто коренева директорія). Це пов'язано з тим, що в світі Linux і не тільки, існує спеціальна Ієрархія Файлової Системи (HFS) відповідно до якої будь-яка програма, щоб працювати без помилок, повинна бути зібрана та встановлена.

У файловій системі є три основні префікси, щодо яких більшість програм конфігурується, а саме:

  • / - коренева директорія операційної системи, так званий ROOT
  • /usr - директорія, в якій знаходяться програми користувача оточення
  • /usr/local - додаткова директорія для програм, що збираються вручну, спеціально для того щоб операційна системане перетворилася на звалище

Якщо відкрити будь-яку з цих директорій, можна побачити дуже схожу структуру, як мінімум там будуть папки: bin, etc, include, libs, sbin.

Якщо запустити ./configureбез ключів, то префіксом за замовчуванням (директорія, в яку буде встановлена ​​програма, що збирається) буде /usr/local, пам'ятайте це якщо не можете запустити свою програму, можливо у Вас не прописаний шлях PATH.

Крім ключа --prefixв конфігураторі, як правило, є ще безліч інших ключів, подивитися їх все можна якщо виконати:

./configure --help

make

Найважливіша і найпростіша команда/програма, виконує запуск процедури компіляції програми з вихідного коду. Для своєї роботи дана програмавикористовує спеціальні файли Makefiles, в яких детально описаний процес складання програми з усіма параметрами, які ми вказали конфігуратору. Результатом успішного виконання команди make буде зібрана програма у поточній директорії.

make install

Ця команда виконує безпосередню установку програми у вказану, на етапі конфігурування, директорію, після виконання команди make install ви можете запустити нову програму.

Післямова

Щоб не писати три команди по черзі, можна написати їх в один рядок:

./configure && make && make install

&& - це оператор І, що прийшов з мови C/C++, однак, з погляду оболонки він означає те, що наступну команду потрібно виконати тільки у разі успішного виконання попередньої команди, це дуже зручно, якщо один з етапів завершується з помилкою.

Насправді make install так само може виконати складання, тому що завдання install залежить від задачі all (тобто безпосередньо складання програми), це означає, що етап make можна пропустити і виконати всього дві команди, якщо записати їх в один рядок вийде:

./configure && make install

Удачі вам! І дякую за те, що дочитали!

Суть зводиться до того, що цю команду у вигляді make install або sudo make install використовувати в сучасних дистрибутивах не можна.

Але ж автори програм у посібниках із встановлення пишуть, що потрібно використовувати цю команду, можливо, скажете ви. Так, пишуть. Але це лише означає, що вони не знають, який у вас дистрибутив, і чи це взагалі дистрибутив, може, ви вступили в секту і про курилися читалися LFS і тепер вирішили під свою хтонічну систему скомпілювати їх творіння. А make install є універсальним, хоч і часто неправильним способомце зробити.

Ліричний відступ

Як відомо, для нормальної роботи більшість софту повинні бути не тільки скомпільовані, а й правильно встановлені в системі. Програми очікують знайти потрібні їм файли в певних місцях, і ці місця в більшості *nix-систем зашиті в код на етапі компіляції. Крім цього аспекту основною відмінністю процесу установки в linux/freebsd/whatever від такої в Windows і MacOS є те, що програма не просто складає купу файлів в окрему директорію в Program Files або /Applications, а розмазує себе по всій файловій системі. Бібліотеки йдуть в lib, виконувані файли в bin, конфіги в etc, різні дані в var і так далі. Якщо вам раптом знадобиться її оновити, все це треба спочатку якось вичистити, т. до. при використанні нової версіїзалишки файлів від старої можуть призвести до абсолютно непередбачуваних наслідків, Найчастіше поганим. Імовірність цієї події не така велика, але вона вам потрібна на бойовому сервері?

І що з того?

Так от, якщо ви робили установку безпосередньо через make install, то нормально видалити або оновити софтину ви, швидше за все, не зможете. Більше того, встановлення нової версії поверх старої, швидше за все, затре ваші зміни в конфігах. make install робить рівно те, що йому сказано – здійснює установку файлів у потрібні місця, ігноруючи той факт, що там щось уже є. Після цього процесу абсолютно ніякої інформації про те, що й куди ставилося, отримати в зручному вигляді неможливо. Іноді, звичайно, Makefile підтримує дію uninstall, але це зустрічається не так часто, та й не факт, що коректно працює. Крім цього зберігати для деінсталяції розпаковане дерево вихідників і правил збирання якось дивно.

Як боротись?

Оскільки в дистрибутивах пакети мають властивість іноді таки оновлюватися, для вирішення цієї проблеми придумали таку штуку як пакетний менеджер. При його використанні установка відбувається приблизно так:
  1. береться певним чином сформований архів
  2. з нього витягується інформація про те, що це взагалі таке, якої версії, від чого залежить, з чим конфліктує, чи потрібно для установки/видалення/налаштування запускати якісь скрипти, etc.
  3. Виконуються дії щодо безпосереднього встановлення
  4. Всі дані про те, куди і що було поставлено додаються до бази даних пакетного менеджера.

У цьому випадку при оновленні можна безболісно видаляти зайве, а заразом подивитися, чи не змінилися в системі файли, помічені як конфігураційні і запитати, що робити, якщо в новій версії їхній вміст відрізняється. Крім цього, пакетний менеджер не дасть затерти файли одного пакета під час встановлення іншого. Загалом багато корисних штук він може зробити.

Якщо ви з незнання/ліні скопіпастили make install з інструкції, то у системі з'являються файли, про які пакетний менеджер не знає. З усіма такими, що випливають, якщо вам мало того, що було перераховано раніше.

Що робити?

Можна, звичайно, сконфігурувати дерево вихідників так, щоб установка всього і вся йшла кудись у /opt/mycoolapp/, а потім при необхідності руками видалити, але тут може вилізти маса неприємних речей, починаючи з того, що програма очікує, що зможе завантажити свої бібліотеки, а завантажувач про директорію, де вони лежать нічого не знає, закінчуючи тим, що автор програми може розраховувати, що наприклад, якщо він кладе файл, скажімо $prefix/share/xsessions/, то його підхопить менеджер дисплея. Не кажучи вже про шляхи для pkgconfig та інше.

Тож треба збирати пакет.

У мене немає часу, щоб з цим, краще ще раз зроблю make install, все просто і зрозуміло!

Спокійно, спокійно. Він у нас за ноги прив'язаний. Все не так страшно і складно, як здається на перший погляд.
checkinstall
Ця чудова утиліта, будучи запущеною замість make install, поставить кілька питань, після чого сама збере і встановить пакет. Все, при оновленні жодних проблем з вичищенням старого мотлоху у вас не буде.
Складання deb-пакету вручну
Якщо ви не схильні довіряти такій автоматиці (яка іноді все ж таки косить) або ж хочеться внести пару змін, але розбиратися з нормальним процесом складання пакетів все-таки ліниво, то можна зібрати пакет ручками. Я наводжу спосіб, як спорудити його для систем на базі Debian, тому що найкраще знайомий саме з ними. Він не є ідеологічно правильним, але на виході виходить коректний пакет без залучення додаткових сутностей. Робиться це так.
Для початку збираємо софт із попередньо вказаними для configure або autogen.sh параметрами --prefix=/usr та --exec-prefix=/usr.
Далі робимо установку в тимчасову директорію. Пишемо:

Fakeroot make install DESTDIR=`pwd`/tempinstall
Після чого отримуємо в новоствореній директорії весь той набір файлів. До речі, ми зараз знаходимося в fakeroot-оточенні, тобто можна без змін міняти власника і права доступу файлів, але фізично в системі власником залишитеся ви самі. Софт усередині fakeroot-сесії отримуватиме змінену інформацію, що дозволить запакувати в архів файли з коректними правами.
Далі створимо в корені пакета директорію DEBIAN і складемо в DEBIAN/conffiles список всіх файлів, які повинні потрапити в /etc:

CD tempinstall mkdir DEBIAN find etc | sed "s/^/\//" > DEBIAN/conffiles
Після чого створюємо файл DEBIAN/control наступного змісту:

При необхідності там можна створити скрипти preinst, postinst, prerm і postrm.

Все, що робимо dpkg -b tempinstall і отримуємо на виході tempinstall.deb, на який можна нацькувати dpkg -i і який коректно встановиться, оновиться або видаляється.

«Правильний» процес з попереднім створенням пакета вихідного коду виходить за рамки даної нотатки, а тому не описаний, але для ваших цілей воно зазвичай і не потрібно.

Висновок

Як бачите, тут немає абсолютно нічого складного, але виконання цих дій позбавить вас величезної кількості проблем у майбутньому.

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

Розпакування

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

.tar.gz (іноді.tgz) .tar.bz2

Потрібно розуміти різницю між архіватором і пакувальником.

Для архівації директорій та файлів використовується програма tar; результатом її роботи є файл із розширенням .tar. Грубо кажучи, це копія файлової системи- директорій та файлів з їх атрибутами та правами доступу, вміщена в один файл.

Цей файл за розміром буде трохи більше, ніж сумарний розмір архівованих файлів. Тому (а може і з іншої причини) використовують пакувальники – програми, які дозволяють зменшити розмір файлу без втрати даних.

Програма tarвміє розпаковувати, тому не потрібно викликати gunzip, а можна просто вказати програмі tar, що файл потрібно спочатку розпакувати. Наприклад, команда

tar-xvf< some_app_name>.tar.gz

відразу розпакує та розархівує. Відмінність файлів із розширеннями

.tar.gz

.tar.bz2

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

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

cd< имя_пакета>*

Складання пакету

Для складання програм у GNU/Linux використовується (в основному) програма make, яка запускає інструкції з MakefileАле оскільки дистрибутивів GNU/Linux багато, і вони всі різні, то для того щоб зібрати програму, потрібно для кожного дистрибутива окремо прописувати шляхи, де які лежать бібліотеки та заголовні файли. Програмісти не можуть вивчати кожен дистрибутив та для кожного окремо створювати Makefile. Тому вигадали конфігуратори, які «вивчають» систему, і відповідно до здобутих знань створюють Makefile. Але на конфігураторі вони не зупинилися і вигадали конфігуратори конфігураторів ...на цьому вони зупинилися

Для збирання нам потрібні компілятори: вони прописані у залежностях пакету build-essentialтак що досить встановити його з усіма залежностями. Ще потрібні autoconfі automake.

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

./ bootstrap ./ autogen.sh

Якщо таких скриптів в архіві не виявилося, можна послідовно виконати такі команди:

aclocal autoheader automake --gnu --add-missing --copy --foreign autoconf -f -Wall

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

./configure

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

./configure --help

Також є набір стандартних опцій, на кшталт

Prefix=

Яка вказує, який каталог використовуватиме установки. Для Ubuntu зазвичай

--prefix =/ usr --prefix =/ usr/ local

БЕЗслеша в кінці! Тепер можна запустити процес складання самої програми командою

make

Для складання достатньо привілеїв звичайного користувача. Закінченням складання можна вважати момент, коли команди в консолі перестануть "безладно" виконуватися і не буде слова error. Тепер все скомпільовано та готове для встановлення.

Встановлення

Зусилля витрачені на Правильну установку згодом з лишком окупляться у разі видалення або оновлення програмного забезпечення, яке встановлюється.

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

Установка за допомогою утиліти checkinstall. Для встановлення виконайте

sudo apt-get install checkinstall

Мінус цього способу: checkinstallрозуміє не всі вихідники, оскільки автор програми може написати особливі скрипти з встановлення та checkinstallїх не зрозуміє.

Для створення та встановлення deb-пакету необхідно виконати

sudo checkinstall

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

Швидке створення deb-пакету «вручну».

Основна відмінність від попереднього способу полягає в тому, що в даному випадку ви створюєте пакет вручну і відстежуєте всі зміни, що вносяться. Так само цей спосіб підійде вам, якщо вихідні коди не підтримують складання пакета з checkinstall.

    Виробляємо установку в тимчасову директорію, де отримуємо весь набір файлів, що встановлюються:

fakeroot make install DESTDIR = `pwd` / tempinstall

    Створимо в корені пакета директорію DEBIAN і складемо в DEBIAN/conffiles список всіх файлів, які повинні потрапити в /etc:

сd tempinstall mkdir DEBIAN find etc | sed "s/^/\//" > DEBIAN/ conffiles

    Після чого створюємо файл DEBIAN/control наступного змісту:

Package: имя_пакета Version: 1.2.3 Architecture: amd64/i386/armel/all Maintainer: Можете вписати своє ім'я, можете дрібень, але якщо залишити порожнім, то dpkg буде лаятися Depends: Тут можна вписати список пакетів через кому. Priority: optional Description: Теж треба щось вписати, щоб не кидало попередження

    При необхідності там можна створити скрипти preinst, postinst, prerm і postrm.

    Створюємо deb-пакет, для чого виконуємо:

dpkg -b tempinstall

    Отримуємо на виході tempinstall.deb, який і встановлюємо

sudo dpkg -i tempinstall.deb

Встановлення (варіант №3)

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

Мінус цього способу полягає в тому, що якщо ви встановлюєте безпосередньо через make install, то нормально видалити або оновити пакет ви, швидше за все, не зможете. Більше того, встановлення нової версії поверх старої, швидше за все, зачепить ваші зміни в конфігах. make install робить рівно те, що йому сказано – здійснює установку файлів у потрібні місця, ігноруючи той факт, що там щось уже є. Після цього процесу абсолютно ніякої інформації про те, що й куди ставилося, отримати в зручному вигляді неможливо. Іноді, звичайно, Makefile підтримує дію uninstall, але це зустрічається не так часто, та й не факт, що коректно працює. Крім того, вам буде необхідно зберігати для деінсталяції розпаковане дерево вихідників та правил збирання.

Для встановлення необхідно виконати

sudo make install

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

sudo make uninstall

Помилки

Часто на етапі конфігурації конфігуратор повідомляє, що не вистачає тієї чи іншої бібліотеки. Назва бібліотеки, яку він повідомляє, не завжди відповідає назві пакету в Ubuntu. З власного досвіду можу порадити пошукати в Синаптиці потрібний пакет, виключивши префікс lib, якщо знайшлося кілька пакетів, які розрізняються приставкою -dev в назві, то вам потрібно встановити саме -dev пакет (зазвичай він тягне за собою і не -dev пакет). Можна ще пошукати за допомогою http://packages.ubuntu.com/ , ввівши ім'я бібліотеки у пошук за вмістом пакетів, аналогічно, якщо знайдеться dev і не dev, потрібні обидва . Ну або просто пошукати в Google.

Необхідне програмне забезпечення

Пакети з літерами mm наприкінці опису – це пакети для C++ програм. Список для bmpx, але підійде майже для будь-якої програми GTK2/Gnome. Так що якщо не вдається зібрати, то подивіться на цей список і звірте з тим, що у вас встановлено.

Compile:Runtime:
Xlibx11-devlibx11-6
GlibMMlibglibmm-2.4-devlibglibmm-2.4-1c2a
GTK+libgtk2.0-dev,gtk-doc-toolslibgtk2.0-0
GTKMMlibgtkmm-2.4-devlibgtkmm-2.4-1c2a
Gladelibglade2-devlibglade2-0
GladeMMlibglademm-2.4-devlibglademm-2.4-1c2a
XMLlibxml2-devlibxml2
XML ++libxml++2.6-devlibxml++2.6c2a
DBuslibdbus-1-dev,libdbus-glib-1-devlibdbus-1-2,libdbus-glib-1-2
Alsalibasound2-devlibasound2
HALlibhal-dev,libhal-storage-devlibhal1,libhal-storage1
Gaminlibgamin-devlibgamin0
Neonlibneon25-devlibneon25
TagLiblibtagc0-devlibtagc0
Startup-Notifylibstartup-notification0-devlibstartup-notification0
Boostlibboost-dev,libboost-filesystem-devlibboost-filesystem1.33.1
MusicBrainzlibmusicbrainz4-devlibmusicbrainz4c2a
GStreamerlibgstreamer0.10-dev,libgstreamer-plugins-base0.10-devlibgstreamer0.10-0,libgstreamer-plugins-base0.10-0

термінал та команди

Чи часто ви стикалися з тим, що потрібної версії програми для вашої архітектури в дистрибутиві Ubuntu просто немає, але ця програма є на сайті розробників у вигляді вихідних повідомлень в архіві.tar.gz. Думаю багатьом знайома дана ситуація, але не всі продовжували шукати шляхи вирішення даного питання і просто шукали інший аналог програми або версію трохи старішу і продовжували працювати.

Відразу ж хочеться додати кілька слів для новачків в Linux, перш ніж щось виконувати з цієї статті, вивчіть грунтовно термінал і команди, які використовуються для роботи з ним, почитайте мани або матеріали в мережі.

  • Для складання додатківнам звичайно ж будуть потрібні інструменти розробника, в нашому випадку це компілятор та інші супутні йому програми, головну роботу звичайно нам буде виконувати утиліта make, а командна строка(термінал) буде як би нашою кухнею де ми і будемо готувати/збирати/встановлюватинаш додаток з вихідних джерел. У Linux термінал доступний за умовчанням, для вашої зручності ви, звичайно, можете встановити будь-який інший більш функціональний до якого ви звикли, я наприклад використовую Guake , дуже багато можливостей у порівнянні зі стандартним, де легко налаштувати як копіювання так і вставку команд або будь-якого тексту за допомогою CTRL+C,CTRL+V та багато іншого, що робить роботу з консоллю більш комфортною.
  • 1. З чого варто почати при складанні додатків з вихідних джерел, це звичайно ж завантажити додаток в архіві tar.gz або tar.bz2, в моєму випадку це наприклад додаток Gimp 2.9.2, хоча в нашому випадку архів не tar.gz формату, а tar.bz2, це не має жодної різниці, качаємо, після правою кнопкоюмиші по архіву - Витягти тут.

На цьому, мабуть, перший етап завершено, що ми робимо далі? А далі ми запускаємо термінал і перейдемо до нашої розпакованої папки з файлами:

Cd /home/linux/Завантаження/gimp-2.9.2/ ls

  • 2. Перед запуском підготовки вихідників до збірки радив би раніше відкрити та ознайомитися з файлом INSTALL, знайдете дуже багато корисної інформації, даному файліописується як встановлювати програму, які команди потрібно виконувати і багато чого ще цікавого. Зараз я вас раджу встановити додатковий пакет під назвою auto-apt, виконує багато рутинної роботи замість вас.
sudo apt-get install auto-apt

Що означає виконує багато рутинної роботи замість мене, спитайте ви, якщо запустити конфігурацію вихідних програмз приставкою даного пакета наприклад:

Auto-apt -y run ./configure

Звичайно можна виконати конфігурацію без допомоги даного пакета і просто виконати команду:

./configure

Якщо виконувати конфігурацію із приставкою - auto-apt -y run, то підготовка вихідників до збираннябуде відбуватися в автоматичному режимі, тобто ця команда може автоматично завантажувати та встановить замість вас все необхідні файлита бібліотеки та задовольнить все залежностіякі знадобляться.

  • 3. При реальній роботіне все так гладко, може в одному випадку пройде все гаразд і етап підготовки вихідників до збиранняпройде без помилок, в інших випадках і таких напевно більшість, ви будете зустрічати помилки різного роду наприклад, не вистачає того чи іншого пакета для подальшої підготовки вихідників. Здебільшого пишеться назва пакету якого не вистачає.

Пробуємо встановити відсутній пакет командою:

Sudo apt-get install pakage_name

Якщо пакет при виконанні команди вище не виявляється, мене дуже часто виручає наступна комбінація, шукаємо пакети яких нам не вистачає в кеші:

Apt-cache search pakage_name

  • Після виконання цієї команди підходящий пакет ви може і знайдете, часто буває що підходящий пакет ви не знаходите, але зустрічається точна копія пакета приставкою devтобто пакет виду pakage_name-devі ви можете скористатися ним, щоб задовольнити залежності.
  • 4. Після успішного завершення конфігурації вихідних даних для збирання, бажано встановити пакет checkinstallякий полегшує роботи зі складання пакета програми під ваш дистрибутив.
sudo apt-get install checkinstall

Встановили пакет, потім можна виконати команду:

Checkinstall-D

  • Атрибут -Dстворить deb пакет, атрибут -Rстворить rpm-пакет, який застосовується в дистрибутивах Fedora, RHEL, ASP Linux, ALT Linux, Mandriva, openSUSE, додатково є ще атрибут -Sякий створить пакет, що застосовується в Slackware.

У моєму випадку я працюю в Ubuntu і виконав команду з атрибутом -D, далі піде складання програми в готовий пакет формату Deb, від нас знадобляться деякі уточнювальні дані наприклад такі як додати опис до пакету, так як ви його збираєте і відповідно опис абсолютно чистий і як би від вас потрібна коротка довідка, що це за додаток для чого . У моєму випадку як я перевірив автоматично заповнюються так само наступні поля:

1 - Summary: [ EOF ] 2 - Name: [ gimp ] 3 - Version: [ 2.9.2 ] 4 - Release: [ 1 ] 5 - License: [ GPL ] 6 - Group: [ checkinstall ] 7 - Architecture: [ i386 ] 8 - Source location: [ gimp-2.9.2 ] 9 - Alternate source location: 10 - Requires: 11 - Provides: [ gimp ] 12 - Conflicts: 13 - Replaces:

  • Як видно, перед складанням йде перевірка, чи завершилася конфігурація успішно, чи не залишилися незадоволені залежності чи інші конфлікти, якщо все добре, то й складання пакета пройде без проблем.

Я раніше якось встановлював без складання пакету, виконуючи команди:

Make make install

Якщо ви захочете видалити встановлений додаток, варто виконати команду:

Make uninstall

команда вище в автоматичному режимі видалить ті, що відносяться до додатку, що ви встановлювали і не торкнеться нічого стороннього, бажано не бігати по директоріям і виконувати її з тієї ж директорії програми, в якій ви працювали, тобто готували конфігурацію ітд.

Хоча і без помилок пройшло все, але весь процес тривав дуже довго, приблизно хвилин 20 поки у мене встановився гімп з вихідних джерел, я встиг піти зробити каву і ще спостерігати за процесом установки, довго все відбувається через те, що доводиться багато різних папокрозкидати файли вихідних програм, кожен файл має своє призначення і повинен знаходитися в певній директорії, так ось після виконання make install і відбувається процес встановлення тисяч файлів вихідних файлів по необхідним директоріям.

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

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