Стоит ли боятся компиляции приложений из исходников? И как сделать этот процесс не таким "страшным"

Изображение пользователя DEamON.

Как то раз размышлял на тему: "почему некоторые не любят компилировать программы из исходников?". Многие мои друзья боятся Linux и в их представлении - это что то где нельзя запускать exe приложения, вообще ничего нет и всё нужно делать через какие то команды в текстовой строке. Те, которые знают больше очень, ну просто очень сильно боятся, что им придётся компилировать какие то программы. На самом деле это же не такой сложный процесс как его многие себе представляют, но его можно сделать удобней и не таким страшным для таких пугливых пользователей.

Проведём аналогию компиляции программ и установки программ для Windows и попробуем посмотреть сходство и различие этих действий с точки зрения обычного пользователя (смотреть будем самый частный случай, без каких-либо особых заморочек). В скобках буду писать действия для ubuntu.

1) Скачиваем установочный файл exe или msi (скачиваем архив с файлами)
2) Запускаем скаченный файл (распаковываем архив и переходим в папку с распакованным)
3) Принимаем лицензионное соглашение, выбираем папку установки, ставим/снимаем галочки настроек (создаём папку build, заходим в неё, выполняем ../configure)
4) Начинается установка, пользователь видит как меняется строчка с названием файла или какую-нибудь полезную информацию (пишем make, затем make install, во время выполнения видим цветной выхлоп)
5) Программа установлена, можно запускать (аналогично)

Получается интересная вещь: действия практически аналогичны. НО есть одна вещь, которая и пугает пользователей: всё это делается в терминале. Это не новость ни для кого, это уже много раз обсуждалось. А как решить проблему? Если пользователя от ОС отталкивает что то нужно это "что то" устранить.

Мне стало интересно как можно избавится от терминала во время компиляции программы из исходников. Назрело следующее решение: графическая компиляция.

По сути это GUI для 3-х команд (../confidure, make, make install), но этого будет достаточно чтобы скомпилировать большое количество программ. По сути пользователю нужно будет только скачать архив с исходниками и указать его программе-установщику. Эта программа сама посмотрит зависимости (это возможно?), посмотрит из readmy файла (если, конечно, он есть) директивы и выведет их пользователю, в случае ошибки выведет вывод из терминала (предложит поискать в google или написать разработчику). Получается такая своеобразная (по функционалу) копия microsoft-installer, но только круче :-)

Все рассуждения навеяны очередными темами на форуме (не только на этом) в стиле "как установить программу". Это поможет не только избежать лишних вопросов начинающих пользователей, но и так же поможет разработчикам тестировать новые версии (так как при установке можно отправить сообщение об ошибке).

Вот такие рассуждения в середине рабочего дня) Может быть что то подобное уже и есть, но я не видел. Сильно не пинайте (особенно гуру и фанаты терминала) ведь главное - это забота о пользователях и о удобстве любимой системы.

Комментарии (19)

0
DarkneSS - 29 Декабрь, 2012 - 15:07
Изображение пользователя DarkneSS.

Я не люблю. Во-первых, я компьютер не для жарки блинов покупал. А, во-вторых, если собирать в ручном режиме, то это вынос мозга просто какой-то: dev-ки поставь, собери, собери пакет, поставь пакет, удали dev-ки. Если не удалять мусор, то рабочая система превратится в ад с моей точки зрения. Следить за зависимостями (в том числе сборочными) вручную уныло. Сплошной имхо отстой при сомнительных бонусах.

На бунте я собирал только пару раз вакуум, чтобы помочь отловить авторам баг,- впечатлений на всю жизнь. Такое счастье нафиг мне не нужно. Пускай бы баг этот жил дальше))

Совсем другое - хотя бы chroot обзавестись, а лучше автоматической системой на подобие ОБС. Пакет вылетает по одной команде, всё остальное сделают скрипты. Но и такую компиляцию я считаю глупой тратой времени и электричества.

0
DarkneSS - 29 Декабрь, 2012 - 15:09
Изображение пользователя DarkneSS.

По сути это GUI для 3-х команд (../confidure, make, make install), но этого будет достаточно чтобы скомпилировать большое количество программ. По сути пользователю нужно будет только скачать архив с исходниками и указать его программе-Ну да, а опции qmake/cmake кто будет передавать перед make? А как же другие системы сборки? А как узнать, какие вам нужны опции? Если бы всё всегда стандартно собиралось, уже бы давно такое сделали. А ещё ж и патчить через раз просто надо...

0
DEamON - 29 Декабрь, 2012 - 18:46
Изображение пользователя DEamON.

Тут основная проблема не в том, как компилировать, а в том чтобы изменить у пользователей отношение к программам (и ОС) в которых нужно что то компилировать. Просто многие боятся "ничего", по сути. Они слышат, что возможно им нужно будет компилировать какую то программу и сразу у них появляется какое то негативное отношение.

Если сейчас у пользователя отношение компилировать = терминал = непонятные команды, которые ещё и много чего пишут непонятного, то нужно сделать компилировать = нажать 2 кнопки. А в следствии можно вообще подменить понятие и назвать компиляцию установкой, так и самые пугливые перестанут боятся.

Вообще то я не фанат компиляции программ, но, например, плазмоиды в скомпилированном виде найти сложно.

0
DarkneSS - 29 Декабрь, 2012 - 22:48
Изображение пользователя DarkneSS.

Негативное отношение появилось, да :)

+3
mft - 29 Декабрь, 2012 - 19:23

