Дуже часто потрібні програми, які вдається знайти на просторах Інтернету, не мають готових DEB або RPM пакетів. У репозиторіях дистрибутивів так само не завжди знаходиться актуальна версія програми. Тому установка програми з вихідного коду буває єдиним виходом.
Так як тут розглядаються пакетні дистрибутиви Linux, то збирати з вихідних ми будемо в DEB і RPM пакети. Такі пакети в подальшому легко встановлюються і видаляються в ОС.
Нижче наведено список команд, які допомагають створювати DEB і RPM пакети з початкових кодів. Ще нижче кожна команда буде більш детально розписана.
Створення DEB-пакетів з вихідного коду:
$ Sudo apt-get install checkinstall
# Sudo rpm -i checkinstall
# Встановлюємо пакет checkinstall
# Переходимо в директорію з вихідним кодом програми
# Конфігуріруем вихідні під свою ОС
# Створення і установка пакета з вихідного коду
Детальний опис кожного кроку
Установка програми checkinstall
Установка пакета checkinstall не повинна викликати особливих складнощів. В операційних системах, які використовують DEB пакети, установка проводиться командою:
# Sudo apt-get install checkinstall
В операційній системі, що використовує RPM пакети, установка пакета checkinstall виконується командою:
# Sudo rpm -i checkinstall
Якщо такий пакет у Вашій ОС не виявлено, то Вам слід відвідати головну сторінку проекту і завантажити необхідну версію для Вашого дистрибутива:
Перехід в директорію з вихідним кодом програми
Перехід в директорію з вихідним кодом програми досить простий і також не повинен викликати жодних труднощів.
Хотілося б нагадати про дуже зручний інструмент командного рядка Linux - клавіші TAB. Кнопка TAB дозволяє автоматично дописувати назву довгих директорій і файлів. Потрібно ввести лише перші символи назви директорії / файлу і натиснути клавішу TAB. яка автоматично допише повна назва.
Майже всі вихідні поширюються в архівах формату tar.gz. Для розпакування архіву набираємо команду:
# Tar xvzf імя_архіва.tar.gz
Прочитати додаткову інформацію по роботі з будь-якими архівами можна тут.
Конфігуріруем вихідні під свою ОС
Простіше кажучи, це процес «настройки» вихідного коду під конкретну ОС. В результаті цього процесу створюється файл з описом конфігурації. Конфігурація початкових кодів зазвичай здійснюється простою командою:
Ця команда не вносить ніяких змін в ОС і тим самим не зможе ніяк зашкодити її.
або прочитати у файлі readme або install
Цей етап найбільш трудомісткий, так як необхідно встановити всі додаткові пакети, від яких залежить вихідний код модульна програми. Якщо в ході виконання цієї команди на екрані з'явилося повідомлення про помилку і процес конфігурації зупинився, то це означає що якийсь залежний пакет відсутній в системі.
Наприклад, при конфігуруванні Pidgin виникла помилка:
checking for GTK. yes
checking for PANGO. yes
checking for X11. yes
checking for GTKSPELL. no
no
configure: error:
GtkSpell development headers not found.
Use --disable-gtkspell if you do not need it.
У наведеному лістингу видно, що GTK, PANGA, X11 відповідають вимогам компилируемого вихідного коду (yes), а перевірка GTKSPELL вивела значення no. Швидше за все в цьому прикладі потрібно встановити libgtkspell-dev.
З цього прикладу видно, що це справа не така вже й складна. Якщо в процесі автоматичної інсталяції не виникло помилок, то процес вважається завершеним успішно.
Компілювання вихідного коду - процес «автоматичний» за умови успішного виконання попереднього пункту.
Якщо все ж виникають помилки, то швидше за все це проблема в вихідному коді. Потрібно помістити частину рядків виводу, в яких міститься помилка, в будь-який пошуковик і подивитися результат пошуку. Можливо з цією помилкою вже стикалося інтернет-спільнота.
Створення DEB-пакета з вихідного коду
Програма checkinstall створює і встановлює пакет для Вашої ОС. Тип пакета (DEB або RPM) checkinstall визначає сам. Для жорсткого вказівки типу створюваного пакета використовуємо команду checkinstall з ключами:
# Sudo checkinstall -R
# Створює і встановлює RPM пакет