Rubyアプリケーションを単一の実行可能ファイルに梱包します。
Ruby Packerを使用してプロジェクトをコンパイルするのに5分もかかりません。
Plain Rubyで機能する限り、どのように開発したとしても、アプリケーションで単一のコードを変更する必要はありません。
窓、
マコーと
Linuxrequireとloadネイティブにサポートします(例: load(my_path + '/x.rb') )これが最新の安定したルビーパッカーのリリースです:
| OS | アーチ。 | 実行可能 |
|---|---|---|
| Windows | x64 | https://gw.alipayobjects.com/os/rmsportal/wxwlpruttrenvvxjmtr.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-f0f5399960253/rubyc-v0.4.0-linux-x64.gz |
masterブランチCIが成功するたびに、Ruby Packer Pre-Release Binaryが自動的に生成されます。これは、最新の不安定なプレリリースビルドです。
| OS | アーチ。 | 実行可能 |
|---|---|---|
| Windows | 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 |
Windowsにインストールします最初に前提条件をインストールします。
choco install squashfs実行することをお勧めします。nasmコマンドラインから機能することを確認してください。次に、不安定なプレリリースまたは安定したリリースのいずれかからrubyc.exeをダウンロードします。オプションで、 C:Windowsまたはその他のPATHディレクトリの下に置きます。 Visual Studioの「X64ネイティブツールコマンドプロンプト」を開き、 rubyc --helpそこにあります。
macOSにインストールします最初に前提条件をインストールします。
brew install squashfsCommand Line Toolsをインストールする必要があります。これはメニューの下にありますXcode -> Preferences -> Downloadsgccと関連する関連ツールmakeがインストールされます次に、不安定なプレリリースまたは安定したリリースからrubycをダウンロードします。 chmod +xを実行して実行許可を与え、 ./rubyc --helpを実行します。
Linuxにインストールします最初に前提条件をインストールします。
sudo yum install squashfs-toolssudo apt install squashfs-toolsgccまたはclang次に、不安定なプレリリースまたは安定したリリースからrubycをダウンロードします。 chmod +xを実行して実行許可を与え、 ./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オプションRubycは、認定なしで独自のバージョンのOpenSSLをコンパイルします。 SSLをRubycで使用できるようにするためには、認定を見つける場所がわかるはずです。
デフォルトでは、このパスは/usr/local/etc/openssl/に設定されていますが、 --openssl-dir引数を使用してオーバーライドできます。
コンパイルされたパッケージを実行しているユーザーには、このディレクトリにも認定が表示される必要があることに注意してください。
--ignore-fileオプションビルドに特定のファイルを含めたくない場合は、-iを使用してコマンドラインからそれらを無視できます。
rubyc -i ignore.file -i ignore-2.file -i "ignore*"
または、プロジェクトのルートに.rubycignoreファイルを作成して、どのファイルを無視するかを指定することもできます。
つまり、プロジェクトを梱包せずに生のルビー通訳を梱包する:
rubyc
./a.out (or a.exe on Windows)
Ruby Packer自体を梱包するためのCLIユーティリティの例として取得します。
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を構築しますrubyc構築するには、少なくとも次のことを含むRubyとRubyの内部に詰め込まれたライブラリを構築するためにCコンパイラと必要なツールチェーンが必要です。
ツールチェーンが完了しているかどうかわからない場合は、 rubycを構築しようとすると、何かが足りないことがわかります。残念ながら、なじみのないメッセージであなたに伝えるかもしれません。これが発生した場合は、ここで問題を提出してください。
ツールチェーンがセットアップされたら、実行bundleを実行します。独自のrubyc Runをコンパイルするには:
bundle exec rake rubyc
または(デバッグシンボルでコンパイルする場合):
ENCLOSE_IO_RUBYC_ADDTIONAL_ARGS=--debug bundle exec rake rubyc
これにより、単一のrubyc実行可能ファイルが生成され、 PATH場所のいずれか内に配置できるため、コマンドプロンプトから直接呼び出されます。例えば:
mv rubyc /usr/local/bin
Rubycには、構築された実行可能ファイルの現在のディレクトリのすべてのファイルが含まれていることを忘れないでください。以前のRubycを削除するか、Schashfsが継続的に大きくなり、埋め込まれたSquashfsコンパイル時間は非常に長くなります。
Minqi Pan et al。
mit