Уроки Как правильно компилировать в Ubuntu

Sam Jack

Капитан-Узурпатор
Команда форума
Созидатель
5 Май 2015
13.917
4.894
113
Россия
null-prog.ru
В Ubuntu используется философия пакетного менеджмента, то есть все программы ставятся из пакетов deb, в которых хранится собственно сама программа и скрипты, которые корректно ставят/удаляют/обновляют. Пакеты deb можно найти в сети Интернет, на дисках. Самый лучший способ использовать репозитории, хранилища deb пакетов. Если использовать репозитория, то при появлении в них новых версий установленных у вас программ, вам будет предложено обновить их. Это очень удобно и позволяет держать систему актуальной и защищенной.
Старайтесь до последнего найти нужную вам программу в deb пакете - тем самым вы не нарушите стройность и целостность пакетной системы Ubuntu.
Но что делать если программы в пакете deb НЕТ? Многие сразу скажут, что нужно компилировать исходники. Да это так, но лучше делать правильно! Описанный ниже способ не повредит пакетной системе Ubuntu и точно лучше чем configure && make install
1) Поставьте auto-apt
sudo apt-get install auto-apt
2) Распакуйте исходники программы, почитайте файл INSTALL, в каталоге с распакованными исходниками командуйте
sudo auto-apt update && auto-apt -y run ./configure
Команда auto-apt автоматом будет доставлять пакеты с необходимыми файлами, всякие там заголовочные файлы .h
подробнее 5.3 Установка пакетов по запросу
Этот шаг позволит автоматически удовлетворить зависимости компилируемой программы и меньше будете пытать людей на форумах, типа чего надобно программе на слове
stdio.h NOT FOUND
3) сделайте deb пакет
checkinstall -D
4) Установите созданный deb пакет в вашу систему. Двойной щелчок на deb пакете в Файловом Менеджере Nautilus (Dolphin) или в Терминале
sudo dpkg -i ваш_пакет.deb
Заметьте! Мы не использовали make install и тем самым не вмешивались грубо в пакетную систему Ubuntu, мы элегантно создали deb пакет, который уже установили в систему. В дальнейшем этот ваш deb пакет можно корректно удалить или обновить новым deb пакетом.