?

Log in

No account? Create an account
о линуксе и десктопе - Поклонник деепричастий [entries|archive|friends|userinfo]
Anatoly Vorobey

[ website | Website ]
[ userinfo | livejournal userinfo ]
[ archive | journal archive ]

Links
[Links:| English-language weblog ]

о линуксе и десктопе [апр. 19, 2012|07:24 pm]
Anatoly Vorobey
(эта запись может быть интересна пользователям Линукса и сочувствующим)

Известный линуксовский хакер Инго Молнар написал две интересные записи о том, что имеющаяся система распостранения программ в мире дистрибуций Линукса морально устарела:

первая часть: 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 в большинстве случаев; построить механизм прозрачного апдейта а-ля Хром. Если всем этим заняться сейчас, то есть шанс через год-два получить что-то многообещающее. Но есть ли влиятельные компании/дистрибуции, которые захотят пойти этим путем?
СсылкаОтветить

Comments:
Страница 1 из 2
<<[1] [2] >>
[User Picture]From: blacklion
2012-04-19 04:29 pm
Виндоуз: идешь на сайт, находишь кнопку Download, скачиваешь и запускаешь установщик, нажимаешь Next на все кнопки.
И через неделю вся винда обвешана гугл- яндекс- яху-тулбарами и прочей дрянью! Нееее, читать надо!
(Ответить) (Thread)
From: rezkiy
2012-04-19 11:18 pm
снимаешь все галки, нажимаешь некст на все конпки :-)
(Ответить) (Parent) (Thread) (Развернуть)
[User Picture]From: blacklion
2012-04-19 04:32 pm
отказаться от общесистемных shared libraries в большинстве случаев
Welcome to DLL HELL?! И куча дырявых приложений, потому что тавтор пакета именно этого приложения не заметил, что в libc/openssl/libx дырка и пора апгрейдить пакет из-за библиотеки?

Вообще, странно всё это — знакомые линуксоиды все как один говорят что тут проще, чем под виндой — любое приложение само апдейтится, не надо следить, не надо вспоминать страничку приложения, есть общий GUI, где есть полный список, etc.
(Ответить) (Thread)
[User Picture]From: shadow_ru
2012-04-19 05:13 pm
Вообще, странно всё это — знакомые линуксоиды все как один говорят что тут проще, чем под виндой — любое приложение само апдейтится, не надо следить, не надо вспоминать страничку приложения, есть общий GUI, где есть полный список, etc.

Как незнакомый, но линуксоид, полностью поддерживаю данное высказывание.
(Ответить) (Parent) (Thread) (Развернуть)
From: qehgt
2012-04-19 04:37 pm
>Оказывается, его пакет слишком старой версии (годичной давности)
Для разработки используют debian testing, там нет этой проблемы. Под Ubuntu есть PPA, который тоже проблему снимает.
(Ответить) (Thread)
[User Picture]From: meshko
2012-04-19 04:38 pm
Нет смысла делать Линукс проще в использовании на десктопе, потому что вообще не совсем ясно, что будет с десктопом.
Линукс -- в первую очередь серверная система. Не ясно, зачем его вообще тащить на десктоп.
Большая часть десктопов все равно теперь лэптопы, а поскольку кроме Эпла лэптопы делать никто не умеет, придется всем переходить на Мак ОС. Что, собственно, и происходит, особенно среди потенциальных пользователей Линукса на десктопе.
(Ответить) (Thread)
From: dmpogo
2012-04-19 05:36 pm
С точки зрения железа Апплы уже практически ширпотреб. К тому же с движением OSX в направлении Lion->Mountain Lion->IOS переходящих тоже убавляется (*) Теперь под Маком над и X вручную устанавливать, и Самбу, и AFP барахлит, и CUPS надо практически вручную конфигурировать

(Ответить) (Parent) (Thread) (Развернуть)
[User Picture]From: _iga
2012-04-19 04:38 pm
> отказаться от общесистемных shared libraries

Это будет революция.

