14.9.1. Ruby в виде одного файла

14.9.1. Ruby в виде одного файла

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

Мы уже познакомились с «моментальным инсталлятором» Ruby для Windows. Существуют планы (пока еще не оформившиеся) создать подобный инсталлятор для Linux и Mac OS X.

Эрик Веенстра (Erik Veenstra) недавно добился значительных успехов в создании пакетов, включающих как Ruby, так и написанные на нем приложения. Он автор пакетов AllInOneRuby, Tar2RubyScript и RubyScript2Exe (все они есть на его сайте http://www.erikveen.dds.nl).

AllInOneRuby — это дистрибутив Ruby в одном файле. В пакет входят интерпретатор Ruby, системные классы и стандартные библиотеки, упакованные в единый архив, который легко перемещать или копировать. Например, его можно записать на USB-диск, носить в кармане и «установить» на любую машину за считанные секунды. Работает AllInOneRuby на платформах Windows и Linux; имеется также экспериментальная поддержка для Mac OS X.

Что такое Tar2RubyScript, следует из самого названия. Программа получает на входе дерево каталогов и создает самораспаковывающийся архив, включающий написанную на Ruby программу и архив в формате tar. Идея та же, что у JAR-файлов в языке Java. Запускаемый сценарий должен называться init.rb; если сохраняется библиотека, а не автономное приложение, этот файл можно опустить.

Название RubyScript2Exe, наверное, не вполне удачно. Программа действительно преобразует написанное на Ruby приложение в один двоичный файл, однако работает она не только в Windows, но и в Linux и Mac OS X. Можете называть ее компилятором, хотя в действительности она им, конечно, не является. Она собирает файлы, являющиеся частью установленного дистрибутива Ruby на вашей машине, поэтому не нуждается в кросс-компиляции (даже если бы такая возможность имелась). Имейте в виду, что исполняемый файл «усечен» в том смысле, что неиспользуемые библиотеки Ruby в него не включаются.

Архив, созданный программой Tar2RubyScript, можно запустить на любой машине, где установлен Ruby (и программы, которые необходимы самому приложению). RubyScript2Exe не имеет такого ограничения, поскольку включает (наряду с вашим приложением) интерпретатор Ruby, всю среду исполнения и все необходимые внешние программы. Можете использовать эти инструменты вместе или порознь.

Поделитесь на страничке

Следующая глава >

Похожие главы из других книг

АНАЛИЗЫ: История одного SimCity

Из книги Журнал «Компьютерра» № 5 за 7 февраля 2006 года автора Журнал «Компьютерра»

АНАЛИЗЫ: История одного SimCity Автор: Никитин, АркадийПопулярные еще несколько лет назад дебаты о влиянии компьютерных игр на психику игроков мало-помалу сошли на нет. Но даже когда дискуссии между психологами, психиатрами и пациентами были в самом разгаре, обсуждение, как


ТЕМА НОМЕРА: Пятеро на одного

Из книги Журнал «Компьютерра» № 11 от 20 марта 2007 года автора Журнал «Компьютерра»

ТЕМА НОМЕРА: Пятеро на одного Автор: Владимир ГуриевНесколько лет назад со мной произошла странная история. Мне позвонили из компании, торгующей продукцией Apple, и предложили потестировать Мак Мини. Я честно с ним провозился и написал, как мне тогда казалось, вполне


Число загрузок с одного хоста

Из книги Разгони свой сайт автора Мациевский Николай

Число загрузок с одного хоста Над временной диаграммой (кроме блокирования картинок) нам также стоит задуматься о том, что картинки после скрипта загружаются только по две. Это происходит из-за ограничений на число файлов, которые могут быть загружены параллельно. В IE <=


Сохранение проекта в виде исполняемого файла

Из книги ArCon. Дизайн интерьеров и архитектурное моделирование для всех автора Кидрук Максим Иванович

Сохранение проекта в виде исполняемого файла Помимо всего прочего, система ArCon предоставляет очень мощную возможность для сохранения разработанного проекта в виде исполняемого EXE-файла. Данная возможность очень удобна для демонстрации проекта заказчику или другим


Сценарий входа для одного пользователя 

Из книги Windows Script Host для Windows 2000/XP автора Попов Андрей Владимирович

Сценарий входа для одного пользователя  Сценарии входа для отдельных пользователей назначаются с помощью оснастки Локальные пользователи и группы (Local users and groups). Замечание  В Windows NT для этого использовался Диспетчер пользователей (User Manager for Domain). Для добавления этой


Установка размера файла, инициализация файла и разреженные файлы

Из книги Системное программирование в среде Windows автора Харт Джонсон М

Установка размера файла, инициализация файла и разреженные файлы Функция SetEndOfFile позволяет переустановить размер файла, используя текущее значение указателя файла для определения его размера. Возможно как расширение, так и усечение файла. В случае расширения файла


5.25 Множество адресов для одного интерфейса

Из книги TCP/IP Архитектура, протоколы, реализация (включая IP версии 6 и IP Security) автора Фейт Сидни М

5.25 Множество адресов для одного интерфейса Некоторые производители маршрутизаторов предусматривают возможность присваивать несколько IP-адресов одному интерфейсу маршрутизатора. Для чего же это нужно? Несколько адресов подсетей могут потребоваться, во-первых, в


Пары ключей одного субъекта

Из книги Инфраструктуры открытых ключей автора Полянская Ольга Юрьевна

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


1.3. ООП в Ruby

Из книги Программирование на языке Ruby [Идеология языка, теория и практика применения] автора Фултон Хэл

1.3. ООП в Ruby В языке Ruby есть все элементы, которые принято ассоциировать с объектно-ориентированными языками: объекты с инкапсуляцией и сокрытием данных, методы с полиморфизмом и переопределением, классы с иерархией и наследованием. Но Ruby идет дальше, добавляя


12.1. Ruby/Tk

Из книги C++. Сборник рецептов автора Диггинс Кристофер

12.1. Ruby/Tk Своими корнями Tk уходит в далекий 1988 год, если считать и предварительные версии. Долгое время эта система считалась спутником языка Tcl, но вот уже несколько лет как она используется и с другими языками, в том числе Perl и Ruby.Если бы у Ruby был «родной» графический


12.5.1. Ruby и X

Из книги Fiction Book Designer 3.2. Руководство по созданию книг автора

12.5.1. Ruby и X Систему X Window System в разговорной речи называют (не совсем корректно) просто X Windows. Вероятно, она является прародителем если не всех, то абсолютного большинства графических интерфейсов пользователя.Пользователи всех вариантов UNIX давно уже знакомы с X (как


12.3. Уведомление одного потока другим

Из книги Программирование для Linux. Профессиональный подход автора Митчелл Марк

12.3. Уведомление одного потока другим ПроблемаИспользуется шаблон, в котором один поток (или группа потоков) выполняет какие-то действия, и требуется сделать так, чтобы об этом узнал другой поток (или группа потоков). Может использоваться главный поток, который передает


Уничтожение одного элемента.

Из книги Отъявленный программист: лайфхакинг из первых рук автора Савчук Игорь

Уничтожение одного элемента. 1. Кликните дважды на элемент (заголовок, параграф, стихи и т. д.).2. Нажмите иконку BookCorrector "delete" или кликните правой кнопкой мышки внутри основного окна BookDesigner и затем нажмите "delete" в появившемся


1.2.1. Компиляция одного исходного файла

Из книги автора

1.2.1. Компиляция одного исходного файла Компилятор языка С называется gcc. При компиляции исходного файла нужно указывать опцию -с. Вот как, например, в режиме командной строки компилируется файл main.с:% gcc -с main.сПолученный объектный файл будет называться main.o.Компилятор языка