Це запитання, а також більшість інших відповідей тут, виникають через нерозуміння того, як розподіляються проекти, що використовують систему побудови GNU (він же Autotools). Насправді у випадку згаданої ОП програми бібліотеки Erlang XMPP , як видається, непорозуміння ставиться до розробників.
Отримання програмного забезпечення правильним способом
Якщо все, що ви хочете зробити, - це компілювати та встановити проект, випущений за допомогою програми GNU Autotools, тоді не слід перевіряти це у системі управління джерелом . Натомість слід завантажувати пакувальну версію джерела, надану розробником. Зазвичай вони мають форму тарілок, розміщених на веб-сайті проекту. Для проектів, які повністю розміщуються в GitHub, Savannah або іншому подібному хостинговому сервісі, ці тарболи зазвичай знаходяться за деяким посиланням з написом "Завантажити" або "Релізи". Ви знімаєте пакет і вимовляєте якийсь варіант стандартного ./configure && make && sudo make install
заклику. Це все; вам не потрібно викликати будь-який з GNU Autotools, і навіть не потрібно встановлювати GNU Autotools у вашій системі.
Причиною того, що вам, користувачеві, не потрібні програми GNU Autotools для складання пакуваного проекту Autotools, є те, що розробник вже використовував різні програми Autotools для створення "розподільної тарболи", яку можна використовувати для створення програмного забезпечення на будь-якому Unix-схожа система. Тарбол розподілу містить високо портативний configure
скрипт, який сканує середовище збирання, перевіряє залежності та створює Makefile
індивідуальну для вашої системи.
То коли вам потрібні автоінструменти?
Єдиною причиною, що вам потрібно буде самостійно встановити та викликати GNU Autotools, є те, якщо ви хочете виконати розробку проекту, побудованого за допомогою Autotools. І навіть тоді вам, мабуть, не знадобляться Автоінструменти, якщо ви не зміните залежність проекту. У такому випадку вам справді потрібно перевірити оригінальне джерело, внести відповідні зміни до вхідних файлів configure.ac
, пов'язаних з Autotools ( Makefile.am
, тощо), та запустити на них Autotools для створення нового configure
файлу. Якщо ви хочете самостійно опублікувати оновлений пакет, тоді ви використовуєте Makefile, створений Autotools, для створення нового тарболу дистрибуції, а потім публікуйте цей тарбол десь в Інтернеті.
Проблема полягає в тому, що деякі розробники роблять своє сховище джерела загальнодоступним, але нехтують публікацією своїх дистрибутивів (або ускладнюють пошук, де вони публікуються). Наприклад, замість публікації тарболів їх розповсюдження як GitHub Releases , GitHub Release бібліотеки Erlang XMPP є тарілками сховища сировини. Це унеможливлює складання проекту без автоінструментів GNU, перемагаючи в першу чергу цілі використання Autotools.
TL; резюме DR
Автоінструменти GNU - це те, що розробники використовують для створення портативних пакетів вихідного коду для користувачів. Користувачі повинні завантажувати та компілювати з цих вихідних пакетів, а не оригінальний код із системи управління джерелом. Якщо розробники не надають ці вихідні пакети, вони не використовують Autotools належним чином, і їх слід обережно ляпати мокрою фореллю, поки вони не побачать помилку своїх шляхів.