Да сколько же блин можно? Решил написать пару слов об этом безобразии.
Несмотря на развитую систему пакетных репозиториев, всё-равно периодически сталкиваешься с проблемами отсутствия нужных программ в репах. Ну не нашёл, идёшь как водится в Google и спрашиваешь, типа «mate for centos 8» ну и смотришь, что советуют. Да, эпоха Интернета, масса информации практически по любой теме. Если долго рыться, то что-то да посоветуют, но часто просто охреневаешь с советов.
Скажите мне, что за дебилизм собирать программу из исходников и ставить её через «make; make install» на дистрибутивах с пакетными менеджерами?
Что? Вы не понимаете что в этом плохого? Не понимаете почему такого НЕЛЬЗЯ ДЕЛАТЬ практически НИКОГДА? Окей, объясняю.
- Вы совершенно не управляете процессом, который вы запускаете командой «make install». В больших проектах, данная команда выполняет большой объём разных операций. Какие из существующих системных файлов будут перезаписаны или удалены, а какие файлы куда будут напиханы — одному Богу известно, если не считать самих разработчиков. Как после этого будет работать ваша система, я не рискну предсказать. Надо отдавать себе отчёт, что если вы не имеете чёткого представления о том, что будет происходить — это потенциально ОПАСНАЯ операция! И в некоторых случаях, после такого вы получите полность неработающую систему! Ладно, если у вас хотя бы тушка компа стоит рядом, а если это удалённый сервер без KVM?
- Далее, как говорят «один раз не пидо…с!» Но в данном случае скорее наоборот. Один раз, потом другой раз, и понеслось-поехало. Ваша система превращается в вонючую файлопомойку, где непонятно что и как лежит, и соответственно работает!
- Окей. Допустим ничего не случилось, всё что надо установилось и заработало, как говориться «пронесло». Как вы собираетесь производить обновления и обслуживать всё это? Завтра вы обновите какой-либо пакет, содержащий библиотеку, от которой зависит скомпилированное вручную программное обеспечение и опа… — то что работало вчера, вдруг перестало работать! Начинаются нервные визги и судорожные поиски — а что случилось и что самое клавное — а чо делать та? Мозги надо иметь, блин!
- А что будете делать при обновлении самой ОС? Как вы можете перенести то, что вы понаставили вручную на новую версию, если вы даже не знаете что и куда поставилось?
Любому нормальному админу, этих 4-х аргументов за глаза, чтобы не маяться хернёй и сделать всё как положено. А как?
А так, что надо сделать пакет под вашу ОС: для Debian-based систем — .deb для RPM-based — .rpm. Ах не умеете? Так какой же вы в задницу админ тогда? Научитесь! Мануалов на эту тему хватает!
Соберёте пакет (не из под root’а конечно), а потом уже его поставите через пакетный менеджер! И тут уже будет всё правильно, потому что пакетный менеджер вам скажет, если пакет будет пытаться переписать какие-то существующие файлы из других пакетов. Пакетный менеджер установит нужные пакеты, если ваш пакет будет зависеть от них. Пакетный менеджер при обновлении системных пакетов будет учитывать ваш и не даст произвести обновления, которые приведут к заведомой неработоспособности программ из вашего пакета. И при обновлении вашего пакета конфиг даже сохранится!
Короче вы поняли. Если вы работает с дистрибутивом, где используется пакетный менеджер, то делайте пакеты и ставьте, а те кто советует и публикует рецепты в стиле «make; make install», жопорукие идиоты!