OCRA pour Ruby est obsolète : utilisez OCRAN

Si vous cherchez OCRA (One-Click Ruby Application) pour transformer un script Ruby en .exe, sachez qu’OCRA n’est malheureusement plus maintenu : sa dernière version, 1.3.11, date de mars 2020, et son changelog indique la prise en charge de Ruby 2.2 à 2.7. Le successeur maintenu est OCRAN, un fork d’OCRA qui prend en charge Ruby 3.3 et les versions plus récentes. Il s’utilise de la même façon, avec les mêmes options ; la migration prend donc en général quelques minutes.

Pourquoi OCRAN

OCRA a été créé par Lars Christensen et a été pendant de nombreuses années l’outil habituel pour empaqueter des programmes Ruby en exécutables Windows. Je maintiens OCRAN, né en 2023 comme fork d’OCRA, avec d’autres contributeurs. En plus de suivre les nouvelles versions de Ruby, OCRAN construit désormais aussi des exécutables sous Linux et macOS et peut produire un répertoire, une archive zip ou un bundle d’application macOS.

Migrer d’OCRA vers OCRAN

1. Installez OCRAN. Il nécessite Ruby 3.3 ou plus récent.

gem install ocran

2. Lancez ocran au lieu de ocra. Votre ligne de commande existante reste la même :

# avant
ocra script.rb --output myapp.exe --icon app.ico --gem-full
# après
ocran script.rb --output myapp.exe --icon app.ico --gem-full

Ce qui ne change pas : toutes les options de ligne de commande d’OCRA 1.3.11 existent dans OCRAN sous le même nom, par exemple --output, --icon, --windows, --console, --no-lzma, --gemfile, --no-dep-run, --add-all-core, --chdir-first, --dll, --innosetup, --debug-extract et les options --gem-*. Les fichiers et arguments supplémentaires après -- fonctionnent comme avant. La détection des dépendances fonctionne toujours en exécutant votre script pendant la construction.

Ce qui change : si votre code fait référence à OCRA par son nom, renommez-le.

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)

Si vous êtes encore sur Ruby 3.0 ou 3.1, notez qu’OCRAN 1.3.17 est la dernière version à les prendre en charge :

gem install ocran -v 1.3.17

Sur Ruby 3.2, utilisez OCRAN 1.4.6, la dernière version qui le prend en charge :

gem install ocran -v 1.4.6

En savoir plus sur OCRAN

Dans mon article OCRAN : transformer des scripts Ruby en exécutables pour Windows, Linux et macOS, je décris les formats de sortie, le fonctionnement de la détection des dépendances et les nouveautés des dernières versions. La documentation se trouve dans le README sur GitHub, et les problèmes peuvent être signalés dans le gestionnaire de tickets.