Empacar su aplicación Ruby en un solo ejecutable.
Se necesitan menos de 5 minutos para compilar cualquier proyecto con Ruby Packer.
¡No necesitará modificar una sola línea de código en su aplicación, sin importar cómo lo desarrolló siempre que funcione en Plain Ruby!
Windows,
macOS y
Linuxrequire y load , incluidas las dinámicas (por ejemplo load(my_path + '/x.rb') )Aquí está el último lanzamiento del establo Ruby Packer:
| Sistema operativo | Arco. | Ejecutable |
|---|---|---|
| Windows | x64 | https://gw.alipayobjects.com/os/rmsportal/wxwlpruttreynvvxjmtr.zip |
| macosa | 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 |
Cada vez que el master Branch CI tuviera éxito, se generaría automáticamente un binario de preliminación de Ruby Packer. Aquí está la última construcción inestable previa a la liberación:
| Sistema operativo | Arco. | Ejecutable |
|---|---|---|
| Windows | x64 | https://github.com/pmq20/ruby-packer/releases/download/windows-x64/rubyc.exe |
| macosa | 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 |
Instalar en WindowsPrimero instale los requisitos previos:
choco install squashfs .nasm funcione desde su línea de comando. Luego, descargue rubyc.exe de las versiones previas o estables inestables. Opcionalmente, colóquelo en C:Windows o en cualquier otro director PATH . Abra el "símbolo del sistema Native Tools Native Tools" de Visual Studio y ejecute rubyc --help en él.
Instalar en macOSPrimero instale los requisitos previos:
brew install squashfsCommand Line Tools a través de Xcode. Puede encontrar esto en el menú Xcode -> Preferences -> Downloadsgcc y la cadena de herramientas relacionada que contiene make Luego, descargue rubyc de las versiones previas o estables inestables. Ejecute chmod +x para darle permisos de ejecución y ejecutar ./rubyc --help .
Instalar en LinuxPrimero instale los requisitos previos:
sudo yum install squashfs-toolssudo apt install squashfs-toolsgcc o clang Luego, descargue rubyc de las versiones previas o estables inestables. Ejecute chmod +x para darle permisos de ejecución y ejecutar ./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 compila su propia versión de OpenSSL sin ninguna certificación. Para poder usar SSL con Rubyc, debe saber dónde encontrar las certificaciones.
Por defecto, esta ruta se establece en /usr/local/etc/openssl/ pero se puede anular utilizando el argumento --openssl-dir .
Tenga en cuenta que los usuarios que ejecutan su paquete compilado también deben tener sus certificaciones presentes en este directorio.
--ignore-fileSi no desea ciertos archivos incluidos en la compilación, puede ignorarlos desde la línea de comando usando -i.
rubyc -i ignore.file -i ignore-2.file -i "ignore*"
Alternativamente, puede crear un archivo .rubycignore en la raíz de su proyecto para especificar qué archivos deben ignorarse.
Es decir, empacar el intérprete Raw Ruby sin empacar ningún proyecto:
rubyc
./a.out (or a.exe on Windows)
Tomando a Ruby Packer como un ejemplo de la utilidad CLI para empacar:
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 de la fuente Para construir rubyc , debe tener un compilador C y la cadena de herramientas necesaria para construir Ruby y las bibliotecas rellenas dentro de Rubyc que incluyen al menos:
Si no está seguro de si su cadena de herramientas está completa, entonces tratar de construir rubyc le informará que le falta algo. Lamentablemente, puede decirle con algún mensaje desconocido. Por favor presente un problema aquí si esto ocurre.
Una vez que su cadena de herramientas está configurada, ejecute bundle . Para compilar su propia carrera rubyc :
bundle exec rake rubyc
O (si desea compilar con símbolos de depuración):
ENCLOSE_IO_RUBYC_ADDTIONAL_ARGS=--debug bundle exec rake rubyc
Esto producirá un solo ejecutable rubyc , que se puede colocar dentro de cualquiera de las ubicaciones de su PATH , para que pueda llamarse directamente desde el símbolo del sistema. Por ejemplo:
mv rubyc /usr/local/bin
Recuerde que Rubyc incluye todos los archivos del directorio actual en el ejecutable creado. Debe eliminar el rubyc anterior o sus squashfs se crecerán continuamente y el tiempo de compilación de squashfs incrustados será muy, muy largo .
Minqi Pan et al.
MIT