Упаковывая приложение Ruby в один исполняемый файл.
Для составления любого проекта с Ruby Packer требуется менее 5 минут.
Вам не нужно будет изменять одну строку кода в вашем приложении, независимо от того, как вы разработали ее, пока она работает в простом рубине!
Windows,
macos и
Linuxrequire и load , включая динамические (например load(my_path + '/x.rb') ))Вот последний стабильный релиз Ruby Packer:
| ОС | Архи | Исполняемый файл |
|---|---|---|
| Окна | x64 | https://gw.alipayobjects.com/os/rmsportal/wxwlpruttreynvvxjmtr.zip |
| macOS | x64 | https://gw.alipayobjects.com/os/enclose-prod/b812fa0f-d52b-44f1-8233-65ab8707cf1f/rubyc-v0.4.0-darwin-x64.gz |
| Linux | x64 | https://gw.alipayobjects.com/os/enclose-prod/1fd23e6b-d48f-4ed0-94dd-f0f539960253/rubyc-v0.4.0-linux-x64.gz |
Всякий раз, когда преуспел в master -филиале CI, был бы автоматически генерироваться бинар-предварительный релиз Ruby Packer. Вот последняя нестабильная сборка перед выпуском:
| ОС | Архи | Исполняемый файл |
|---|---|---|
| Окна | x64 | https://github.com/pmq20/ruby-packer/releases/download/windows-x64/rubyc.exe |
| macOS | x64 | https://github.com/pmq20/ruby-packer/releases/download/darwin-x64/rubyc |
| Linux | x64 | https://github.com/pmq20/ruby-packer/releases/download/linux-x64/rubyc |
Установите на WindowsСначала установите предпосылки:
choco install squashfs .nasm работает из вашей командной строки. Затем загрузите rubyc.exe из нестабильных предварительных или стабильных выпусков. При желании поместите его в C:Windows или любые другие каталоги PATH . Откройте командную строку Visual Studio «Native Tools Native Tools» и выполнить rubyc --help в ней.
Установите на macOSСначала установите предпосылки:
brew install squashfsCommand Line Tools через XCODE. Вы можете найти это в меню Xcode -> Preferences -> Downloadsgcc и соответствующий инструмент, make Затем загрузите rubyc из нестабильных предварительных или стабильных выпусков. Запустите chmod +x , чтобы дать ему разрешения на выполнение и выполнить ./rubyc --help .
Установите на LinuxСначала установите предпосылки:
sudo yum install squashfs-toolssudo apt install squashfs-toolsgcc или clang Затем загрузите rubyc из нестабильных предварительных или стабильных выпусков. Запустите chmod +x , чтобы дать ему разрешения на выполнение и выполнить ./rubyc --help .
rubyc [OPTION]... [ENTRANCE_FILE]
ENTRANCE_FILE refers to the path of an executable ruby script from your project, e.g. "bin/rails".
If ENTRANCE_FILE was not provided, a single raw Ruby interpreter executable would be produced.
-r, --root=DIR The path to the root of your application
-o, --output=FILE The path of the output file
-d, --tmpdir=DIR The directory for temporary files
--keep-tmpdir Keeps all temporary files that were generated last time
--openssl-dir The path to openssl
--make-args=ARGS Extra arguments to be passed to make
--nmake-args=ARGS Extra arguments to be passed to nmake
-i, --ignore-file=STRING Ignore file(s) from build
--debug Enable debug mode
--quiet Enable quiet mode
-v, --version Prints the version of rubyc and exit
-V, --ruby-version Prints the version of the Ruby runtime and exit
--ruby-api-version Prints the version of the Ruby API and exit
-h, --help Prints this help and exit
--openssl-dirRubyc собирает свою собственную версию OpenSSL без каких -либо сертификатов. Чтобы иметь возможность использовать SSL с Rubyc, он должен знать, где найти сертификаты.
По умолчанию этот путь устанавливается на /usr/local/etc/openssl/ но может быть переопределен с помощью аргумента --openssl-dir .
Имейте в виду, что пользователи, работающие с компилированным пакетом, также должны иметь свои сертификаты в этом каталоге.
--ignore-fileЕсли вам не нужны определенные файлы, включенные в сборку, вы можете игнорировать их из командной строки, используя -i.
rubyc -i ignore.file -i ignore-2.file -i "ignore*"
В качестве альтернативы вы можете создать файл .rubycignore в корне вашего проекта, чтобы указать, какие файлы следует игнорировать.
Т.е. упаковывать необработанную переводчик Ruby без упаковки каких -либо проектов:
rubyc
./a.out (or a.exe on Windows)
Принимая сам Руби -Пэкер в качестве примера утилиты CLI для упаковки:
git clone --depth 1 https://github.com/pmq20/ruby-packer
cd ruby-packer
rubyc bin/rubyc
./a.out (or a.exe on Windows)
rails new yours
cd yours
rubyc bin/rails
./a.out server (or a.exe server on Windows)
rubyc из источника Для построения rubyc у вас должен быть компилятор C и необходимый инструмент для создания Ruby и библиотек, наполненных Rubyc, которые включают, по крайней мере:
Если вы не уверены, что ваш инструмент завершен, то попытка создать rubyc даст вам знать, что вы что -то упускаете. К сожалению, это может сказать вам с каким -то незнакомым сообщением. Пожалуйста, подайте здесь проблему, если это произойдет.
После того, как ваш инструмент будет настроен, запустите bundle . Чтобы скомпилировать свой собственный запуск rubyc :
bundle exec rake rubyc
Или (если вы хотите скомпилироваться с символами отладки):
ENCLOSE_IO_RUBYC_ADDTIONAL_ARGS=--debug bundle exec rake rubyc
Это создаст один исполняемый файл rubyc , который может быть помещен в любое из ваших мест PATH , чтобы его можно было напрямую вызвать из командной строки. Например:
mv rubyc /usr/local/bin
Помните, что Rubyc включает все файлы из текущего каталога в созданном исполняемом файле. Вы должны удалить предыдущий Rubyc , или ваши сквошфы будут постоянно расти, а время компиляции встроенных сквошфе будет очень, очень длинное .
Minqi Pan et al.
Грань