Tkabber Wiki

Дистрибутиви, які ми обираємо
Login

– Скажите, пожалуйста, куда мне отсюда идти?
– А куда ты хочешь попасть? – ответил Кот.
– Мне все равно… – сказала Алиса.
– Тогда все равно, куда и идти, – заметил Кот.
– … только бы попасть куда-нибудь, – пояснила Алиса.
– Куда-нибудь ты обязательно попадешь, – сказал Кот.
– Нужно только достаточно долго идти.

© Льюис Кэрролл "Алиса в стране чудес", пер. Демуровой

Зміст

Начните работу с нажатия этой кнопки (c) Windows

Куда ставить-то?!

© х/ф "Посторонним вход воспрещается"

Итак, вы решили установить Ткаббер и в настоящий момент чешете голову, рассматривая эту страницу. Не унывайте! Во-первых, разбегающиеся глаза красят человека, во-вторых, не вы первый, не вы — последний: почти все "практикующие ткабберисты" были в своё время мучимы выбором, подобным вашему. Для того, чтобы помочь вам с выбором, написана эта статья.

В этой статье рассказывается о различных ипостасях Ткаббера — его дистрибутивах, — и производится их сравнительное препарирование.

Здесь достаточно много теории, так как цель статьи — предоставить вам возможность сделать осмысленный выбор. Если же вы ленивы или (думаете что) всё знаете, можете перейти прямо сюда.

Приступим.

Первое, что вам следует заучить как "Отче наш":

Ткаббер написан на интерпретируемом языке программирования, и это означает, что для работы ему нужен "движок", выполняющий программы этого самого языка — Tcl/Tk, а также необходимые библиотеки.

То есть, несмотря на некоторую техническую неточность, можно утверждать, что Ткаббер состоит из двух частей:

Этот самый "код Ткаббера", в принципе, самодостаточен в том смысле, что не зависит от операционный системы и является общим для всех систем, на которых работает Tcl/Tk. То есть, если на вашей системе уже установлен дистрибутив Tcl/Tk, вы можете произвольно менять сам код Ткаббера: к примеру, вытягивать его еженощно из репозитория. Или вы, скажем, можете просто перенести каталог с Ткаббером с Windows-машины на Linux-машину, и он будет там прекрасно работать.

И именно "этот самый код..." и является основным дистрибутивом Ткаббера.

К сожалению, Tcl/Tk поставляется в комплекте только с такими серьёзными операционными системами, как Linux или FreeBSD; пользователи Windows вынуждены скачивать дистрибутив Tcl/Tk из интернета или использовать альтернативные дистрибутивы Ткаббера, о которых рассказано ниже.

Однако, многие (и не только в Windows) по разным причинам не хотят иметь дело с установкой этого "рантайма". Наиболее часто встречающаяся причина — вопрос трафика: дистрибутив Tcl/Tk под Windows "весит" примерно 20 мегабайт в архиве. Многие пользователи, обрадовавшись, что основной дистрибутив Ткаббера "весит" около 700 килобайт, бывают разочарованы, узнав, что "это ещё не всё".

Вторая по частоте появления причина — желание использовать "Ткаббер на флэшке": обычно на "чужих" компьютерах (на работе, в университете и т.д.) нет возможности установить дистрибутив Tcl/Tk, и, следовательно, его нужно как-то "носить с собой".

Итак, подведём первый промежуточный итог. У вас есть два варианта для работы с Ткаббером:

  1. Установить себе дистрибутив Tcl/Tk + необходимые библиотеки.
  2. Скачать специальный дистрибутив Ткаббера, который "содержит в себе" микро-дистрибутив Tcl/Tk.

Сравнение их отложим до поры, а пока окинем взглядом

"Самодостаточные" дистрибутивы Ткаббера

Есть, в общем, два подхода к созданию "вещи в себе" из программы, написанной на Tcl:

Ткаббер доступен в каждом из этих обличий. И если первое из них (надеемся) вполне понятно, то второе, скорее всего, требует разъяснений.

Tclkit, starkits и starpacks: немного теории

Тиклькит

Tclkit был изобретён для решения проблемы быстрого и удобного размещения программы, написанной на Tcl/Tk, на компьютере пользователя. Автор идеи, первой реализации и лидер проекта — Jean-Claude Wippler, официальный сайт тиклькита — здесь.

Тиклькит — это один исполняемый файл небольшого размера (версия 8.4.13 для Linux x86 "весит" примерно 1.5M), содержащий в себе:

Тиклькит не требует инсталляции и исполняет файлы специального формата — старкиты.

Скачать тиклькит для своей платформы можно отсюда, выбрав нужный пакет из доступной матрицы.

Итак, тиклькит это "движок". Посмотрим теперь на то, что он "приводит в движение".

Старкиты

