Verpacken Sie Ihre Ruby -Anwendung in eine einzelne ausführbare Datei.
Es dauert weniger als 5 Minuten, um jedes Projekt mit Ruby Packer zu kompilieren.
Sie müssen keine einzige Codezeile in Ihrer Anwendung ändern, egal wie Sie ihn entwickelt haben, solange er in einfachem Ruby funktioniert!
Fenster,
macos und
Linuxrequire und load , einschließlich dynamischer (z. B. load(my_path + '/x.rb') )Hier ist die neueste stabile Ruby Packer -Veröffentlichung:
| Betriebssystem | Bogen. | Ausführbar |
|---|---|---|
| Fenster | x64 | https://gw.alipayobjects.com/os/rmsportal/wxwlputtreynvvxjmtr.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/encrose-prod/1fd23e6b-d48f-4ed0-94dd-f0f539960253/rubyc-v0.4.0-linux-x64.gz |
Immer wenn der master -Zweig CI erfolgreich war, wird automatisch ein Binärdatum für Ruby Packer vorab. Hier ist der neueste instabile Gebäude vor der Veröffentlichung:
| Betriebssystem | Bogen. | Ausführbar |
|---|---|---|
| Fenster | x64 | https://github.com/pmq20/ruby-packer/releass/download/windows-x64/rubyc.exe |
| macos | x64 | https://github.com/pmq20/ruby-packer/releass/download/darwin-x64/rubyc |
| Linux | x64 | https://github.com/pmq20/ruby-packer/releass/download/linux-x64/rubyc |
Installieren Sie unter WindowsInstallieren Sie zuerst die Voraussetzungen:
choco install squashfs ausführen.nasm von Ihrer Befehlszeile aus funktioniert. Laden Sie dann rubyc.exe entweder von instabilen Vorab- oder stabilen Veröffentlichungen herunter. Stellen Sie es optional unter C:Windows oder andere PATH ein. Öffnen Sie die "X64 native Tools -Eingabeaufforderung" von Visual Studios und führen Sie in rubyc --help aus.
Auf macOS installierenInstallieren Sie zuerst die Voraussetzungen:
brew install squashfsCommand Line Tools über Xcode installieren. Sie finden dies unter dem Menü Xcode -> Preferences -> Downloadsgcc und die zugehörige ToolChain, make enthält Laden Sie dann rubyc entweder von instabilen Pre-Veröffentlichungen oder stabilen Veröffentlichungen herunter. Führen Sie chmod +x aus, um ihm Ausführungsberechtigungen zu ermöglichen, und führen Sie aus ./rubyc --help .
Installieren Sie unter LinuxInstallieren Sie zuerst die Voraussetzungen:
sudo yum install squashfs-toolssudo apt install squashfs-toolsgcc oder clang Laden Sie dann rubyc entweder von instabilen Pre-Veröffentlichungen oder stabilen Veröffentlichungen herunter. Führen Sie chmod +x aus, um ihm Ausführungsberechtigungen zu geben, und führen Sie aus ./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-dir DIRRubyc erstellt eine eigene Version von OpenSSL ohne Zertifizierungen. Um SSL mit Rubyc verwenden zu können, sollte es wissen, wo die Zertifizierungen ermittelt werden können.
Standardmäßig wird dieser Pfad auf /usr/local/etc/openssl/ eingestellt, kann aber mit dem Argument --openssl-dir überschrieben werden.
Beachten Sie, dass Benutzer, die Ihr kompiliertes Paket ausführen, auch in diesem Verzeichnis ihre Zertifizierungen vorhanden haben.
--ignore-fileWenn Sie nicht möchten, dass bestimmte Dateien im Build enthalten sind, können Sie sie mit -I von der Befehlszeile ignorieren.
rubyc -i ignore.file -i ignore-2.file -i "ignore*"
Alternativ können Sie im Stamm Ihres Projekts eine .rubycignore -Datei erstellen, um anzugeben, welche Dateien ignoriert werden sollten.
Dh das Verpacken des Roh -Ruby -Dolmetschers, ohne Projekte zu packen:
rubyc
./a.out (or a.exe on Windows)
Nehmen Sie Ruby Packer selbst als Beispiel für das CLI -Dienstprogramm zum Packen:
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 aus der Quelle bauen Um rubyc zu erstellen, müssen Sie einen C -Compiler und den erforderlichen Toolchain zum Aufbau von Ruby und den in Rubyc gefüllten Bibliotheken haben, die mindestens:
Wenn Sie sich nicht sicher sind, ob Ihre Toolchain abgeschlossen ist, lassen Sie Sie mit dem Versuch, rubyc zu erstellen, Sie wissen, dass Ihnen etwas fehlt. Leider kann es Ihnen mit einer unbekannten Nachricht sagen. Bitte geben Sie hier ein Problem ein, wenn dies geschieht.
Sobald Ihr Toolchain eingerichtet ist, Run bundle eingerichtet. Um Ihren eigenen rubyc -Lauf zu kompilieren:
bundle exec rake rubyc
Oder (wenn Sie mit Debug -Symbolen kompilieren möchten):
ENCLOSE_IO_RUBYC_ADDTIONAL_ARGS=--debug bundle exec rake rubyc
Dies erzeugt eine einzelne rubyc -ausführbare Datei, die in einen Ihrer PATH eingefügt werden kann, sodass er direkt aus der Eingabeaufforderung aufgerufen werden kann. Zum Beispiel:
mv rubyc /usr/local/bin
Denken Sie daran, dass Rubyc alle Dateien aus dem aktuellen Verzeichnis in der erstellten ausführbaren Datei enthält. Sie müssen den vorherigen Rubyc löschen oder Ihre Squashfs werden ständig größer und die eingebettete Kürbiszeiten sind sehr, sehr lang .
Minqi Pan et al.
MIT