Не инсталлируй, просто копируй с klik

Курт Пфайфле (Kurt Pfeifle), Четверг, 13 Октябрь 2005, 16:11


<ul>
<li>Вы можете себе представить как вы копируете один-единственный файл в вашу систему куда-либо, где у вас есть права "rw" (без необходимости в правах root) и этот файл представляет собой сложное приложение, которое вы можете запустить?</li>
<li>Вы можете себе представить, что простым кликом на вебсайте вы можете сделать "копирование-" и запустить такое приложение?</li>
<li>Вы можете себе представить, что такая простая "инсталляция" ни коим образом не повлияет на стабильность вашей основной системы?</li>
<li>Вы можете себе представить, что этот файл можно запустить даже с USB флэшки? И что вы просто вставите ее в другой компьютер, чтобы запустить приложение на нем?</li>
<li>Вы можете себе представить, что у вас есть возможность запукать последний официальный релиз Krita параллельно с последним ночным кодом Будевийна (Boudewijn) и эти две версии никак не будут пересекаться между собой?</li>
<li>Вы можете себе представить, что процесс отката в вашу старую систему потребует удаления одного-единственного файла?</li>
</ul>

Почему это важно и зачем это нужно?


<ul>
<li>Это позволит разработчикам KDE создавать бинарные пакеты со свежайшим кодом, напрямую доступным для опробования экспертами по юзабилити и получения комментариев на ранней стадии...</li>
<li>Это позволит разработчикам KDE выдавать свежайшие пакеты бета-тестерам задолго до дня релиза...</li>
<li>Это позволит переводчикам видеть (в натуральном окружении интерфейса) все строчки, над которыми они работают...</li>
<li>Это позволит художникам на самом деле запускать приложения, для которых они создают иконки и различное оформление...</li>
<li>Это позволит дать полноценное представление о том, что получат пользователи в день релиза, для всех технически не подкованных участников KDE (которые обычно не компилируют KDE каждую ночь из последних исходников с SVN)...</li>
<li>Это может происходить в любое время, совершенно независимо от дат релизов, практически через пять минут после того как код будет написан и скомпилирован и задолго до того как будут созданы официальные пакеты для всех любимых дистрибутивов пользователей...</li>
</ul>

Мы можем мечтать, не так ли?

На aKademy я обсуждал этот вопрос с различными людьми. Сегодня практически все в сообществе KDE уже знают об одном из предложенных мной решений (или том, о чем мне нравится думать): использование сервера приложений KDE с NX или FreeNX, обеспечивающими удаленный доступ к необходимым программам.

Однако, если вы думаете, что NX это все, чем я занимаюсь, вы неправы. У меня есть еще одно дополняющее предложение для решения той же самой проблемы. Такое, которое особенно хорошо подходит для случаев, когда у тестеров и пользоваетелей нет подключения к сети.

Такое, которое работает с дистрибутивами на Live CD (Knoppix, Kanotix), равно как и с Debian, Linspire, Ubuntu, Kubuntu и openSUSE/SUSE Linux 10.0.  (Нет, оно действительно не имеет ничего общего с NX. И даже с FreeNX. Кроме того факта, что Фабьян (Fabian), главный разработчик FreeNX, также поучаствовал в работе над этой штучкой klik...)

Записывайте! Это не мечта. Это реальность. Это реальность для Linux. Это реальность для KDE. Она называется klik.

Она работает на большинстве систем Debian, на "" CD Knoppix (torrent) и Kanotix (torrent). Недавно к списку присоединилась и openSUSE/SUSE-10.0. Вы можете опробовать ее так:


<ul>
<li>Установите клиент klik: Нажмите [Alt]+[F2] и вставьте <br>
<tt>wget klik.atekon.de/client/install -O - | sh</tt> (не требуется для Kanotix - в нем klik присутствует изначально).</li>
<li>Следуйте инструкциям, которые будут появляться на экране.</li>
<li>Запустите Konqueror (он может открыться автоматически) и нажмите на одной из ссылок, предлагаемых на сайте klik.</li>
</ul>

Вы также можете просто ввести "klik://xvier" в строке адреса Konqueror. Я даже рекомендую начать именно с xvier - это простая игрушка, которая умещается в менее чем 400 КБ, так что вы сможете быстро опробовать klik и посмотреть, какой в него заложен потенциал...

