Збірка або компіляція програм з вихідних в linux

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

Тема власне народилася на прохання одного хорошого людини, який попросив винести в окремий топік. Буду збирати для прикладу geany на голому тільки що встановленому дистрибутиві Debian squeeze з Gnome на борту. «Чому geany? Він же є в репозиторії. »- запитаєте ви. Просто це перша програма яку зібрав в linux, так би мовити ностальгія.

Так до чого я це? До того що зазвичай пишеться «як зібрати» в файлі Readme або Install, перш ніж робити щось подивіться в цей файл, напевно там написано не тільки процес установки, але і залежно які потрібні для пакета.

Зазвичай все зводиться до виконання

Можна завантажити за посиланням. а можна скористатися консольної утилітою wget, якщо ви не виконували команду «cd» до цього, то скочується в ваш кореневої каталог користувача / home / user.

Можна розпакувати як завгодно, і яким завгодно «архиватором», пропоную зробити це так

Переходимо в розпаковану директорію

Установка необхідних пакетів для збирання

Надалі ставити вже не треба буде

Збірка класичним make, make install

Не буду описувати різні префікси, їх можна подивитися в help. але якщо ви збираєте вперше, то воно вам не потрібно.
./ Configure --help. У більшості випадків достатньо ./configure без префіксів.

Можна встановити всі відразу, але буду показувати процес конфігурації т. К. Не завжди очевидні всі необхідні пакети. Цей процес може зайняти досить багато часу, до цього треба бути готовим. Не завжди можна скомпілювати програму під будь-який дистрибутив тому можна впертися в ланцюг недозволених залежностей, а іноді доводиться їх теж збирати.

На даному етапі ми отримали повідомлення

Гугл «помилку» або шукаємо відразу в репозиторії. Тут потрібно поставити девелоперський пакет libgtk.

Виконуємо пошук і дивимося список

Тепер повторюємо знову

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

Збірка або компіляція програм з вихідних в linux

Збірка і установка

Переходимо безпосередньо до самої збірці, виконавши для компіляції


Отримали приблизно ось такий лог

Збірка або компіляція програм з вихідних в linux

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

Якщо все добре, тепер можна виконати від root, або з префіксом sudo

Збірка або компіляція програм з вихідних в linux

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

Перейти в корінь / home / user

Збірка пакетів для установки за допомогою пакетного менеджера


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

Для вирішення цих проблем є утиліта checkinstall яка спочатку створює пакет .deb. rpm, а потім його вже встановлює. Після складання пакету за допомогою checkinstall не бажано давати його кому-то ще, ця утиліта зроблена виключно для зручності роботи на окремо взятому комп'ютері.

Виконуємо всі той же, що і в класичному варіанті, але з деякими змінами.

Ставимо спочатку пакет checkinstall для збірки

Конфігуріруем, встановлюючи необхідні пакети як було вище.

Збираємо пакет і встановлюємо


Тепер замість make install виконуємо checkinstall, звичайно теж від root або з префіксом sudo.


Далі нас попросять відповісти на кілька запитань

1. Enter
2. Enter
3. Заповнюємо, уточню, це не обов'язкові поля, можна сміливо припустити, якщо пакет більше використовуватися не буде.

  • [0] Maintainer - пишемо ваш email
  • [10] Requires - Залежності пакета, тут потрібно вказати не девелоперські пакети (! -dev), в нашому випадку це libgtk2.0 для будь-якої іншої програми цей список може бути досить великим.
    Збірка або компіляція програм з вихідних в linux


4. Якщо вирішили що все в порядку, продовжуємо натиснувши «Enter». Новий створений пакет буде лежати в цій же директорії, в нашому випадку

/geany-0.20. а так же встановлений в системі.

Збірка або компіляція програм з вихідних в linux

NOTE: Для checkinstall мені довелося поставити ще apt-build тому його не було в системі.
FAQ по checkinstall

На цьому все, спасибі за увагу.

Схожі статті