OCRA per Ruby è superato: usate OCRAN

Se state cercando OCRA (One-Click Ruby Application) per trasformare uno script Ruby in un .exe, purtroppo OCRA non è più mantenuto: l’ultima release, la 1.3.11, risale a marzo 2020 e il suo changelog indica il supporto per Ruby dalla 2.2 alla 2.7. Il successore mantenuto è OCRAN, un fork di OCRA che supporta Ruby 3.3 e versioni successive. Si usa allo stesso modo, con le stesse opzioni, quindi di solito il passaggio richiede pochi minuti.

Perché OCRAN

OCRA è stato creato da Lars Christensen e per molti anni è stato lo strumento abituale per impacchettare programmi Ruby come eseguibili Windows. Mantengo OCRAN, nato nel 2023 come fork di OCRA, insieme ad altri contributori. Oltre a stare al passo con le nuove versioni di Ruby, OCRAN ora crea eseguibili anche su Linux e macOS e può produrre una cartella, un archivio zip o un app bundle macOS.

Migrare da OCRA a OCRAN

1. Installate OCRAN. Richiede Ruby 3.3 o successivo.

gem install ocran

2. Eseguite ocran al posto di ocra. La riga di comando esistente resta invariata:

# prima
ocra script.rb --output myapp.exe --icon app.ico --gem-full
# dopo
ocran script.rb --output myapp.exe --icon app.ico --gem-full

Cosa resta uguale: tutte le opzioni da riga di comando di OCRA 1.3.11 esistono in OCRAN con lo stesso nome, ad esempio --output, --icon, --windows, --console, --no-lzma, --gemfile, --no-dep-run, --add-all-core, --chdir-first, --dll, --innosetup, --debug-extract e le opzioni --gem-*. File aggiuntivi e argomenti dopo -- funzionano come prima. Il rilevamento delle dipendenze avviene ancora eseguendo lo script durante la build.

Cosa cambia: se il vostro codice fa riferimento a OCRA per nome, rinominatelo.

OCRA OCRAN
ENV["OCRA_EXECUTABLE"] ENV["OCRAN_EXECUTABLE"]
defined?(Ocra) defined?(Ocran)
app = MyApp.new
app.main_loop unless defined?(Ocran)

base_dir = File.dirname(ENV["OCRAN_EXECUTABLE"].to_s)

Se siete ancora su Ruby 3.0 o 3.1, tenete presente che OCRAN 1.3.17 è stata l’ultima versione a supportarle:

gem install ocran -v 1.3.17

Su Ruby 3.2 usate OCRAN 1.4.6, l’ultima versione che lo supporta:

gem install ocran -v 1.4.6

Altro su OCRAN

Nell’articolo OCRAN: script Ruby come eseguibili per Windows, Linux e macOS descrivo i formati di output, come funziona il rilevamento delle dipendenze e cosa è cambiato nelle versioni recenti. La documentazione si trova nel README su GitHub e i problemi si possono segnalare nell’issue tracker.