Emballage de votre application Ruby en un seul exécutable.
Il faut moins de 5 minutes pour compiler tout projet avec Ruby Packer.
Vous n'aurez pas besoin de modifier une seule ligne de code dans votre application, peu importe comment vous l'avez développée tant qu'elle fonctionne en Ruby ordinaire!
Fenêtres,
macOS et
Linuxrequire et load , y compris les dynamiques (par exemple load(my_path + '/x.rb') )Voici la dernière version de Ruby Packer stable:
| OS | Cambre. | Exécutable |
|---|---|---|
| Fenêtre | 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 |
Chaque fois que la branche master CI réussissait, un binaire pré-libéré Ruby Packer serait automatiquement généré. Voici la dernière construction instable de pré-libération:
| OS | Cambre. | Exécutable |
|---|---|---|
| Fenêtre | 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 |
Installer sur WindowsInstallez d'abord les conditions préalables:
choco install squashfs .nasm fonctionne à partir de votre ligne de commande. Téléchargez ensuite rubyc.exe à partir de versions instables de pré-libération ou de versions stables. Facultativement, mettez-le sous C:Windows ou tout autre répertoire PATH . Ouvrez "X64 Native Tools Command Invite rubyc --help
Installer sur macOSInstallez d'abord les conditions préalables:
brew install squashfsCommand Line Tools via Xcode. Vous pouvez le trouver sous le menu Xcode -> Preferences -> Downloadsgcc et la chaîne d'outils connexe make Téléchargez ensuite rubyc à partir de versions instables de pré-libération ou stable. Exécutez chmod +x pour lui donner des autorisations d'exécution et exécuter ./rubyc --help .
Installer sur LinuxInstallez d'abord les conditions préalables:
sudo yum install squashfs-toolssudo apt install squashfs-toolsgcc ou clang Téléchargez ensuite rubyc à partir de versions instables de pré-libération ou stable. Exécutez chmod +x pour lui donner des autorisations d'exécution et exécuter ./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-dirRumbyc compile sa propre version d'OpenSSL sans aucune certification. Pour pouvoir utiliser SSL avec RUBYM, il doit savoir où trouver les certifications.
Par défaut, ce chemin est défini sur /usr/local/etc/openssl/ mais peut être remplacé à l'aide de l'argument --openssl-dir .
Gardez à l'esprit que les utilisateurs exécutant votre package compilé devraient également avoir leurs certifications dans ce répertoire.
--ignore-fileSi vous ne voulez pas certains fichiers inclus dans la construction, vous pouvez les ignorer à partir de la ligne de commande à l'aide -i.
rubyc -i ignore.file -i ignore-2.file -i "ignore*"
Alternativement, vous pouvez créer un fichier .rubycignore dans la racine de votre projet pour spécifier quels fichiers doivent être ignorés.
IE Emballant l'interprète Raw Ruby sans emballer aucun projet:
rubyc
./a.out (or a.exe on Windows)
Prendre Ruby Packer lui-même comme exemple de l'utilitaire CLI à emballer:
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 Source Pour construire rubyc vous devez avoir un compilateur C et la chaîne d'outils nécessaire pour construire Ruby et les bibliothèques bourrées à l'intérieur de Rumbyc qui incluent au moins:
Si vous ne savez pas si votre chaîne d'outils est terminée, essayez de construire rubyc vous informera que vous manquez quelque chose. Malheureusement, il peut vous dire avec un message inconnu. Veuillez déposer un problème ici si cela se produit.
Une fois que votre chaîne d'outils est configurée bundle Run. Pour compiler votre propre course rubyc :
bundle exec rake rubyc
Ou (si vous souhaitez compiler avec des symboles de débogage):
ENCLOSE_IO_RUBYC_ADDTIONAL_ARGS=--debug bundle exec rake rubyc
Cela produira un seul exécutable rubyc , qui peut être placé dans l'un de vos emplacements PATH , afin qu'il puisse être directement appelé à partir de l'invite de commande. Par exemple:
mv rubyc /usr/local/bin
N'oubliez pas que Rumbyc comprend tous les fichiers du répertoire actuel dans l'exécutable construit. Vous devez supprimer que le rubycs antérieur ou vos squashfs s'agrandiront continuellement et le temps de compilation de squashfs intégré sera très, très long .
Minqi Pan et al.
Mit