Донецкий техникум промышленной автоматики

Установка / Збірка програм з початкових кодів в Ubuntu Linux

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

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

Чи часто ви стикалися з тим, що потрібної версії додатка для вашої архітектури в дистрибутиві 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 і відбувається процес установки тисяч файлів початкових кодів за необхідними тек.

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

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

На цьому мабуть перший етап завершено, що ми робимо далі?