один вопрос, зачем? Пользователю вообще не надо знать о сборке и подобных вещах. Типа так просто в 2 клика собрать и поставить прогу из сырцов? configure или cmake или qmake вывалят кучу ошибок о недостающих зависимостях, как собираешься обрабатывать? потом этот собранный мусор ставить в систему? Вообще идея в deb систему ставить что-то из сырцов редкостная глупость. Ну если конечно это не делает программист, который всё контролирует. Пользователю такую гадость подкидывать ни в коем случае нельзя!

Вывод - идею на помойку, разработчикам выкладывать готовые deb пакеты.

0
DarkneSS - 29 Декабрь, 2012 - 22:50
Изображение пользователя DarkneSS.

Это если во время конпеляции ошибку линковки не выплюнет или ещё чего.

+1
mft - 30 Декабрь, 2012 - 11:37

Даже если все исходники будут гладко собираться, что маловероятно. Установка всего по make install со временем приведет к очень печальным последствиям, система станет файловой помойкой. Не проверяются зависимости, конфликты, файлы других пакетов могут затереться. Потом как все эти программы удалять? Вот так вот потихоньку грамотно продуманная система превратиться в аналог винды, где при каждом чихе все будет сыпаться и падать. Лично я никогда не ставлю из сырцов. Кроме тех случаев, когда я сам что-то разрабатываю, ну и за редким исключением в opt или туда, где нечего сломать.

0
Mike - 30 Декабрь, 2012 - 19:37
Изображение пользователя Mike.

1) Скачиваем установочный файл exe или msi (скачиваем архив с файлами)Аффтар, ты там что, упоротый весь??

0
lord_i - 30 Декабрь, 2012 - 20:25
Изображение пользователя lord_i.

Не. Он не упоротый. Без скобок это как в винде делается, а в скобках - как в линуксе. Параллель проводится таким образом.

+1
Vlad_W_1999 - 31 Декабрь, 2012 - 00:12

Ну я бы понял, если бы было написано: выкачиваем deb файл. Но исходники сравнивать с маздайным инсталлятором... Изначальная предпосылка неверна. Так что автор таки упоротый.

0
MiraMaX166 - 5 Январь, 2013 - 14:05
Изображение пользователя MiraMaX166.

Ни одного упоминания о checkinstall и мультиархитектурной компилляции... Очень жаль, тема раскрыта не полностью. Соглашусь с Владом, автор дал маху)))

+1
Димоныч - 6 Январь, 2013 - 09:52

Автор просто пытался приуменьшить тот страх, который у меня появляется при словах "компилировать из исходников". Действительно для меня это страшно, поэтому без чёткой инструкции как например здесь не компилирую. Считаю что если нет готового deb- пакета... значитоно мне пока и ненадо :)

0
Mike - 6 Январь, 2013 - 10:29
Изображение пользователя Mike.

да ну, фигня какая. Чего бояться то?

+1
Platon - 6 Январь, 2013 - 12:44
Изображение пользователя Platon.

Страх для новичков полезен, мигранты с Win пытаются перенести modus operandi характерный для Windows в Linux, что изначально не верно, пусть последовательно привыкают к логике и образу действия принятому в семействе Linux, вырабатывают у себя навык установки из официальных реп, затем навык работы с терминалом и вот только после этого (имея некоторый опыт и понимание того что они делают) узнают об альтернативных репах (launchpad.net) и скачивании deb с оф.сайтов, а как финальный этап переходят к самостоятельной сборки из исходников.

0
Platon - 6 Январь, 2013 - 12:45
Изображение пользователя Platon.

Привычка качать откуда попало + возможность легко это "незнамо что" скомпилировать и запустить с правами рута - вам нужна сомнительная слава Андрюхи(Google Android)? DEamON вы случаем интересы антивирусных корпораций не лоббируете?)))

0
DEamON - 6 Январь, 2013 - 17:15
Изображение пользователя DEamON.

DEamON вы случаем интересы антивирусных корпораций не лоббируете?)))
Нет-нет, что вы)))

Хм... Действительно, я не подумал о том к чему это приведёт в более далёком будущем. Это сейчас нет вирусов (ну почти нет) и прочей лабуды, а как только любая бабушка сможет скомпилировать программу, то деятили сразу начнут выпускать всякие GIMP Pro, Amarok Deluxe с вирусными приблудами, как вариант.

Ну в общем то проблема, как я писал выше, в том, что пользователи (особенно мало просвещённые) думают о 100% необходимости что то компилировать на Linux, хотя это не правда. Нужно прямо заявлять "У нас куча приложений, бери выбирай, нажимай на кнопку, оно само установится". Получается, как обычно, проблема в неграмотности (или недограмотности). С одной стороны пользователю вообще не нужно знать о компиляции, с другой если он хоть чуть-чуть о ней знает, то нужно его просветить посильнее, чтобы у него не сложилось неправильное мнение.

+2
dyug - 6 Январь, 2013 - 21:13

ну вот, опять старый путь распространения вирусов под юнихом возобновляется...
"Слушай, у меня вирус есть...
Ух ты - дай посмотреть!!!!"
А учитывая разные архитектуры - теперь можно будет давать их (вирусы) в исходниках... :-)

+3
Lang - 6 Январь, 2013 - 17:23
Изображение пользователя Lang.

Лучше бы раскрыл такую тему "Стоит ли бояться приложений? И как их сделать менее страшными."
А то от многооконного Гимпа, дети не спали по ночам.

0
zotkindm - 6 Январь, 2013 - 20:51
Изображение пользователя zotkindm.

Раньше боялся, посмотрел http://www.youtube.com/watch?v=I77NFSjPj5M разобрался, понял, попробовал, получилось (впервые в жизни).

Отправить комментарий

CAPTCHA на основе изображений
Введите цифры