Старкит — это один файл, представляющий собой базу данных (!) в формате Metakit. Собственно данными этой базы являются файлы исходной программы, из которой изготавливается тиклькит, файлы необходимых библиотек и произвольные файлы данных. TclVFS из тиклькита делает так, что интерпретатор тикля (из этого же тиклькита) считает, что работает с обычной файловой системой, а не базой данных.

Название "starkit" — это (довольно неуклюжий) акроним от "StandAlone Runtime, called Tclkit" ("Самодостаточный исполняемый модуль, который называется тиклькит").

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

Для запуска старкита Ткаббера на другой операционной системе вам понадобится скачать тиклькит для неё.

Старпаки

Старпак — это просто комбинация тиклькита для одной конкретной операционной системы и старкита.

Старпак обладает одним чудным свойством: он представляет собой один исполняемый файл, не требующий инсталляции.

К сожалению, при этом теряется одно из достоинств старкитов — независимость от целевой платформы.

Подробнее про Tkabber starpack.

Назад, к Ткабберу!

Выше мы сказали, что Ткаббер доступен в виде каждой из разновидностей "самодостаточных" дистрибутивов.

Итак, настало время поприветствовать наших красавиц!

Tkabber-Starkit 

Старкит. Требует наличия тиклькита для вашей ОС.

Tkabber-Starpack 

Старпак. Для запуска не требует ничего.

Tkabber-pack — особая песня

Если помните, одним из вариантов дистрибутива "всё в одном" был инсталлятор, устанавливающий в систему минимальный дистрибутив Tcl/Tk, необходимые библиотеки и саму программу.

Когда-то это задачу решал Ткаббер-пак.

Однако, начиная с версии 0.9.9, официальный Ткаббер-пак больше не содержит в себе микродистрибутива Tcl/Tk; автор предлагает использовать его вместе с "полным" дистрибутивом этого языка.

С другой стороны, существует неофициальная модификация Ткаббер-пака, содержащая Tcl/Tk. О ней будет рассказано ниже.

Быстрее! Выше! Сильнее!

Ткаббер написан таким образом, что может использовать различные модули для Tcl/Tk (которые мы называем "расширениями"), если они доступны (установлены).

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

Важно понимать, что эти модули не являются частью Ткаббера; их необходимо устанавливать отдельно. Они могут поставляться вместе с вашей ОС или вашим дистрибутивом Tcl/Tk, а возможно, устанавливать их вам придётся "руками". Посему, не исключено, что вопрос наличия тех или иных модулей в "готовом" виде, или тот факт, что они поставляются "внутри" некоторого дистрибутива Ткаббера, может сыграть решающую роль в вашем выборе.

Здесь мы рассмотрим доступные модули Tcl/Tk, которые может использовать Ткаббер, чтобы учитывать это при сравнении дистрибутивов Ткаббера.

(!) Сделать: рассказать про модули + доступность каждого модуля). Возможно, просто отослать к соотв. таблице на офсайте

Прилавок

Пробежимся по доступным дистрибутивам Ткаббера, имеющим статус официальных, давая краткие пояснения:

Ткаббер из состава ОС 

Проверьте, возможно, что Ткаббер входит в состав вашей ОС! К примеру, он входит в состав Debian GNU/Linux, Gentoo, Mandrake, FreeBSD. Возможно, есть и в других POSIX-системах.

"Просто Ткаббер" 

Официальный стабильный дистрибутив ткаббера. На официальном сайте он называется "Source Package". Для работы требует наличия в системе дистрибутива Tcl/Tk и необходимых библиотек (Tcllib и BWidget). Не содержит опциональных расширений. Поствляется в виде двух архивов: собственно Ткаббер и плагины к нему.

Ткаббер с SVN

Это — для любителей "быть на переднем крае" и разработчиков. Эта версия нестабильна, то есть вообще не обязана работать.

Tkabber-pack

