আমি গত কয়েক মাস জেমফাইলস এবং জেমফিলের সাথে জগাখিচুড়ি করে কাটিয়েছি an একটি স্বয়ংক্রিয় নির্ভরতা আপডেট সরঞ্জাম 1 নির্মাণের সময় অনেকটা লক করে । নীচেরটি চূড়ান্ত থেকে অনেক দূরে, তবে এটি জেমফিল.লক ফর্ম্যাটটি বোঝার জন্য একটি ভাল সূচনা পয়েন্ট। আপনি বান্ডলারের লকফিল পার্সারটির উত্স কোডটিও দেখতে চাইতে পারেন ।
আপনি বান্ডলার 1.x দ্বারা উত্পাদিত একটি লকফাইলে নিম্নলিখিত শিরোনামগুলি পাবেন:
জেম (but চ্ছিক তবে খুব সাধারণ)
এগুলি রুবিজেমস সার্ভার থেকে প্রাপ্ত নির্ভরতা। এটি রুবিজেমস.আরগজে মূল রুবিজেমস সূচক হতে পারে, বা এটি একটি কাস্টম সূচক হতে পারে যেমন জেমফুরি এবং অন্যদের থেকে উপলব্ধ। এই বিভাগের মধ্যে আপনি দেখতে পাবেন:
remote:
রুবিজেমস সূচকের অবস্থান নির্দিষ্ট করে এক বা একাধিক লাইন
specs:
নির্ভরতাগুলির একটি তালিকা, তাদের সংস্করণ নম্বর এবং কোনও উপ-নির্ভরতার উপর বাধা
জিআইটি ( alচ্ছিক )
এগুলি প্রদত্ত গিট রিমোট থেকে উত্পন্ন নির্ভরতা। প্রতিটি গিট রিমোটের জন্য আপনি এই বিভাগগুলির একটি আলাদা দেখতে পাবেন এবং প্রতিটি বিভাগের মধ্যে আপনি দেখতে পাবেন:
remote:
গিট রিমোট যেমন,git@github.com:rails/rails
revision:
কমিট রেফারেন্সটি জেমফিল.লক লক করা আছে
tag:
(alচ্ছিক) জেমফাইলে উল্লিখিত ট্যাগ
specs:
গিটার নির্ভরতা এই দূরবর্তীটিতে পাওয়া গেছে, এর সংস্করণ নম্বর এবং কোনও উপ-নির্ভরতাতে সীমাবদ্ধতা রয়েছে
পথ ( alচ্ছিক )
এগুলি path
হ'ল জেমফাইলে প্রদত্ত প্রদত্ত থেকে নির্ভরতা । প্রতিটি পথ নির্ভরতার জন্য আপনি এই বিভাগগুলির একটি আলাদা দেখতে পাবেন এবং প্রতিটি বিভাগের মধ্যে আপনি দেখতে পাবেন:
remote:
পথ. যেমন,plugins/vendored-dependency
specs:
গিটার নির্ভরতা এই দূরবর্তীটিতে পাওয়া গেছে, এর সংস্করণ নম্বর এবং কোনও উপ-নির্ভরতাতে সীমাবদ্ধতা রয়েছে
PLATFORMS এ
রুবি প্ল্যাটফর্মটি জেমফিল.লক বিপরীতে তৈরি হয়েছিল। গেমফিলের কোনও নির্ভরতা যদি কোনও প্ল্যাটফর্ম নির্দিষ্ট করে তবে লকফিলটি যখন প্ল্যাটফর্মটিতে উত্পন্ন হয় (যেমন, একটি ইনস্টলের মাধ্যমে) তখন সেগুলি কেবল জেমফিলের অন্তর্ভুক্ত হবে।
নির্ভরতা
Gemfile
সেখানে উল্লিখিত সংস্করণ সীমাবদ্ধতার সাথে নির্ভর করে যা নির্ভরতাগুলির একটি তালিকা ।
মূল রুবিজেমস সূচক ছাড়া অন্য কোনও উত্সের সাথে নির্দিষ্ট করা নির্ভরতাগুলির (যেমন, গিট নির্ভরতা, পথ-ভিত্তিক, নির্ভরতা) এর একটি !
অর্থ যার অর্থ তারা সেই উত্স 2 এ "পিনড" হয়ে গেছে (যদিও এটি নির্ধারণের জন্য কখনও কখনও জেমফাইলে দেখতে হবে)।
রুবি সংস্করণ ( alচ্ছিক )
এই জেমফিল.লকটি তৈরি করা হলে, রুবি সংস্করণ জেমফাইলে নির্দিষ্ট করা হয়েছে। .ruby_version
পরিবর্তে যদি কোনও ফাইলের মধ্যে রুবি সংস্করণ নির্দিষ্ট করা থাকে তবে এই বিভাগটি উপস্থিত থাকবে না (যেহেতু বান্ডলারটি ইনস্টলারের রুবি সংস্করণে জেমফিল / জেমফিল.লক অজন্যস্টিক বিবেচনা করবে)।
সঙ্গে বানানো(বান্ডলার> = v1.10.x) এর বানানো
বান্ডলারের সংস্করণ জেমফিল.লক তৈরি করতে ব্যবহৃত হয়েছিল। ইনস্টলকারীদের তাদের বান্ডলারের সংস্করণ আপডেট করতে স্মরণ করিয়ে দেওয়ার জন্য ব্যবহৃত হয়, যদি ফাইলটি তৈরি করা সংস্করণটির চেয়ে এটি পুরানো হয়।
প্লাগইন উত্স ( এবং খুব বিরল)
তত্ত্ব অনুসারে, একটি রত্ন পাখি বান্ডিলার প্লাগইনগুলি এবং সেইসাথে 3 রত্নগুলি নির্দিষ্ট করতে পারে যা পরে এখানে তালিকাভুক্ত করা হবে। অনুশীলনে, আমি জুলাই 2017 পর্যন্ত কোনও উপলব্ধ প্লাগইন সম্পর্কে সচেতন নই B বান্ডলারের এই অংশটি এখনও সক্রিয় বিকাশের অধীনে রয়েছে!
- https://dependabot.com
- https://github.com/bundler/bundler/issues/4631
- http://andre.arko.net/2012/07/23/towards-a-bundler-plugin-system/