Что интересно, в мире Windows никто не предлагает отказаться от KERNEL32.DLL или USER32.DLL (правда, возникает зоопарк MSVCRT* в WinSxS).
(Ответить) (Thread)
[User Picture]From: develop7
2012-04-20 04:16 pm
тю
у меня в этом каталоге одних kernel32.dll штук шесть
(Ответить) (Parent) (Thread)
[User Picture]From: nieuwe_zijd
2012-04-19 04:40 pm
"Maleware" - это явный сексизм!
(Ответить) (Thread)
[User Picture]From: dzz
2012-04-19 07:17 pm
Femaleware? :)
(Ответить) (Parent) (Thread)
(Удалённый комментарий)
(Удалённый комментарий)
[User Picture]From: dmbuligin
2012-04-19 05:29 pm
Полностью поддерживаю!
(Ответить) (Parent) (Thread)
[User Picture]From: shadow_ru
2012-04-19 05:11 pm
Как странно. Мне проще один раз написать aptitude install emacs mutt firefox mpd urxvt ..., чем лазить по десяткам сайтов, скачивать инсталяторы, поддерживать свежесть локального архива софта и прочее.
(Ответить) (Thread)
[User Picture]From: dimrub
2012-04-19 05:53 pm
плюс много.
(Ответить) (Parent) (Thread)
[User Picture]From: lelia_br
2012-04-19 05:26 pm
Как я устанавливаю аппликации на Линуксе: иду в Applications->Software Center -> Search for application -> Press install. This way the latest version is installed and any other relevant packages. Apt-get installation is a nightmare!
(Ответить) (Thread)
[User Picture]From: mfi
2012-04-19 10:58 pm
Именно! Когда я вижу в описании нагугленой софтине что то типа aptitude install или apt-get - я закрываю страницу. У меня компьютер для дел, а не красноглазых развлечений. Может еще пакеты из сорсов собирать или ядро патчить? Сорсы у меня свои есть, мне их компиляции довольно. Если пакета нет в общем репозитории - его нет вообще.

Как максимум - могу добавить репозиторий к своему списку - но потом обязательно отключу.

Что то авва накрутил - точнее - не ввел граничные условия.
(Ответить) (Parent) (Thread) (Развернуть)
[User Picture]From: dimas
2012-04-19 05:36 pm
ну, это другая сторона гибкости и наличия выбора ...

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

(к)убунта все-таки уж больно под обычного юзера заточена, и под относительную стабильность ...

на девелоперской машине уже лет пять, если не больше, держу gentoo и практически не напрягаюсь с версиями пакетов, в тех редких случаях, когда не устраивает стабильная версия, или по-умолчанию собирается без нужных ключей, добавить ключевых слов - пять минут ... но это, конечно, не для конечного пользователя вариант ... вот если бы кто сделал то же самое, но через гуй, да со сборкой с нужными ключами на удаленном кластере, чтобы пользователю только оставалось скачать и поставить :)
(Ответить) (Thread)
From: dmpogo
2012-04-19 05:43 pm
О, я тоже держу gentoo, даже на лаптопе, и все отлично.
(Ответить) (Parent) (Thread)
(Удалённый комментарий)
[User Picture]From: ilya_dogolazky
2012-04-19 05:43 pm
Забавно, видимо эта ваша убунта сильно отличается от собственно дебиана.
(Ответить) (Thread)
[User Picture]From: janatem
2012-04-19 05:53 pm
> Виндоуз: идешь на сайт, находишь кнопку Download, скачиваешь и запускаешь установщик, нажимаешь Next на все кнопки.

> Линукс (Ubuntu): apt-get [логичное название пакета] не работает. Надо понять, как он называется.

