?

Log in

о линуксе и десктопе - Поклонник деепричастий [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) (Развернуть)
[User Picture]From: onodera
2012-04-19 07:07 pm
А насколько несовместимы между собой бинарные версии программ под разные дистрибутивы? Или там проблема не в дистрибутивах, а в версиях библиотек? Почему Линукс-сообщество не пытается решить проблему с этой стороны хотя бы для х86 и x86-64? Пошёл гуглить себе ответ.
(Ответить) (Thread)
[User Picture]From: meshko
2012-04-19 07:16 pm
Да, версии библиотек. Бинарники-то совместимы. То есть достаточно статически линкованная программа будет работать вслду. Я когда-то работал на коммерческом продукте для Линукса, мы ухитрялись иметь один билд, который работал на трех разных версиях РедХэта и на Сусе, даже без особых ухищрений на самом деле.
(Ответить) (Parent) (Thread) (Развернуть)
[User Picture]From: fima
2012-04-19 07:38 pm
Все эти download, бесчисленные нажатия на next, apt-get и прочее уже давно устарели, это все было придумано программистами без каких-либо мыслей об удобстве пользователя. Простому смертному нужна лишь кнопка run, причем скачивается только необходимая часть, а остальные библиотеки подгружаются по мере необходимости, т.е. придется еще подумать об экономии времени пользователя.
Идея это весьма стара, больше 10 лет назад был подобный проект для линукса, работал он с некоторым скрипом и, к сожалению, быстро сдох.
(Ответить) (Thread)
From: huzhepidarasa
2012-04-19 09:22 pm
не, вроде шевелится
хттп : / / 0install.net
(Ответить) (Parent) (Thread)
[User Picture]From: nec_p1us_u1tra
2012-04-19 08:24 pm
Так как avva многократно и неопровержимо демонстрировал, что дураком не является, я склонен считать этот пост набросом.
(Ответить) (Thread)
[User Picture]From: orleanz
2012-04-20 08:42 am
типа, на самом-то деле люди мучаются с установкой виндоус програм?
(Ответить) (Parent) (Thread) (Развернуть)
From: mikhaelo
2012-04-19 08:41 pm
Категорически не согласен. Работаю с убунту с 8-го года, за все время ставил одну единственную программу с соурсов и то, т.к. ее не успели прорелизить к свежевыпеченной версии убунту. А так - через тот же апт-гет. Причем, есть программа synaptic которая всегда есть по умолчанию которая в миг находит и устанавливает пакеты, для тех кто не любит шел.

И если нет программы в дистрибуции, то не нужно искать дэб в гугле, нужно подключить ее соурс и ставить и потом обновлять через стандартный механизм. Короче - RTFM

С виндой (дома) наоборот проблемы, пока найдешь, пока переберешь тонны шаревэре в поисках чего-то стоящего ... фигня, короче.
(Ответить) (Thread)
[User Picture]From: igorbor
2012-04-19 09:16 pm

Виндоуз: идешь на сайт, находишь кнопку Download, скачиваешь и запускаешь установщик, нажимаешь Next на все кнопки.

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


Здесь есть небольшая неувязка, по-моему. Вот в этом "идешь на сайт" на Виндос - если логичное название пакета не работает, то и логичное название сайта работать не будет (и кстати с гораздо бОльшей вероятностью).



(Ответить) (Thread)
From: dmpogo
2012-04-19 09:19 pm
Плюс придя на сайт 10 минут выясняешь не левый ли он, и на что ты подписываешься нажимая на Download
(Ответить) (Parent) (Thread)
[User Picture]From: amarao_san
2012-04-19 09:16 pm
Используйте sid, а не stable. Будут новые версии пакетов.

Вот лично я от новости "а fio есть в репозитории" испытал явное удовольствие, ибо это apt-get install fio, а рядом веб-морда к СХД сначала сказала "дайте яву" (зашёл на яву, скачал, обкликал всё мышкой), потом сказала "дайте флеш" (для графиков), зашёл на сайт, скачал, обкликал мышкой, потом запустил инсталлятор, тоже обкликал мышкой.

Нафига?

apt-get install и всё на месте.
(Ответить) (Thread)
[User Picture]From: avnik
2012-04-19 10:34 pm
Использование sid предполагает все таки наличие знаний и умений, достаточных чтобы воткнуть apt-listchanges и хотя бы проглядывать наискось, то что там пишут. Иначе чревато.
(Ответить) (Parent) (Thread) (Развернуть)
[User Picture]From: stas
2012-04-19 10:51 pm
Это, похоже, какие-то убунтовские штучки - и с названием пакетов (yum search меня понимал в 99% случаев, почему у дебиана поиск называется cache, мне не ясно, видимо, чтобы жизнь интереснее была) и с версиями - о чём я не первый раз слышу, что дебиановцы маринуют новые версии годами, видимо считая, что софт, как коньяк, от выдержки только улучшается. Но это не проблема Линукса, а конкретного его извода.
(Ответить) (Thread)
[User Picture]From: beldmit
2012-04-20 05:48 pm
У дебиана тоже search. Но у программы apt-cache :-)
(Ответить) (Parent) (Thread) (Развернуть)
[User Picture]From: slpvm
2012-04-19 11:24 pm

synaptic

Можно же просто воспользоваться Synaptic, центр приложений Ubuntu.
Лично для меня установка приложений намного удобнее в Ubuntu нежели в Windows. А вообще да, я за унификацию, за единый стандарт пакетов. Хотя в принципе deb и rpm по сути стандарты и всегда дублируют друг друга на сайтах производителей ПО. Но я не специалист, простой пользователь, быть может я чего-то не понимаю.
(Ответить) (Thread)
[User Picture]From: altmind
2012-04-20 06:35 am
душу демонам бы отдал за дистрибутив, где есть аналог виндового SxS и статическая сборка пакетов.
(Ответить) (Thread)
[User Picture]From: janatem
2012-04-20 01:17 pm
Анатолий, конкретно насчет проблемы, что в убунте слишком старые пакеты — как уже советовали в комментариях, надо уйти со stable на testing. Резона использовать stable вообще нет, разве что для экономии трафика.

Я расскажу, какая схема установилась у меня (использую дебиан, но, насколько я знаю, в убунте всё аналогично).

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 (обновить все пакеты) никогда не делаю — раньше это было слишком накладно по трафику, а теперь просто не вижу нужды — пакеты и так постепенно обновляются естественным образом за счет своих зависимостей.
(Ответить) (Thread)
Страница 1 из 2
<<[1] [2] >>