تعبئة تطبيق Ruby الخاص بك في واحد قابل للتنفيذ.
يستغرق الأمر أقل من 5 دقائق لتجميع أي مشروع مع Ruby Packer.
لن تحتاج إلى تعديل سطر واحد من التعليمات البرمجية في التطبيق الخاص بك ، بغض النظر عن كيفية تطويره طالما أنه يعمل في Ruby Plain!
النوافذ ،
ماكوس و
Linuxrequire load ، بما في ذلك تلك الديناميكية (مثل load(my_path + '/x.rb') )إليك أحدث إصدار مستقر Ruby Packer:
| نظام التشغيل | قوس. | قابلة للتنفيذ |
|---|---|---|
| النوافذ | x64 | https://gw.alipayobjects.com/os/rmsportal/wxwlpruttreynvvxjmtr.zip |
| ماكوس | 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 |
كلما نجحت CI الفرع master ، سيتم إنشاء ثنائي Ruby Packer قبل الإصدار تلقائيًا. فيما يلي أحدث بناء غير مستقر قبل الإصدار:
| نظام التشغيل | قوس. | قابلة للتنفيذ |
|---|---|---|
| النوافذ | x64 | https://github.com/pmq20/ruby-packer/release/download/windows-x64/rubyc.exe |
| ماكوس | x64 | https://github.com/pmq20/ruby-packer/release/download/darwin-x64/rubyc |
| Linux | x64 | https://github.com/pmq20/ruby-packer/release/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. يمكنك العثور على هذا ضمن القائمة Xcode -> Preferences -> Downloadsgcc و MAINCHAIN ذات الصلة التي تحتوي 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 يجب أن يكون لديك برنامج مترجم C و CHANCHAIN اللازم لبناء Ruby والمكتبات المحشوة داخل Rubyc والتي تتضمن على الأقل:
إذا لم تكن متأكدًا مما إذا كان مخطط الأدوات الخاص بك قد اكتملت ، فستخبرك 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 السابق أو أن Squashfs سوف تنمو باستمرار أكبر وسوف يكون وقت ترجمة squashfs المدمجة طويلة جدا .
Minqi Pan et al.
معهد ماساتشوستس للتكنولوجيا