о линуксе и десктопе
Apr. 19th, 2012 07:24 pm(эта запись может быть интересна пользователям Линукса и сочувствующим)
Известный линуксовский хакер Инго Молнар написал две интересные записи о том, что имеющаяся система распостранения программ в мире дистрибуций Линукса морально устарела:
первая часть: https://plus.google.com/109922199462633401279/posts/HgdeFDfRzNe
вторая часть: https://plus.google.com/109922199462633401279/posts/VSdDJnscewS
Я думаю, что он совершенно прав насчет того, что не работает, но не уверен, что согласен с его мнением о правильном решении проблемы.
Я работаю ежедневно и под Виндоуз, и под Линуксом, и я давно уже заметил, что если мне нужно установить какое-то небольшое приложение, то я заранее "предвкушаю" то, что под Линуксом потрачу больше времени и нервов.
Виндоуз: идешь на сайт, находишь кнопку Download, скачиваешь и запускаешь установщик, нажимаешь Next на все кнопки.
Линукс (Ubuntu): apt-get [логичное название пакета] не работает. Надо понять, как он называется. apt-cache search |grep [ключевое слово] дает слишком много вариантов, но в конце концов находишь нужный. Оказывается, его пакет слишком старой версии (годичной давности) и там нет функциональности, которая тебе нужна. Теперь надо решать, подключать пакет из unstable или скачать исходники с сайта и вручную самому построить. Оба варианта не вызывают энтузиазма...
Что-то в этом не так. Огромное количество добровольного труда тратится на поддержание дерева пакетов (причем еще разных деревьев для разных дистрибуций), но при этом конечный результат категорически не scalable в современных условиях, содержит неподъемное количество внутренных перекрестных ссылок, битком набит устаревшими версиями, и далеко не так удобен в использовании конечным юзером, как "пойти на сайт и нажать на download". Есть, конечно, положительные черты этого устройства: секьюрити в первую очередь. Но перевешивают ли они неудобство?
Теоретически ничто не мешает сайтам выкладывать, скажем, RPM или .deb-файлы, а мне скачивать их нажатием кнопки на сайте, и устанавливать. Некоторые сайты так и делают. Но в целом это остается очень маргинальным способом устанавливать ПО в линуксе (и браузеры обычно не заточены на то, чтобы юзеру-чайнику это было так же легко, как в Виндоуз).
С другой стороны, если бы так делали все, то и с вирусами была бы более серьезная проблема (хоть и не настолько, как в Виндоуз, которая просто в первую очередь привлекает авторов malware ввиду своей доли рынка).
Может, Молнар прав, и какая-то схема, включающая цифровые подписи и возможность отменить злодейский пакет, но при этом не основывающаяся на иерархии и не требующая армии добровольцев для поддержания - это правильный ответ. Что-то вроде открытой версии Android Market. Но для того, чтобы это могло стать реальностью, подозреваю, что нужна серьезная работа по подгонке системы под это: перелопатить ABI и сделать его обширнее и удобнее; отказаться от общесистемных shared libraries в большинстве случаев; построить механизм прозрачного апдейта а-ля Хром. Если всем этим заняться сейчас, то есть шанс через год-два получить что-то многообещающее. Но есть ли влиятельные компании/дистрибуции, которые захотят пойти этим путем?
Известный линуксовский хакер Инго Молнар написал две интересные записи о том, что имеющаяся система распостранения программ в мире дистрибуций Линукса морально устарела:
первая часть: https://plus.google.com/109922199462633401279/posts/HgdeFDfRzNe
вторая часть: https://plus.google.com/109922199462633401279/posts/VSdDJnscewS
Я думаю, что он совершенно прав насчет того, что не работает, но не уверен, что согласен с его мнением о правильном решении проблемы.
Я работаю ежедневно и под Виндоуз, и под Линуксом, и я давно уже заметил, что если мне нужно установить какое-то небольшое приложение, то я заранее "предвкушаю" то, что под Линуксом потрачу больше времени и нервов.
Виндоуз: идешь на сайт, находишь кнопку Download, скачиваешь и запускаешь установщик, нажимаешь Next на все кнопки.
Линукс (Ubuntu): apt-get [логичное название пакета] не работает. Надо понять, как он называется. apt-cache search |grep [ключевое слово] дает слишком много вариантов, но в конце концов находишь нужный. Оказывается, его пакет слишком старой версии (годичной давности) и там нет функциональности, которая тебе нужна. Теперь надо решать, подключать пакет из unstable или скачать исходники с сайта и вручную самому построить. Оба варианта не вызывают энтузиазма...
Что-то в этом не так. Огромное количество добровольного труда тратится на поддержание дерева пакетов (причем еще разных деревьев для разных дистрибуций), но при этом конечный результат категорически не scalable в современных условиях, содержит неподъемное количество внутренных перекрестных ссылок, битком набит устаревшими версиями, и далеко не так удобен в использовании конечным юзером, как "пойти на сайт и нажать на download". Есть, конечно, положительные черты этого устройства: секьюрити в первую очередь. Но перевешивают ли они неудобство?
Теоретически ничто не мешает сайтам выкладывать, скажем, RPM или .deb-файлы, а мне скачивать их нажатием кнопки на сайте, и устанавливать. Некоторые сайты так и делают. Но в целом это остается очень маргинальным способом устанавливать ПО в линуксе (и браузеры обычно не заточены на то, чтобы юзеру-чайнику это было так же легко, как в Виндоуз).
С другой стороны, если бы так делали все, то и с вирусами была бы более серьезная проблема (хоть и не настолько, как в Виндоуз, которая просто в первую очередь привлекает авторов malware ввиду своей доли рынка).
Может, Молнар прав, и какая-то схема, включающая цифровые подписи и возможность отменить злодейский пакет, но при этом не основывающаяся на иерархии и не требующая армии добровольцев для поддержания - это правильный ответ. Что-то вроде открытой версии Android Market. Но для того, чтобы это могло стать реальностью, подозреваю, что нужна серьезная работа по подгонке системы под это: перелопатить ABI и сделать его обширнее и удобнее; отказаться от общесистемных shared libraries в большинстве случаев; построить механизм прозрачного апдейта а-ля Хром. Если всем этим заняться сейчас, то есть шанс через год-два получить что-то многообещающее. Но есть ли влиятельные компании/дистрибуции, которые захотят пойти этим путем?
no subject
Date: 2012-04-19 04:29 pm (UTC)И через неделю вся винда обвешана гугл- яндекс- яху-тулбарами и прочей дрянью! Нееее, читать надо!
no subject
Date: 2012-04-19 04:32 pm (UTC)Welcome to DLL HELL?! И куча дырявых приложений, потому что тавтор пакета именно этого приложения не заметил, что в libc/openssl/libx дырка и пора апгрейдить пакет из-за библиотеки?
Вообще, странно всё это — знакомые линуксоиды все как один говорят что тут проще, чем под виндой — любое приложение само апдейтится, не надо следить, не надо вспоминать страничку приложения, есть общий GUI, где есть полный список, etc.
no subject
Date: 2012-04-19 04:37 pm (UTC)Для разработки используют debian testing, там нет этой проблемы. Под Ubuntu есть PPA, который тоже проблему снимает.
no subject
Date: 2012-04-19 04:38 pm (UTC)Линукс -- в первую очередь серверная система. Не ясно, зачем его вообще тащить на десктоп.
Большая часть десктопов все равно теперь лэптопы, а поскольку кроме Эпла лэптопы делать никто не умеет, придется всем переходить на Мак ОС. Что, собственно, и происходит, особенно среди потенциальных пользователей Линукса на десктопе.
no subject
Date: 2012-04-19 04:38 pm (UTC)Это будет революция.
Что интересно, в мире Windows никто не предлагает отказаться от KERNEL32.DLL или USER32.DLL (правда, возникает зоопарк MSVCRT* в WinSxS (http://en.wikipedia.org/wiki/Winsxs)).
no subject
Date: 2012-04-19 04:40 pm (UTC)no subject
Date: 2012-04-19 04:59 pm (UTC)no subject
Date: 2012-04-19 05:05 pm (UTC)no subject
Date: 2012-04-19 05:11 pm (UTC)no subject
Date: 2012-04-19 05:13 pm (UTC)Как незнакомый, но линуксоид, полностью поддерживаю данное высказывание.
no subject
Date: 2012-04-19 05:14 pm (UTC)no subject
Date: 2012-04-19 05:26 pm (UTC)no subject
Date: 2012-04-19 05:29 pm (UTC)no subject
Date: 2012-04-19 05:36 pm (UTC)в линуксе, как мне кажется, важно выбрать правильно подходящий под профиль использования (и знакомого линукс-гуру на стартовом этапе:) дистрибутив ...
(к)убунта все-таки уж больно под обычного юзера заточена, и под относительную стабильность ...
на девелоперской машине уже лет пять, если не больше, держу gentoo и практически не напрягаюсь с версиями пакетов, в тех редких случаях, когда не устраивает стабильная версия, или по-умолчанию собирается без нужных ключей, добавить ключевых слов - пять минут ... но это, конечно, не для конечного пользователя вариант ... вот если бы кто сделал то же самое, но через гуй, да со сборкой с нужными ключами на удаленном кластере, чтобы пользователю только оставалось скачать и поставить :)
no subject
Date: 2012-04-19 05:36 pm (UTC)no subject
Date: 2012-04-19 05:36 pm (UTC)no subject
Date: 2012-04-19 05:43 pm (UTC)no subject
Date: 2012-04-19 05:43 pm (UTC)no subject
Date: 2012-04-19 05:52 pm (UTC)no subject
Date: 2012-04-19 05:53 pm (UTC)no subject
Date: 2012-04-19 05:53 pm (UTC)> Линукс (Ubuntu): apt-get [логичное название пакета] не работает. Надо понять, как он называется.
Здесь вы несколько слукавили: ведь в случае с виндовсом откуда-то стало известно название программы, которую следует скачать? Для честного сравнения следует рассматривать процесс установки, начиная с того момента, когда имя пакета уже известно. Если повезло, и нужный пакет есть в родном дистрибутиве и удовлетворительно новый, то дальше вообще никаких проблем — установка уж проще некуда (до перехода на дебиан, я пользовался ред хатом, в котором тогда еще не было yum'а — там была возня с тем, чтобы вручную устанавливать пакеты, чтобы удовлетворить зависимости; уже давно забыто как страшный сон). Бывают случаи, когда нужный пакет не находится, тогда, действительно, приходится повозиться, вплоть до установки из исходников. Хотя я сталкиваюсь с этим довольно редко и чем дальше тем реже. Но разве в видновсе установленные программы всегда сразу начинают работать?
Но я в общем не про то хотел сказать. Корень проблемы немного в другом. Принятая в видновсе традиция (найти софтину на сайте, скачать, запустить установщик) — это первая и естественная идея распространения софта. Она в таком виде зародилась и с тех пор в общем-то не развилась. Этот метод плох тем, что вообще никак не помогает решать типичные проблемы установки — программа может требовать определенное окружение, и важно знать, как удовлетворить ее требования, желательно автоматическим образом.
В большинстве популярных линуксов действительно выстраивается дерево (на самом деле, не совсем дерево, но здесь это неважно) зависимостей пакетов. При этом в рамках каждого дистрибутива должны работать люди, перетаскивающией сторонние программы из исходиков в пакет родного дистрибутива (в дебиане эта деятельность называется дебианизацией). Конечно, эта работа ничтожно мала по сравнению с разработкой программы и даже с переносом ее на другую архитектуру, но она всё же не настолько тривиальна, чтобы ее можно было поручить роботу. Таким образом, имеем определенные накладные расходы по сравнению с "нулевым" (который принят в виндовсе) методом. Однако взамен получаем кучу коврижек, которые, я уверен, всё окупают, если правильно ими пользоваться.
Проблему с тем, что сложность дерева зависимостей сильно растет, можно пытаться побороть другими способами. Например, отсекать некоторые зависимости, дублируя код, — если наш пакет A зависит от маленького пакета B, который может потом измениться и перестать нас удовлетворять, то можно включить B в A. Также воздерживаться от разделяемых библиотек и делать другую антиоптимизацию... В общем, совсем отказываться от привычной схемы — всё равно что лечить перхоть гильотиной.
no subject
Date: 2012-04-19 05:53 pm (UTC)no subject
Date: 2012-04-19 06:44 pm (UTC)no subject
Date: 2012-04-19 06:47 pm (UTC)no subject
Date: 2012-04-19 06:49 pm (UTC)