Материал из Tkabber Wiki
– Скажите, пожалуйста, куда мне отсюда идти?
– А куда ты хочешь попасть? – ответил Кот.
– Мне все равно… – сказала Алиса.
– Тогда все равно, куда и идти, – заметил Кот.
– … только бы попасть куда-нибудь, – пояснила Алиса.
– Куда-нибудь ты обязательно попадешь, – сказал Кот.
– Нужно только достаточно долго идти.
Содержание
- 1 Начните работу с нажатия этой кнопки (c) Windows
- 2 "Самодостаточные" дистрибутивы Ткаббера
- 3 Быстрее! Выше! Сильнее!
- 4 Прилавок
- 5 Кто сильнее: кит или пак? (Что выбрать?)
Начните работу с нажатия этой кнопки (c) Windows
Куда ставить-то?!
© х/ф "Посторонним вход воспрещается"
Итак, вы решили установить Ткаббер и в настоящий момент чешете голову, рассматривая эту страницу. Не унывайте! Во-первых, разбегающиеся глаза красят человека, во-вторых, не вы первый, не вы — последний: почти все "практикующие ткабберисты" были в своё время мучимы выбором, подобным вашему. Для того, чтобы помочь вам с выбором, написана эта статья.
В этой статье рассказывается о различных ипостасях Ткаббера — его дистрибутивах, — и производится их сравнительное препарирование.
Здесь достаточно много теории, так как цель статьи — предоставить вам возможность сделать осмысленный выбор. Если же вы ленивы или (думаете что) всё знаете, можете перейти прямо сюда.
Приступим.
Первое, что вам следует заучить как "Отче наш":
Ткаббер написан на интерпретируемом языке программирования, и это означает, что для работы ему нужен "движок", выполняющий программы этого самого языка — Tcl/Tk, а также необходимые библиотеки.
То есть, несмотря на некоторую техническую неточность, можно утверждать, что Ткаббер состоит из двух частей:
- Интерпретатора языка Tcl, а также библиотек (Tk, Tcllib и BWidget — минимально необходимый набор);
- Самого кода Ткаббера.
Этот самый "код Ткаббера", в принципе, самодостаточен в том смысле, что не зависит от операционный системы и является общим для всех систем, на которых работает Tcl/Tk. То есть, если на вашей системе уже установлен дистрибутив Tcl/Tk, вы можете произвольно менять сам код Ткаббера: к примеру, вытягивать его еженощно из репозитория. Или вы, скажем, можете просто перенести каталог с Ткаббером с Windows-машины на Linux-машину, и он будет там прекрасно работать.
И именно "этот самый код..." и является основным дистрибутивом Ткаббера.
К сожалению, Tcl/Tk поставляется в комплекте только с такими серьёзными операционными системами, как Linux или FreeBSD; пользователи Windows вынуждены скачивать дистрибутив Tcl/Tk из интернета или использовать альтернативные дистрибутивы Ткаббера, о которых рассказано ниже.
Однако, многие (и не только в Windows) по разным причинам не хотят иметь дело с установкой этого "рантайма". Наиболее часто встречающаяся причина — вопрос трафика: дистрибутив Tcl/Tk под Windows "весит" примерно 20 мегабайт в архиве. Многие пользователи, обрадовавшись, что основной дистрибутив Ткаббера "весит" около 700 килобайт, бывают разочарованы, узнав, что "это ещё не всё".
Вторая по частоте появления причина — желание использовать "Ткаббер на флэшке": обычно на "чужих" компьютерах (на работе, в университете и т.д.) нет возможности установить дистрибутив Tcl/Tk, и, следовательно, его нужно как-то "носить с собой".
Итак, подведём первый промежуточный итог. У вас есть два варианта для работы с Ткаббером:
- Установить себе дистрибутив Tcl/Tk + необходимые библиотеки.
- Скачать специальный дистрибутив Ткаббера, который "содержит в себе" микро-дистрибутив Tcl/Tk.
Сравнение их отложим до поры, а пока окинем взглядом
"Самодостаточные" дистрибутивы Ткаббера
Есть, в общем, два подхода к созданию "вещи в себе" из программы, написанной на Tcl:
- Сделать инсталлятор, который устанавливает в систему как минимальный, (но "настоящий") дистрибутив Tcl/Tk с необходимыми библиотеками, так и саму программу;
- Использовать специальное средство под названием tclkit (тиклькит), позволяющее "завернуть" и программу, и Tcl/Tk, и необходимые библиотеки в один файл — старкит (starkit), который может быть исполняемым, и тогда становится старпаком (starpack).
Ткаббер доступен в каждом из этих обличий. И если первое из них (надеемся) вполне понятно, то второе, скорее всего, требует разъяснений.
Tclkit, starkits и starpacks: немного теории
Тиклькит
Tclkit был изобретён для решения проблемы быстрого и удобного размещения программы, написанной на Tcl/Tk, на компьютере пользователя. Автор идеи, первой реализации и лидер проекта — Jean-Claude Wippler, официальный сайт тиклькита — здесь.
Тиклькит — это один исполняемый файл небольшого размера (версия 8.4.13 для Linux x86 "весит" примерно 1.5M), содержащий в себе:
- интерпретатор языка Tcl;
- графическую библиотеку Tk;
- объектное расширение для тикля [incr Tcl];
- библиотеку поддержки виртуальной файловой системы TclVFS;
- встроенную систему управления базами данных Metakit.
Тиклькит не требует инсталляции и исполняет файлы специального формата — старкиты.
Скачать тиклькит для своей платформы можно отсюда, выбрав нужный пакет из доступной матрицы.
Итак, тиклькит это "движок". Посмотрим теперь на то, что он "приводит в движение".
Старкиты
Старкит — это один файл, представляющий собой базу данных (!) в формате 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, настоятельно рекомендуется принять к сведению два совета:
- Ставьте стабильную версию (8.4.x и 8.5.x в настоящий момент).
- Не ставьте версию 8.4.15 — она содержит пару неприятных проблем, затрагивающих Ткаббер.
Настало время поговорить по поводу "может".
Дистрибутив Tcl/Tk в системе: pros et contras
Два основных "за" наличие дистрибутива в системе:
- Расширение возможностей системы — вам становится доступен мощный и в то же время лёгкий в изучении язык программирования. Возможно, вы захотите использовать его. Кроме того, на Ткаббере свет клином не сошёлся — в мире хватает хороших программ, написанных на тикле; устанавливая дистрибутив Tcl/Tk, вы даёте себе возможность использовать их без дополнительного "геморроя".
- Работа с кодом Ткаббера. По разным причинам у вас может возникнуть
желание/необходимость работать непосредственно с кодом Ткаббера. Вот эти
причины:
- Вы хотите быть "на переднем крае" разработки и иметь версию, отражающую текущее состояние репозитория SVN.
- Вы хотите накладывать на Ткаббер неофициальные и экспериментальные патчи, или патчи, которые не принимают в основную ветку разработки.
- Вы хотите ковыряться с кодом Ткаббера (пусть даже и в режиме "только чтение", например, изучения ради), а то и участвовать в разработке.
Несмотря на то, что всё это технически можно делать и со старкитом/старпаком, при наличии дистрибутива Tcl/Tk это делать значительно проще.
Наличие "микро-дистрибутива" в Ткаббер-паке также может быть обманчивым: этот дистрибутив, как правило, урезан до максимально возможного уровня, а новые "фичи", добавленные разработчиками в последнюю версию Ткаббера, которую вы хотите потестировать, могут потребовать тех самых "отрезанных" возможностей тикля. (Для справки: именно с такой проблемой сталкивались некоторые владельцы Ткаббер-пака 0.9.8, пытаясь "завести" на своей системе скачанный "основной дистрибутив" версии 0.9.9).
Ради сохранения баланса Силы, скрепя сердце, приведём и два основных "против":
- Интернет-трафик. Под Windows скачивание 20-мегабайтного архива из Интернет — единственная возможность получить полноценный дистрибутив Tcl/Tk. На POSIX-системах, возможно, также потребуется качать нужные пакеты.
- Борьба за "чистоту рядов". Некоторые пользователи (чрезмерно) ревниво относятся к "чистоте" своей системы и противятся установке любого "ах, ещё одного языка программирования!".
Иногда, впрочем, установка дистрибутива Tcl/Tk не только нежелательна, но и
невозможна. Если это — ваш случай или, читая предыдущие строчки, вы решили
встать на тёмную сторону Силы, следующий раздел — для вас.
Всё своё ношу с собой
Собственно, преимущества и недостатки использования "завёрнутых" версий Ткаббера примерно обратны использованию "канонической" установки.
Плюсы:
- "Всё в одном" — Ткаббер-старпак представляет собой один выполняемый файл, который нужно просто запустить. Ткаббер-старкит — два файла, которые тоже не нужно не только куда-то ставить, но и даже распаковывать.
- При некотором (несложном) "допиливании" Ткаббер-старпак прекрасно умеет работать с носимого устройства хранения данных, например, с флэш-драйва. То же самое относится и к старкиту, только таскать нужно опять же два файла.
- Официальные старпаки содержат большинство самых полезных модулей Tcl/Tk, расширяющих возможности Ткаббера — отсутствие необходимости в дополнительной установке расширений.
Минусы проистекают из всё той же "упакованности":
- Любое изменение "внутренностей" старпака/старкита требует его
"разворачивания" (unwrap) и последующего "заворачивания" (wrap)
(подробнее эти процедуры обсуждаются здесь). Это вам
понадобится делать, если вы хотите:
- добавить модуль Tcl/Tk, расширяющий возможности Ткаббера, которого нет в стандартной поставке старпака/старкита;
- наложить какой-либо патч.
- Официальные дистрибутивы Ткаббера — это стабильные релизы. Если вы хотите быть "на переднем крае" разработки, но при этом использовать старпак/старкит, то фактически вам придётся поддерживать свою версию такого дистрибутива.
Сделать: Вообще-то, конечно, нужна обобщённая статейка про старкиты и старпаки, со ссылкой на систему сборки бадлопа и утилиту архимеда...
Ткаббер-пак опять идёт не в ногу
Нелишним будет снова повторить, что последний официальный Ткаббер-пак больше не содержит Tcl/Tk, поэтому фактически нам нужно рассматривать два воплощения Ткаббер-пака: оснащённое Tcl/Tk и обделённое им.
Преимущество Ткаббер-пака по сравнению со старпаками/старкитами Ткаббера заключается в том, что его значительно легче изменять — Ткаббер включён в этот дистрибутив "как есть": не нужно ничего "разворачивать" и потом "сворачивать" обратно для того, чтобы потестировать патч или почитать код.
К недостаткам в сравнении со старпаками/старкитами, пожалуй, можно причислить только то, что он занимает больше места (но зато и стартует быстрее).
Ткаббер-пак, оснащённый дистрибутивом Tcl/Tk, обладает таким же уровнем мобильности как и старпак/старкит (например, умеет работать с флэш-драйва), и привязан к конкретной ОС так же, как и старпак (нам известно только о Windows-версиях Ткаббер-пака). Несмотря на то, что в подобном дистрибутиве есть "настоящий" Tcl/Tk, относитесь к этому с определённым скепсисом: это достаточно урезанная версия, содержащая только то, без чего не может обойтись Ткаббер.
Может возникнуть вопрос: а в чём смысл Ткаббер-пака без микро-дистрибутива Tcl/Tk внутри? Ответ прост: Ткаббер-пак включает в себя наиболее полезные пакеты Tcl/Tk, которые делают доступными дополнительные возможности Ткаббера. Можете думать о нём как о "Ткаббере на стероидах". Естественно, можно скачать и поставить дополнительные пакеты "руками", но зачем вам лишний труд?