Здесь вы несколько слукавили: ведь в случае с виндовсом откуда-то стало известно название программы, которую следует скачать? Для честного сравнения следует рассматривать процесс установки, начиная с того момента, когда имя пакета уже известно. Если повезло, и нужный пакет есть в родном дистрибутиве и удовлетворительно новый, то дальше вообще никаких проблем — установка уж проще некуда (до перехода на дебиан, я пользовался ред хатом, в котором тогда еще не было yum'а — там была возня с тем, чтобы вручную устанавливать пакеты, чтобы удовлетворить зависимости; уже давно забыто как страшный сон). Бывают случаи, когда нужный пакет не находится, тогда, действительно, приходится повозиться, вплоть до установки из исходников. Хотя я сталкиваюсь с этим довольно редко и чем дальше тем реже. Но разве в видновсе установленные программы всегда сразу начинают работать?

Но я в общем не про то хотел сказать. Корень проблемы немного в другом. Принятая в видновсе традиция (найти софтину на сайте, скачать, запустить установщик) — это первая и естественная идея распространения софта. Она в таком виде зародилась и с тех пор в общем-то не развилась. Этот метод плох тем, что вообще никак не помогает решать типичные проблемы установки — программа может требовать определенное окружение, и важно знать, как удовлетворить ее требования, желательно автоматическим образом.

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

Проблему с тем, что сложность дерева зависимостей сильно растет, можно пытаться побороть другими способами. Например, отсекать некоторые зависимости, дублируя код, — если наш пакет A зависит от маленького пакета B, который может потом измениться и перестать нас удовлетворять, то можно включить B в A. Также воздерживаться от разделяемых библиотек и делать другую антиоптимизацию... В общем, совсем отказываться от привычной схемы — всё равно что лечить перхоть гильотиной.
(Ответить) (Thread)
[User Picture]From: orleanz
2012-04-20 08:29 am
" программа может требовать определенное окружение, и важно знать, как удовлетворить ее требования, желательно автоматическим образом.

вот как раз под Виндоус проблем с окружением не возникает обычно

это преимущество именно виндоус-подхода - в подавлящем большинстве случаев скачанная программа устанавливается и сразу работает, без танцев с бубном

достигается это, разумеется, некрасивым брут-форсом - дупликацией кода библиотек (если нужно). Но почему для меня как пользователя программы дупликация библиотек должна волновать? Размер скачиваемого файла в наши дни не имеет никакого значения. Если дуплицированная библиотека сидит себе в отдельной папке, не смешиваясь со всем другим, и служит только для одной установленной программы - какие проблемы? Наоборот, я даже приветствую такую ситуацию, потому что я не хочу чтобы апргрейд shared библиотеки повлиял на работу скачанной мной программы.




(Ответить) (Parent) (Thread) (Развернуть)
[User Picture]From: avnik
2012-04-19 06:47 pm
Думаю для бинарных дистрибутивов -- PPA верное направление, указать вместо ссылки на страничке download в каких дистрибутивах сборка уже есть (если есть), и как добавить свое PPA и какой пакет после этого надо установить.
(Ответить) (Thread)
[User Picture]From: ravli
2012-04-19 07:06 pm
Кстати, в убунте уже вполне себе работают url-ы для добавления PPA и установки. Т.е. "нажмите сюда", и "а потом сюда". И, что важно, дальше обновляться все будет само и без вопросов. И если software center научится подхватывать сторонние РРА, то будет вполне удобно.
(Ответить) (Parent) (Thread) (Развернуть)
[User Picture]From: vdinets
2012-04-19 07:06 pm
Винда задалбывает мелкими подлянками. У меня на лаптопе, например, диск С маленький и переполненный, а диск D полупустой. От многих микрософтовских шедевров приходится отказываться просто потому, что они тупо устанавливают себя на С, не спрашивая.
(Ответить) (Thread)
[User Picture]From: braindancer
2012-04-21 12:00 am
Каких, например? Я не издеваюсь, мне интересно.

Из личного опыта - абсолютно все майкрософтовские продукты поддерживают установку в произвольный каталог (просто надо нажимать customize, а не install, кнопка которого как правило в три раза больше). А вот Chrome, как ни смешно, заставить установиться "не туда" невозможно (ну, кроме плясок с симлинками).
(Ответить) (Parent) (Thread) (Развернуть)
Страница 1 из 2
<<[1] [2] >>