অটোটুলস, ক্যামেক এবং স্কোনগুলির মধ্যে পার্থক্য কী?
অটোটুলস, ক্যামেক এবং স্কোনগুলির মধ্যে পার্থক্য কী?
উত্তর:
সত্যিকার অর্থে, অটটুলগুলি 'সত্যিকারের' সংরক্ষণের অনুগ্রহ 'হ'ল এটি সমস্ত জিএনইউ প্রকল্পগুলি মূলত ব্যবহার করছে।
অটোটুল সহ সমস্যাগুলি:
এটি কাজ করে ... বেশিরভাগ সময় ... অটোটুল সম্পর্কে আপনি যা বলতে পারেন তা কেবল। এটি এমন একটি সিস্টেম যা বেশ কয়েকটি সমস্যা সমাধান করে যা কেবলমাত্র জিএনইউ প্রকল্পকে ... তাদের বেস, মূল সরঞ্জামচেন কোডের জন্য সত্যিই উদ্বেগিত করে। (সম্পাদনা (05/24/2014): এটি লক্ষ করা উচিত যে এই ধরণের উদ্বেগ একটি উদ্বেগজনকভাবে BAD বিষয় যা উদ্বেগের বিষয় হতে পারে- হৃদয়যুক্ত আংশিকভাবে এই চিন্তাভাবনা থেকে এবং সঠিক, আধুনিক সিস্টেমগুলি সহ, আপনি সত্যই সত্যঅটোটুলস যা সংশোধন করে তার সাথে অনেকগুলি ব্যবসা করে না। জিএনইউ-র সম্ভবত কোডবেসটি ক্রুফট অপসারণের দরকার আছে, হার্টলেডের সাথে যা ঘটেছিল তার আলোকে) আপনি এটি আপনার প্রকল্পটি করতে ব্যবহার করতে পারেন এবং এটি এমন একটি ছোট্ট প্রকল্পের জন্য সুন্দরভাবে কাজ করতে পারে যা আপনি লিনাক্স বাদে বা কোথাও কাজ করার আশা করেন না। জিএনইউ সরঞ্জামচেন পরিষ্কারভাবে সঠিকভাবে কাজ করছে। বিবৃতি যে এটি "লিনাক্সের সাথে সুন্দরভাবে সংহত করে" যথেষ্ট সাহসী বিবৃতি এবং বেশ ভুল । এটি GNU সরঞ্জামসুটির সাথে যুক্তিসঙ্গতভাবে ভালভাবে সংহত করে এবং এটির লক্ষ্যগুলির সাথে সমস্যাগুলি সমাধান করে।
এটি এখানে থ্রেডে আলোচিত অন্যান্য বিকল্পগুলির সাথে কোনও সমস্যা নেই তা বলার অপেক্ষা রাখে না।
মেক / জ্যামেক / ইত্যাদির জন্য স্ক্যানস আরও একটি প্রতিস্থাপন। এবং দেখতে বেশ সুন্দর দেখাচ্ছে, সব কিছু বিবেচিত তবে ...
এই থ্রেডে সিএমকে জন্য দেওয়া উদাহরণগুলি কিছুটা জাল।
যাহোক...
সত্যিকার অর্থে, আপনার লক্ষ্যগুলি এখানে যা বেছে নেবে তা নির্ধারণ করা উচিত।
অনেকগুলি কারণ রয়েছে, অনেকগুলি প্রকল্প চূড়ান্তভাবে কুইমেক, অটোটুলস ইত্যাদি ছড়িয়ে যাচ্ছে এবং সিএমকে নিয়ে চলেছে। এখন পর্যন্ত, আমি সিএমকে ভিত্তিক প্রকল্পটি পরিষ্কারভাবে আশা করতে পারি যে হয় ক্রস-কম্পাইল পরিস্থিতি বা ভিজ্যুয়াল স্টুডিও সেটআপে নেমেছে বা কেবলমাত্র একটি সামান্য পরিমাণে পরিষ্কার দরকার কারণ প্রকল্পটি উইন্ডোজ-কেবলমাত্র বা ওএসএক্স-কেবলমাত্র অংশগুলির জন্য অ্যাকাউন্ট করে নি কোডবেসে। আমি সত্যিই একটি SCons যে আউট ভিত্তিক project- আশা করতে পারে না এবং আমি সম্পূর্ণরূপে আশা 1/3 য় বা একাধিক Autotools প্রকল্প অর্জিত হয়েছে কিছু একটা ভুল যে precludes এটা হোস্ট একটি অথবা Scratchbox2 এক বিল্ডিং ছাড়া কোন প্রেক্ষাপটে ডানে বিল্ডিং।
কে এই সরঞ্জামগুলি ব্যবহার করে তার মধ্যে একটি গুরুত্বপূর্ণ পার্থক্য তৈরি করতে হবে। Cmake একটি সরঞ্জাম যা ব্যবহারকারীর দ্বারা সফ্টওয়্যারটি তৈরি করার সময় অবশ্যই ব্যবহার করা উচিত। অটোটুলগুলি কোনও বিতরণ টার্বল তৈরি করতে ব্যবহার করা হয় যা কোনও এসএএস কমপ্লায়েন্ট সিস্টেমে উপলব্ধ স্ট্যান্ডার্ড সরঞ্জামগুলি ব্যবহার করে সফ্টওয়্যারটি তৈরি করতে ব্যবহার করা যেতে পারে। অন্য কথায়, আপনি যদি অটোটুলগুলি ব্যবহার করে তৈরি করা কোনও টার্বল থেকে সফ্টওয়্যার ইনস্টল করে থাকেন তবে আপনি অটোটুলগুলি ব্যবহার করছেন না । অন্যদিকে, আপনি সফ্টওয়্যার Cmake ব্যবহার করে ইনস্টল করছেন, তাহলে আপনি হয় Cmake ব্যবহার করে এবং এটা সফ্টওয়্যার গড়ে তুলতে ইনস্টল থাকতে হবে।
বেশিরভাগ ব্যবহারকারীর তাদের বাক্সে অটোটুলগুলি ইনস্টল করার দরকার নেই। Icallyতিহাসিকভাবে, অনেক বিভ্রান্তির সৃষ্টি হয়েছে কারণ অনেকগুলি বিকাশকারী ত্রুটিযুক্ত টার্বলগুলি বিতরণ করে যা ব্যবহারকারীকে কনফিগার স্ক্রিপ্টটি পুনরায় তৈরি করতে অটোকনফ চালাতে বাধ্য করে এবং এটি একটি প্যাকেজিং ত্রুটি। বেশি বিভ্রান্তির কারণ এই হয়েছে যে বেশিরভাগ প্রধান লিনাক্স ডিস্ট্রিবিউশনগুলি অটোটুলগুলির একাধিক সংস্করণ ইনস্টল করে, যখন সেগুলি ডিফল্টরূপে সেগুলির কোনও ইনস্টল করা উচিত নয়। এমনকি আরও বিভ্রান্তি ঘটে টার্বল তৈরির পরিবর্তে তাদের সফ্টওয়্যার বিতরণ করার জন্য সংস্করণ নিয়ন্ত্রণ ব্যবস্থা (যেমন সিভি, গিট, এসএনএন) ব্যবহার করার চেষ্টা করার কারণে ডেভেলপাররা।
asciidoc
বা help2man
বা doxygen
সঠিক autotool সমন্বয় বা, সবচেয়ে গুরুত্বপূর্ণভাবে,। এটি অটোটুলগুলির জন্য বিশাল বিপণনের সমস্যা হয়ে দাঁড়িয়েছে। ব্যবহারকারীরা ভুলভাবে মনে করে যে তাদের অটোকনফ ইনস্টল করা দরকার কারণ তারা টারবাল এবং ভিসিএসের মধ্যে পার্থক্য বুঝতে পারে না।
এটি জিএনইউ কোডিং মান সম্পর্কে নয়।
অটোটুলগুলির বর্তমান সুবিধাগুলি - বিশেষত যখন অটোমেক ব্যবহার করা হয় - তা হ'ল তারা লিনাক্স বিতরণে খুব ভালভাবে সংহত করে।
উদাহরণস্বরূপ চিত্তাকর্ষক সহ, এটি সর্বদা "আমার-যা প্রয়োজন তা -DDMAKE_CFLAGS বা-DCMAKE_C_FLAGS ছিল?" না, এটি উভয়ই নয়, এটি "-ডাব্লিউএমএকে_সি_এফএলএজিএসএলএএসএলইএসই"। বা -ডিসিএমএকেE_C_FLAGS_DEBUG। এটি বিভ্রান্তিকর - অটোকনফ-এ, এটি ঠিক ./configure CFLAGS = "- O0 -ggdb3" এবং আপনার কাছে রয়েছে।
বিল্ড ইনফ্রাস্ট্রাকচারগুলির সাথে সংহতকরণে, স্ক্যানগুলির এমন সমস্যা রয়েছে যা আপনি ব্যবহার করতে পারবেন না make %{?_smp_mflags}
, _smp_mflags
এই ক্ষেত্রে একটি RPM ম্যাক্রো হ'ল মোটামুটি প্রসারিত (অ্যাডমিন সেট করতে পারে) সিস্টেম পাওয়ার। লোকেরা এখানে তাদের পরিবেশের মাধ্যমে -jNCPUS এর মতো জিনিস রাখে। যে স্ক্যানগুলি কাজ করছে না তা দিয়ে, তাই স্ক্যানগুলি ব্যবহার করে প্যাকেজগুলি কেবল ডিস্ট্রোসগুলিতে সেরিয়াল নির্মিত হতে পারে।
./configure CFLAGS=-O0
প্যাকেজ যে Makefile মধ্যে ঊর্ধ্বলিপি CFLAGS পরিবর্তে ব্যবহারকারীকে রান প্রয়োজন সঙ্গে প্রায়ই ব্যর্থ হয় ./configure --enable-debug
। (যেমন tmux
)
অটোটুলগুলি সম্পর্কে যা জানা গুরুত্বপূর্ণ তা হ'ল এগুলি একটি সাধারণ বিল্ড সিস্টেম নয় - তারা জিএনইউ কোডিং মান এবং অন্য কিছুই প্রয়োগ করে না। যদি আপনি এমন একটি প্যাকেজ তৈরি করতে চান যা সমস্ত জিএনইউ মানকে অনুসরণ করে তবে অটোটুলগুলি কাজের জন্য একটি দুর্দান্ত সরঞ্জাম। যদি আপনি এটি না করেন তবে আপনার স্কোন বা সিএমকে ব্যবহার করা উচিত। (উদাহরণস্বরূপ, এই প্রশ্নটি দেখুন )) অটোটুলগুলি নিয়ে হতাশার বেশিরভাগ অংশ থেকেই এই সাধারণ ভুল বোঝাবুঝি।
AUTOMAKE_OPTIONS = -foreign
আপনার Makefile.am
। (বা -foreign
আপনার মধ্যে autogen.sh
। আমি মনে করি প্রায় প্রত্যেকে এটি ব্যবহার করে))
installcheck
এবং মত বিধিগুলির মৌলিক ভিত্তি পরিবর্তন করে না distclean
। আপনি যদি এখনও অটোটুল ব্যবহার করার সময় সেই ধরণের আচরণ পরিবর্তন করার চেষ্টা করেন তবে আপনি কেবল নিজের সময় নষ্ট করছেন।
বিকাশকারী দৃষ্টিকোণ থেকে, চতুর ব্যবহার এখন সর্বাধিক সহজ, ব্যবহারকারীর দৃষ্টিকোণ থেকে অটোটুলের একটি বড় সুবিধা রয়েছে
অটটুলগুলি একটি একক ফাইল কনফিগার স্ক্রিপ্ট উত্পন্ন করে এবং উত্পন্ন করার জন্য সমস্ত ফাইল বিতরণ করে। গ্রেপ / সেড / অ্যাজক / vi এর সাহায্যে এটি বোঝা এবং ঠিক করা সহজ। এটি চ্যামেকের সাথে তুলনা করুন যেখানে / usr / share / cmak * / মডিউলগুলিতে প্রচুর ফাইল পাওয়া যায়, যা প্রশাসকের অ্যাক্সেস না থাকলে ব্যবহারকারীর দ্বারা স্থির করা যায় না।
সুতরাং, যদি কোনও কিছু পুরোপুরি কাজ না করে তবে সাধারণত বিল্ডসিস্টেমটি না বুঝে স্ল্যাজহ্যামার পদ্ধতিতে স্ট্যান্ডার্ড ইউনিক্স সরঞ্জামগুলি (গ্রেপ / সেড / অ্যাজক / ভি ইত্যাদি) সহজেই "ফিক্সড" করা যায়।
ভুল কি আছে তা খুঁজে পাওয়ার জন্য আপনি কি কখনও নিজের ক্যামেক বিল্ড ডিরেক্টরিটি খুঁটিয়েছেন? সরল শেলসক্রিপ্টের সাথে তুলনা করুন যা উপরের থেকে নীচে পর্যন্ত পড়া যায়, জেনারেট করা ক্ল্যামেক ফাইলগুলি অনুসরণ করে যা চলছে তা খুঁজে পাওয়া বেশ কঠিন। এছাড়াও সিএমকেকের সাথে ফাইন্ডফু.ক্যামেক ফাইলগুলি মানিয়ে নেওয়ার জন্য কেবল সিএমকে ভাষার জ্ঞানই প্রয়োজন হয় না, তবে অতিরিক্ত ব্যবহারকারীর সুবিধাদিও প্রয়োজন হতে পারে।