Embalando seu aplicativo Ruby em um único executável.
Demora menos de 5 minutos para compilar qualquer projeto com o Ruby Packer.
Você não precisará modificar uma única linha de código em seu aplicativo, não importa como você o desenvolva, desde que funcione em rubi simples!
Windows,
macOS e
Linuxrequire e load , incluindo dinâmica (por exemplo load(my_path + '/x.rb') ))Aqui está o último lançamento estável do Ruby Packer:
| OS | Arco. | Executável |
|---|---|---|
| Windows | 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 |
Sempre que o CI da ramificação master foi bem-sucedido, um binário de pré-lançamento do Ruby Packer seria gerado automaticamente. Aqui está a mais recente construção instável de pré-lançamento:
| OS | Arco. | Executável |
|---|---|---|
| Windows | 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 |
Instale no WindowsPrimeiro instale os pré -requisitos:
choco install squashfs .nasm funciona na sua linha de comando. Em seguida, faça o download rubyc.exe de lançamentos de pré-lançamento ou estáveis instáveis. Opcionalmente, coloque -o em C:Windows ou quaisquer outros diretórios PATH . Abra o "X64 Native Tools Command Prompt" do Visual Studio e execute rubyc --help nele.
Instale no macOSPrimeiro instale os pré -requisitos:
brew install squashfsCommand Line Tools via Xcode. Você pode encontrar isso no menu Xcode -> Preferences -> Downloadsgcc e a make de ferramentas relacionada Em seguida, faça o download rubyc de lançamentos instáveis pré-lançamento ou estável. Execute chmod +x para fornecer permissões de execução e execute ./rubyc --help .
Instale no LinuxPrimeiro instale os pré -requisitos:
sudo yum install squashfs-toolssudo apt install squashfs-toolsgcc ou clang Em seguida, faça o download rubyc de lançamentos instáveis pré-lançamento ou estável. Execute chmod +x para fornecer permissões de execução e execute ./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-dirA Rubyc compila sua própria versão do OpenSSL sem nenhuma certificação. Para poder usar o SSL com Rubyc, ele deve saber onde encontrar as certificações.
Por padrão, este caminho é definido como /usr/local/etc/openssl/ mas pode ser substituído usando o argumento --openssl-dir .
Lembre -se de que os usuários que executam seu pacote compilado também devem ter suas certificações presentes neste diretório.
--ignore-fileSe você não deseja certos arquivos incluídos na compilação, poderá ignorá -los na linha de comando usando -i.
rubyc -i ignore.file -i ignore-2.file -i "ignore*"
Como alternativa, você pode criar um arquivo .rubycignore na raiz do seu projeto para especificar quais arquivos devem ser ignorados.
Ou seja, embalando o intérprete RUB Ruby sem empacotar nenhum projeto:
rubyc
./a.out (or a.exe on Windows)
Tomando o Ruby Packer como um exemplo do utilitário da CLI para embalar:
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 da fonte Para construir rubyc você deve ter um compilador C e a cadeia de ferramentas necessária para construir Ruby e as bibliotecas recheadas dentro de Rubyc, que incluem pelo menos:
Se você não tiver certeza se a sua cadeia de ferramentas está concluída, tentar construir rubyc informará que você está perdendo alguma coisa. Infelizmente, isso pode lhe dizer com alguma mensagem desconhecida. Por favor, arquive um problema aqui se isso ocorrer.
Depois que a sua cadeia de ferramentas estiver configurada para bundle de corrida. Para compilar sua própria corrida rubyc :
bundle exec rake rubyc
Ou (se você deseja compilar com símbolos de depuração):
ENCLOSE_IO_RUBYC_ADDTIONAL_ARGS=--debug bundle exec rake rubyc
Isso produzirá um único executável rubyc , que pode ser colocado dentro de qualquer um dos locais do seu PATH , para que possa ser chamado diretamente do prompt de comando. Por exemplo:
mv rubyc /usr/local/bin
Lembre -se de que a Rubyc inclui todos os arquivos do diretório atual no executável construído. Você deve excluir a Rubyc ou squashfs anteriores aumentará continuamente e o tempo de compilação de squashfs incorporado será muito, muito longo .
Minqi Pan et al.
Mit