Это — инсталлятор для Windows, содержащий Ткаббер, плагины к нему, а так же наиболее полезные расширения. Внимание, будьте бдительны: этот дистрибутив не включает в себя Tcl/Tk! Точнее говоря, он включал Tcl/Tk, но только до версии Ткаббера 0.9.8. Начиная с 0.9.9 — уже не включает. (Если вам нужен Ткаббер-пак с тиклем внутри, обратите внимание на "TkabberOTC", который описан ниже, в разделе "Рукоделие".

Tkabber-Starkit

Это — старкит Ткаббера. Требует для работы тиклькит под вашу ОС. Внимание! имеющийся старкит сильно устарел (версия 0.9.7) и не рекомендуется к использованию.

Tkabber-Starpack 

Это — старпак Ткаббера. Имеются версии под Linux x86 и Windows. Включает наиболее полезные расширения Ткаббера. Для работы не требует абсолютно ничего.

Рукоделие

В силу языка своей реализации Ткаббер довольно лекго поддаётся изменениям. Также не представляет сложностей изменение готового старкита или старпака. Поэтому существует несколько неофициальных дистрибутивов. Перечислим те, о которых знаем:

Старпак с поддержкой сжатия 

Официальный стапак под Win32, в который Kostix добавил поддержку сжатия, а также возможность подгружать старкит пакета Img, позволяющий работать с картинками в формате JPEG, PNG и другими. Подробности — здесь.

Tkabber-pack toon'а 

Ткаббер-пак под Windows. Содержит некие изменения, о которых автор ленится написать. Основная идея: минимизировать трафик, требуемый для получения обновлений. С этой целью всё пожато архиватором 7zip, а новые версии Ткаббера распространяются в виде апдейтов.

TkabberOTC 

Ткаббер-пак от админов провайдера "Омские Телекоммуникации". Допилен на предмет более глубокой русификации + другие изменения. Читайте официальную страницу. Включает минимальный дистрибутив Tcl/Tk.

Tkabber-SK 

Этакий "форк" от SVN-версии Ткаббера за конец декабря 2006 года. Автор — xmpp:tomasz@mastahizm.mooo.com. В эту версию добавлены разные интересные и не очень штуки (подробности читайте в чейнджлогах на странице проекта). Мы пригласили автора к сотрудничеству с разработчиками, так как некоторые из его фич могут запросто попасть в транк. Да и вообще незачем распылять силы. Фичи, которые в транк не попадут, он вроде обещал выложить в виде патчей на английской версии соответствующего раздела.

Страница Ткаббера на Tcl Wiki 

Содержит ссылки на как минимум два старкита. За подробностями идите по ссылке.

Кто сильнее: кит или пак? (Что выбрать?)

Какой же я могу, сеньора, Подать совет там, где решает Единственно ваш личный вкус?

Лопе Де Вега. "Собака на сене"

Изложенное здесь есть частное мнение авторов статьи, которое не обязано совпадать с вашим, так что имейте в виду известный девиз: "на наше мнение можно положить(ся)" © AG.ru. Включайте голову, изучайте и делайте свой выбор.

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

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

Следует иметь в виду, сравнивая дистрибутивы:

Важен может быть не только тип дистрибутива, но и наличие в нём (или для него) готовых расширений, а также возможность изменять дистрибутив (к примеру, накладывать неофициальные патчи).

"Каноническая" установка: Tcl/Tk + Ткаббер

Вначале рассмотрим вариант с наличием полноценного дистрибутива Tcl/Tk в системе.

Осевой вариант

Выбор авторов статьи (при этих словах вы должны представлять себе везде седых и лысых везде, где не седы, старцев с хитрым прищуром мудрых глаз) — "дистрибутив из вашей ОС". Действительно ли вам нужна Самая Последняя Версия? Признайтесь себе: вы знаете чем она отличается от предыдущей? Есть ли в версии из вашего дистрибутива Ужасные Баги, С Которыми Вы Не Можете Жить? Имейте в виду мудрый принцип: "не сломалось — не чини".

Кроме того, данный подход имеет другие достоинства:

Безусловно, если в вашей системе есть Ткаббер, то в ней, как минимум, есть дистрибутив Tcl/Tk и набор необходимых Ткабберу компонентов.

Имейте, однако, в виду, что "Ткаббер из ОС" это, в основном, роскошь линуксоидов и эээ... пользователей FreeBSD. Адептам Windows предлагается изучить альтернативы.

Больше всех, пожалуй, повезло пользователям Debian GNU/Linux: один из разработчиков Ткаббера (xmpp:sgolovan@nes.ru) является пользователем этой ОС и поддерживает собственный репозиторий пакетов, содержащий, помимо прочего, готовые пакеты с наиболее полезными расширениями для Ткаббера. Так что любителям Дебиана достаточно вписать себе в sources.list дополнительный репозиторий и наслаждаться.

В любом случае, почти со стопроцентной уверенностью можно сказать, что дистрибутив Tcl и Tk есть в любой "десктопной" POSIX-системе. О том, что делать, когда его нет, читайте ниже.

Если ваша система не имеет дистрибутива Ткаббера, но имеет дистрибутив Tcl/Tk, возможно, следует просто скачать стандартный дистрибутив Ткаббера ("исходники") и развернуть его куда-нибудь под /usr/local/share.

Windows: не бейсиком единым...

Сотрудники Майкрософт обладают достаточно извращённым вкусом в области языков программирования. Поэтому в вашей Windows-системе есть минимум два бейсика и, возможно, минимум одна джава. И ни одного тикля. Не исключено, что недостаток внимания этой фирмы к данному языку сыграл последнему на пользу, избавив его от смертельного дыхания одного известного принципа. В любом случае, вас касается одна проблема: дистрибутива Tcl/Tk с Windows не поставляется.

Стандартом де-факто в области Tcl/Tk под Windows является дистрибутив от фирмы ActiveState, скачать который можно здесь. Как уверяют авторы, в этом тикле "включены все батарейки", однако они лукавят: далеко не все батарейки там есть. Выкачав 21 мег дистра, вы не получите, например, такой элементарной вещи как tcllib. Этот дистрибутив имеет удобную справочную систему, программу tkcon и массу других вещей, которая может вам понадобиться (а может — и нет), например, в windows-версиях включает в себя средства интеграции с Windows Script Host. Какие-либо инструментальные средства, облегчающие жизнь программиста, отсутствуют. Фирма продаёт пакет TclDevKit, содержащий средства отладки и создания автономных программ (последнее на базе технологии StarKit), и Komodo — универсальное IDE для скриптовых языков, включающее средства визуального программирования Tk-форм.

WinTclTk — более компактный, активно развивающийся дистрибутив для Windows. В этот дистрибутив входят Tloona IDE — среда разработки традиционного типа и ХOTclIde — среда объектно-ориентированного программирования в стиле Smalltalk, обе — с отладчиками. Также на сайте разработчиков свободно доступен пакет для создания единого запускаемого файла TkWrapper основанный на FreeWrap — технологии, альтернативной StarKit, основанной на простом ZIP-сжатии.

Внимание! Если вы решили установить дистрибутив от ActiveState, настоятельно рекомендуется принять к сведению два совета:

Настало время поговорить по поводу "может".

Дистрибутив Tcl/Tk в системе: pros et contras

Два основных "за" наличие дистрибутива в системе:

Несмотря на то, что всё это технически можно делать и со старкитом/старпаком, при наличии дистрибутива Tcl/Tk это делать значительно проще.

Наличие "микро-дистрибутива" в Ткаббер-паке также может быть обманчивым: этот дистрибутив, как правило, урезан до максимально возможного уровня, а новые "фичи", добавленные разработчиками в последнюю версию Ткаббера, которую вы хотите потестировать, могут потребовать тех самых "отрезанных" возможностей тикля. (Для справки: именно с такой проблемой сталкивались некоторые владельцы Ткаббер-пака 0.9.8, пытаясь "завести" на своей системе скачанный "основной дистрибутив" версии 0.9.9).

Ради сохранения баланса Силы, скрепя сердце, приведём и два основных "против":

Иногда, впрочем, установка дистрибутива Tcl/Tk не только нежелательна, но и невозможна. Если это — ваш случай или, читая предыдущие строчки, вы решили встать на тёмную сторону Силы, следующий раздел — для вас.

Всё своё ношу с собой

Собственно, преимущества и недостатки использования "завёрнутых" версий Ткаббера примерно обратны использованию "канонической" установки.

Плюсы:

Минусы проистекают из всё той же "упакованности":

(!) Сделать: Вообще-то, конечно, нужна обобщённая статейка про старкиты и старпаки, со ссылкой на систему сборки бадлопа и утилиту архимеда...

Ткаббер-пак опять идёт не в ногу

Нелишним будет снова повторить, что последний официальный Ткаббер-пак больше не содержит Tcl/Tk, поэтому фактически нам нужно рассматривать два воплощения Ткаббер-пака: оснащённое Tcl/Tk и обделённое им.

Преимущество Ткаббер-пака по сравнению со старпаками/старкитами Ткаббера заключается в том, что его значительно легче изменять — Ткаббер включён в этот дистрибутив "как есть": не нужно ничего "разворачивать" и потом "сворачивать" обратно для того, чтобы потестировать патч или почитать код.

К недостаткам в сравнении со старпаками/старкитами, пожалуй, можно причислить только то, что он занимает больше места (но зато и стартует быстрее).

Ткаббер-пак, оснащённый дистрибутивом Tcl/Tk, обладает таким же уровнем мобильности как и старпак/старкит (например, умеет работать с флэш-драйва), и привязан к конкретной ОС так же, как и старпак (нам известно только о Windows-версиях Ткаббер-пака). Несмотря на то, что в подобном дистрибутиве есть "настоящий" Tcl/Tk, относитесь к этому с определённым скепсисом: это достаточно урезанная версия, содержащая только то, без чего не может обойтись Ткаббер.

Может возникнуть вопрос: а в чём смысл Ткаббер-пака без микро-дистрибутива Tcl/Tk внутри? Ответ прост: Ткаббер-пак включает в себя наиболее полезные пакеты Tcl/Tk, которые делают доступными дополнительные возможности Ткаббера. Можете думать о нём как о "Ткаббере на стероидах". Естественно, можно скачать и поставить дополнительные пакеты "руками", но зачем вам лишний труд?