о линуксе и десктопе
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 11:18 pm (UTC)(no subject)
From: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 05:13 pm (UTC)Как незнакомый, но линуксоид, полностью поддерживаю данное высказывание.
(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From: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 05:36 pm (UTC)(no subject)
From:(no subject)
From:(no subject)
From: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-20 04:16 pm (UTC)у меня в этом каталоге одних kernel32.dll штук шесть
no subject
Date: 2012-04-19 04:40 pm (UTC)no subject
Date: 2012-04-19 07:17 pm (UTC)(no subject)
From: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:29 pm (UTC)(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:no subject
Date: 2012-04-19 05:11 pm (UTC)no subject
Date: 2012-04-19 05:53 pm (UTC)(no subject)
From:no subject
Date: 2012-04-19 05:26 pm (UTC)no subject
Date: 2012-04-19 10:58 pm (UTC)Как максимум - могу добавить репозиторий к своему списку - но потом обязательно отключу.
Что то авва накрутил - точнее - не ввел граничные условия.
(no subject)
From:(no subject)
From: (Anonymous) - Date: 2012-04-20 03:40 pm (UTC) - Expand(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:no subject
Date: 2012-04-19 05:36 pm (UTC)в линуксе, как мне кажется, важно выбрать правильно подходящий под профиль использования (и знакомого линукс-гуру на стартовом этапе:) дистрибутив ...
(к)убунта все-таки уж больно под обычного юзера заточена, и под относительную стабильность ...
на девелоперской машине уже лет пять, если не больше, держу gentoo и практически не напрягаюсь с версиями пакетов, в тех редких случаях, когда не устраивает стабильная версия, или по-умолчанию собирается без нужных ключей, добавить ключевых слов - пять минут ... но это, конечно, не для конечного пользователя вариант ... вот если бы кто сделал то же самое, но через гуй, да со сборкой с нужными ключами на удаленном кластере, чтобы пользователю только оставалось скачать и поставить :)
no subject
Date: 2012-04-19 05:43 pm (UTC)(no subject)
From:no subject
Date: 2012-04-19 05:43 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-20 08:29 am (UTC)вот как раз под Виндоус проблем с окружением не возникает обычно
это преимущество именно виндоус-подхода - в подавлящем большинстве случаев скачанная программа устанавливается и сразу работает, без танцев с бубном
достигается это, разумеется, некрасивым брут-форсом - дупликацией кода библиотек (если нужно). Но почему для меня как пользователя программы дупликация библиотек должна волновать? Размер скачиваемого файла в наши дни не имеет никакого значения. Если дуплицированная библиотека сидит себе в отдельной папке, не смешиваясь со всем другим, и служит только для одной установленной программы - какие проблемы? Наоборот, я даже приветствую такую ситуацию, потому что я не хочу чтобы апргрейд shared библиотеки повлиял на работу скачанной мной программы.
(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:no subject
Date: 2012-04-19 06:47 pm (UTC)no subject
Date: 2012-04-19 07:06 pm (UTC)(no subject)
From:no subject
Date: 2012-04-19 07:06 pm (UTC)no subject
Date: 2012-04-21 12:00 am (UTC)Из личного опыта - абсолютно все майкрософтовские продукты поддерживают установку в произвольный каталог (просто надо нажимать customize, а не install, кнопка которого как правило в три раза больше). А вот Chrome, как ни смешно, заставить установиться "не туда" невозможно (ну, кроме плясок с симлинками).
(no subject)
From:(no subject)
From:no subject
Date: 2012-04-19 07:07 pm (UTC)no subject
Date: 2012-04-19 07:16 pm (UTC)(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:(no subject)
From:no subject
Date: 2012-04-19 07:38 pm (UTC)Идея это весьма стара, больше 10 лет назад был подобный проект для линукса, работал он с некоторым скрипом и, к сожалению, быстро сдох.
no subject
Date: 2012-04-19 09:22 pm (UTC)хттп : / / 0install.net
no subject
Date: 2012-04-19 08:24 pm (UTC)no subject
Date: 2012-04-20 08:42 am (UTC)(no subject)
From:(no subject)
From:(no subject)
From:no subject
Date: 2012-04-19 08:41 pm (UTC)И если нет программы в дистрибуции, то не нужно искать дэб в гугле, нужно подключить ее соурс и ставить и потом обновлять через стандартный механизм. Короче - RTFM
С виндой (дома) наоборот проблемы, пока найдешь, пока переберешь тонны шаревэре в поисках чего-то стоящего ... фигня, короче.
no subject
Date: 2012-04-19 09:16 pm (UTC)Виндоуз: идешь на сайт, находишь кнопку Download, скачиваешь и запускаешь установщик, нажимаешь Next на все кнопки.
Линукс (Ubuntu): apt-get [логичное название пакета] не работает.
Здесь есть небольшая неувязка, по-моему. Вот в этом "идешь на сайт" на Виндос - если логичное название пакета не работает, то и логичное название сайта работать не будет (и кстати с гораздо бОльшей вероятностью).
no subject
Date: 2012-04-19 09:19 pm (UTC)no subject
Date: 2012-04-19 09:16 pm (UTC)Вот лично я от новости "а fio есть в репозитории" испытал явное удовольствие, ибо это apt-get install fio, а рядом веб-морда к СХД сначала сказала "дайте яву" (зашёл на яву, скачал, обкликал всё мышкой), потом сказала "дайте флеш" (для графиков), зашёл на сайт, скачал, обкликал мышкой, потом запустил инсталлятор, тоже обкликал мышкой.
Нафига?
apt-get install и всё на месте.
no subject
Date: 2012-04-19 10:34 pm (UTC)(no subject)
From:(no subject)
From:no subject
Date: 2012-04-19 10:51 pm (UTC)no subject
Date: 2012-04-20 05:48 pm (UTC)(no subject)
From:(no subject)
From:synaptic
Date: 2012-04-19 11:24 pm (UTC)Лично для меня установка приложений намного удобнее в Ubuntu нежели в Windows. А вообще да, я за унификацию, за единый стандарт пакетов. Хотя в принципе deb и rpm по сути стандарты и всегда дублируют друг друга на сайтах производителей ПО. Но я не специалист, простой пользователь, быть может я чего-то не понимаю.
no subject
Date: 2012-04-20 06:35 am (UTC)no subject
Date: 2012-04-20 01:17 pm (UTC)Я расскажу, какая схема установилась у меня (использую дебиан, но, насколько я знаю, в убунте всё аналогично).
1. В /etc/apt/sources.list у меня обычно прописано несколько дистрибутивов: дебиановские testing, stable и обновления к стабильному, а также несколько сторонних (гугловский для хрома, какая-то убунта для детских игрушек и т.п.). Иногда добавляю unstable, причем реально он почти не используется, поскольку в /etc/apt/preferences сказано, что у него очень низкий приоритет, и при установке нужно явно указывать, что я хочу именно из unstable. Вообще, мне очень редко это нужно.
2. Высший приоритет у testing. Стабильный со своими добавками нужен лишь для гладкого и постепенного переползания на следующие версии по мере их выпуска.
3. В sources.list записываю дистрибутивы по именам (wheezy, squeeze, ...), а не по их символическим ссылкам. Testing, (un)stable — это ссылки, которые могут меняться со временем во воле разработчиков дистрибутивов. Поэтому при очередном обновлении/установке мелкого пакета не будет сюрприза, связанного с выпуском очередного дистрибутива, который выражается в том, что apt захочет обновить все 500 пакетов. По мере выхода новых дистрибутивов вручную меняю имена в sources.list (когда нечем заняться ;) ). При этом apt-get upgrade (обновить все пакеты) никогда не делаю — раньше это было слишком накладно по трафику, а теперь просто не вижу нужды — пакеты и так постепенно обновляются естественным образом за счет своих зависимостей.