Ловко, не так ли?

klik был разработан Симоном Петером (Simon Peter) (a.k.a. "probono" в IRC),
при помощи Ниалла Уолша (Niall Walsh, "bfree"), Йорга Широттке (Jorg Schirottke, "Kano") и Фабьяна Франца (Fabian Franz, "fabianx") из FreeNX. Вы можете встретить их на канале IRC #klik на Freenode.

Если вы озабочены безопасностью, вам, наверное, будет интересно узнать, что klik делает с вашей системой. А делает он вот что:


<ul>
<li>Его файлы .cmg содержат самодостаточныекаталоги приложений (AppDirs), сжатые в файловую систему cramfs или zisofs.</li>
<li>Для запуска содержащегося приложения, klik монтирует файл-пакет в /tmp/app/1 и запускает ее оттуда; в примонтированно состоянии пакет выглядит как подкаталог, развернутый в реальную структуру каталогов хост-машины.</li>
</ul>

Это очень похоже на то, как работают приложения в Mac OS X...

Если вы еще более осторожны, или параноидальны, вы, наверняка, захотите исследовать поближе и узнать, как работает klik на вашей системе. Следуйте инструкциям для выяснения этих деталей:


<ul>
<li><tt>wget klik.atekon.de/client/install</tt> (тем самым вы просто скачаете файл, без его запуска).</li>
<li><tt>less install</tt> (так вы можете просмотреть код инсталлятора: хотите пугайтесь, хотите нет, но это чистый shell).</li>
<li><tt>less $HOME/.klik</tt> (тем самым вы можете посмотреть код "шелл-клиента и обработчика протокола klik", но это, конечно, только после установки клиента klik).</li>
<li><tt>less $HOME/.zAppRun</tt> (так вы можете просмотреть стартер пакетов приложений klik, который запускается по нажатию на файлы .cmg).</li>
<li><tt>less {$KDEHOME,$HOME/.kde}/share/services/klik.protocol</tt> (секрет ссылок klik://my_cool_app, часть первая).</li>
<li><tt>less {$KDEHOME,$HOME/.kde}/share/applnk/klik/klik.desktop</tt> (секрет ссылок klik://my_cool_app, часть вторая).</li>
<li><tt>less {$KDEHOME,$HOME/.kde}/share/applnk/klik/.directory</tt> (откуда взялась иконка и запись klik в меню приложений KDE).</li>
<li><tt>less {$KDEHOME,$HOME/.kde}/share/mimelnk/all/cmg.desktop</tt> (о том, как klik стал ответственнен за щелчки по файлам с расширениями .cmg, часть первая).</li>
<li><tt>less {$KDEHOME,$HOME/.kde}/share/applnk/.hidden/AppRun.desktop</tt> (о том, как klik стал ответственнен за щелчки по файлам с расширениями .cmg, часть первая (очевидно, все-таки, вторая - прим. пер.))</li>
<li><tt>less /etc/fstab</tt> (как klik находит точки монтирования для файловых систем пакетов .cmg при запуске)</li>
<li><tt>ls -lR /tmp/app/{7,6,5,4,3,2,1}</tt> (показывает содержимое каталогов в точках монтирования при запуске одного из пакетов .cmg).</li>
</ul>

Как вы видите, весь интеллект klik содержится в нескольких шелл-скриптах и типичных конфигурационны файлах KDE...

Для большинства из более чем 4000 пакетов, доступных через klik, скачиваемый файл состоит из "". Рецепт рассказывает клиенту klik где скачать бинарники (в большинстве своем пакеты .deb из официальных репозиториев Debian), как их распаковать, как их перепаковать и сжать в финальный образ .cmg. В большинстве случаев, клиент klik делает большую часть работы и собирает свой образ .cmg.

Если вы хотите взглянуть на один из таких рецептов, вот рецепт klik для Scribus.

Есть и другие пакеты, которые собраны уже сервером (а также настроены и оттестированы вручную), так что они также будут работать и с не-Debian дистрибутивами ("серверный apt"). В этом случае пройдя по ссылке klik://some-app вы скачаете готовый .cmg с URL, указанного в рецепте сервера. Специальный репозиторий "Приложения klik для SUSE 10.0" пополняется каждый день. Предупреждение: на сегодня он работает только с openSUSE/SUSE Linux 10.0, не с другими дистрибутивами!

Если у вас есть хороший канал, вас могут заинтересовать следующие ссылки (однако, они не будут работать, если у вас еще не установлен клиент klik). Они очень хорошо работают на openSUSE/SUSE-Linux 10 RC1 и также поддерживаются Knoppix, Kanotix, Debian, Linspire и Kubuntu (другие дистрибутивы не тестировались):


<ul>
<li>klik://apollon (2.2 МБ)</li>
<li>klik://firefox (10.0 МБ)</li>
<li>klik://skype (10.2 МБ)</li>
<li>klik://frozen-bubble (14.0 МБ)</li>
<li>klik://ooo2 (114 МБ) - Мартийну (Martijn) удалось легко прочитать им файлы .odt!</li>
</ul>

На мой взгляд, по скорости и отзывчивости, опробованный мной пакет OOo2 (бета-версия OpenOffice.org 2, сборка Novell 125), ничем не отличается (а то и лучше) "" пакета RPM, который я установил из ISO образов SUSE Linux 10.0 RC1.

Если вы среди тех, кто любит запускать приложения из командной строки, используйте клиент klik командной строки, например, так:


<ul>
<li><tt>$HOME/.klik klik://ktorrent</tt> (устанавливает классный клиент BitTorrent, KTorrent).</li>
</ul>

Тем самым будет подготовлен и запущен AppDir пакет .cmg. Как только в вашей системе оказался пакет .cmg, вы можете запустить его (без необходимости повторной загрузки) так:


<ul>
<li><tt>$HOME/.zAppRun /путь/к/app123.cmg</tt> (запускаем приложение app123).</li>
</ul>

Я уже успел походить по Сети с альфа-версией 1.6a1 Firefox, дабы посмотреть, оправдан ли шум вокруг него. Для того, чтобы сделать это, я опробовал старомодный способ ручной установки klik-анутого Firefox:


<ul>
<li><tt>mkdir $HOME/klik-downloads</tt></li>
<li><tt>cd $HOME/klik-downloads</tt></li>
<li><tt>wget http://opensuse.linux.co.nz/klik/10.0/firefox_1.6a1.cmg </tt> </li>
<li><tt>$HOME/.zAppRun firefox_1.6a1.cmg</tt></li>
</ul>

Я практически уверен, что, по крайней мере, некоторым из наших любимых хакеров KDE-PIM понравится новый способ для быстрой оценки своих уважаемых конкурентов без необходимости устанавливать их:


<ul>
<li>klik://thunderbird - первая бета-версия будущего Thunderbird 1.5, почтового клиента Mozilla (прямая ссылка на пакет klik)</li>
<li>klik://sunbird - разрабатываемая версия приложения календаря от Mozilla (прямая ссылка на пакет klik)</li>
</ul>

Ну а что вы, разработчики, думаете об инструменте, который позволяет влегкую создавать бинарные снимки ваших разрабатываемыхверсий в виде изящных "Не инсталлируй, просто " файлов .cmg? Кто будет среди первых пятеро, кто сделает шаг вперед и получит сервис еженедельной сборки ваших SVN исходников в пакеты AppDir .cmg на следующие три месяца?

Я знаю, что Будевийн (Boudewijn) в прошлом мучался с обеспечением снимков Krita для дюжины бета-тестеров и не-технических помощников, а также с помощью в компиляции кода или поддержке в установке бинарников, собранных им.

Я также знаю, что мне очень понравится иметь доступ к снимкам kpdf, KWord, amaroK, Quanta и Kommander, которые я могу запускать на своей стабильной системе с успокаивающим чувством того, что самое плохое, что может произойти это то, что приложение просто не запустится и мне придется его всего лишь удалить для того, чтобы вернуть систему в прежнее состояние.

А как насчет наших друзей из OpenUsability.org? Может им тоже понравится такой сервис? Пробовали ли они оценить помощь klik:// в нашей общей работе разработчиков?


это контент от Центр информации по операционным системам
( http://www.osrc.info/plugins/content/content.php?content.112 )