আপনি যে প্যাকেজ ম্যানেজার ব্যবহার করেন না কেন, লিনাক্সে প্রোগ্রাম ইনস্টল করার দুটি বিস্তৃত উপায় রয়েছে। আপনি হয় একটি প্রাক-নির্মিত প্যাকেজ ব্যবহার করেন, অথবা আপনি নিজেই প্রোগ্রামটি কম্পাইল করেন। আজকাল, প্রাক্তনটি সাধারণত ডিফল্টরূপে জিতে যায়, তবে এমন কিছু সময় আছে যখন আপনি উত্স কোড থেকে সংকলন করার বিষয়টি বিবেচনা করতে চাইতে পারেন৷
বাইনারি প্যাকেজ কি?
লিনাক্সে প্রোগ্রাম ইনস্টল করা সাধারণত উইন্ডোজে সফ্টওয়্যার ইনস্টল করার ঐতিহ্যগত পদ্ধতি থেকে বেশ ভিন্ন। একটি বিক্রেতার ওয়েবসাইট থেকে একটি ইনস্টলার ডাউনলোড করার পরিবর্তে, ফাইলগুলি এমন একটি প্রোগ্রামের সংগ্রহস্থল থেকে আসে যা সাধারণত আপনার লিনাক্স বিতরণের জন্য তৈরি করা হয়। আপনি একটি লিনাক্স প্যাকেজ ম্যানেজার বা একটি লিনাক্স অ্যাপ স্টোর ব্যবহার করে এই সংগ্রহস্থলটি অ্যাক্সেস করুন৷
এই সংগ্রহস্থলগুলিতে প্রোগ্রামগুলি তৈরি করা ফাইলগুলি একটি সংরক্ষণাগার বিন্যাসে আসে। সহজ অ্যাক্সেস এবং বিতরণের জন্য এটি একটি একক ফাইলে সবকিছু বান্ডিল করে। ডেবিয়ান, উদাহরণস্বরূপ, প্রোগ্রামগুলি সংরক্ষণ এবং বিতরণ করতে DEB বিন্যাস ব্যবহার করে। এই বান্ডিলগুলিকে বাইনারী প্যাকেজ বলা হয় .
এই ফাইলগুলি বের করতে এবং আপনার কম্পিউটারে, সাধারণত আপনার প্যাকেজ ম্যানেজার বা অ্যাপ স্টোরে ইনস্টল করার জন্য আপনার একটি বিশেষ প্রোগ্রামের প্রয়োজন৷ এই টুলগুলি অন্যান্য দরকারী ফাংশনগুলিও সম্পাদন করে, যেমন আপনি কোন ফাইলগুলি ইনস্টল করেছেন তার ট্র্যাক রাখা এবং সফ্টওয়্যার আপডেটগুলি পরিচালনা করা৷
প্যাকেজগুলো কোথা থেকে আসে?
সমস্ত সফ্টওয়্যার সোর্স কোড হিসাবে পরিচিত পাঠ্যের লাইনগুলি নিয়ে গঠিত, যা নির্দিষ্ট প্রোগ্রামিং ভাষায় লেখা হয়, যেমন C বা C++। আপনি সাধারণত এই উত্স কোডটিকে একটি সংরক্ষণাগারে বান্ডিল করতে এবং এটিকে একটি প্যাকেজ বলতে পারবেন না। এই লাইনগুলিকে এমন একটি ভাষায় অনুবাদ করতে হবে যা আপনার কম্পিউটার বুঝতে পারে এবং চালাতে পারে৷
এই প্রক্রিয়াটিকে কম্পাইলিং বলা হয়, শেষ ফলাফল বাইনারি তৈরি করে যা আপনার কম্পিউটার চালাতে পারে। প্যাকেজ এবং সফ্টওয়্যারের মধ্যে পার্থক্য হল যে সফ্টওয়্যার বাইনারিগুলি একটি প্যাকেজের ভিতরে, কনফিগারেশন ফাইলগুলির মতো অন্যান্য জিনিসগুলির সাথে একসাথে সংরক্ষণ করা হয়৷
"উৎস থেকে" ইনস্টল করা কি?
"উৎস থেকে" একটি প্রোগ্রাম ইনস্টল করার অর্থ হল প্যাকেজ ম্যানেজার ব্যবহার না করেই একটি প্রোগ্রাম ইনস্টল করা। আপনি সোর্স কোড কম্পাইল করুন এবং পরিবর্তে আপনার কম্পিউটারে বাইনারি কপি করুন।
বেশিরভাগ সময়, আপনি হোস্টিং পরিষেবা যেমন গিটহাব, গিটল্যাব বা বিটবাকেট থেকে একটি প্রকল্পের সোর্স কোড ডাউনলোড করতে পারেন। বড় প্রোগ্রাম এমনকি একটি ব্যক্তিগত ওয়েবসাইটে সোর্স কোড হোস্ট করতে পারে. কোডটি সাধারণত একটি সংরক্ষণাগার বিন্যাসে জিপ করা হবে (এটি সোর্স প্যাকেজ নামেও পরিচিত )।
সরঞ্জামগুলির একটি বিশেষ সেট বিল্ডিং প্রক্রিয়া স্বয়ংক্রিয় করতে সাহায্য করে। লিনাক্স ডেস্কটপে, এটি প্রায়ই মেক নামে একটি কমান্ড লাইন প্রোগ্রামের আকারে আসে . বিভিন্ন ভাষায় লেখা সোর্স কোডকে বাইনারিতে পরিবর্তন করতে নির্দিষ্ট কম্পাইলার এবং কমান্ডের প্রয়োজন হয়। মেক প্রোগ্রাম এই প্রক্রিয়াটিকে স্বয়ংক্রিয় করে।
এই অটোমেশন কাজ করার জন্য, প্রোগ্রামগুলি একটি মেকফাইল দিয়ে মেক প্রদান করে এটা বলে যে কি করতে হবে এবং কম্পাইল করতে হবে। আজকাল, এটি সাধারণত সিমেকের মতো বিশেষ সফ্টওয়্যার দ্বারা স্বয়ংক্রিয়ভাবে তৈরি হয়। আপনি এখানে এসেছেন। এখান থেকে, আপনি আপনার সফ্টওয়্যারে ঠিক কোন বৈশিষ্ট্যগুলি কম্পাইল করতে চান তা নির্দিষ্ট করতে পারেন।
বিল্ডিং "উৎস থেকে" উদাহরণ
উদাহরণস্বরূপ, নীচের কমান্ডটি CMake ব্যবহার করে Calligra Office Suite-এর জন্য একটি কনফিগারেশন ফাইল তৈরি করে। তৈরি করা ফাইলটি মেক প্রোগ্রামকে শুধুমাত্র ক্যালিগ্রার রাইটার উপাদান কম্পাইল করতে বলে।
cmake -DPRODUCTSET=WORDS -DCMAKE_INSTALL_PREFIX=$HOME/kde/inst5 $HOME/kde/src/calligra
এটি করার পরে, একজন ব্যক্তিকে তাদের কম্পিউটারে ফলাফলগুলি কম্পাইল এবং অনুলিপি করার জন্য মেক টুলটি চালাতে হবে। এটি নিম্নলিখিত উপায়ে করা হয়:
make
make install
যদিও এটি প্রোগ্রাম কম্পাইল করার সাধারণ প্যাটার্ন, সোর্স প্যাকেজ ইনস্টল করার আরও অনেক উপায় রয়েছে। উদাহরণস্বরূপ, জেন্টু লিনাক্সে এটি পরিচালনা করার একটি অন্তর্নির্মিত উপায় রয়েছে যা প্রক্রিয়াটিকে আরও দ্রুত এবং সহজ করে তোলে। কিন্তু বাইনারি প্যাকেজ তৈরি করতে উপরের কমান্ডের চেয়ে আরও কয়েকটি ধাপ লাগে।
বাইনারি প্যাকেজ ব্যবহারের সুবিধা
আপনি যদি লিনাক্স ব্যবহার করেন, তাহলে সম্ভবত আপনার ইনস্টল করা সফ্টওয়্যারটিকে কেউ আগে থেকে কম্পাইল করে রেখেছে। এটি উৎস প্যাকেজ ব্যবহার করার চেয়ে অনেক বেশি সাধারণ হয়ে উঠেছে। কিন্তু কেন?
বাইনারি সংস্করণগুলি পরিচালনা করা সহজ
বাইনারি প্যাকেজগুলিতে কম্পাইল করা ইনস্টলেশন ফাইলের চেয়ে অনেক বেশি থাকে। তারা এমন তথ্যও সঞ্চয় করে যা আপনার প্যাকেজ ম্যানেজারকে আপনার সমস্ত প্রোগ্রামের ট্র্যাক রাখা সহজ করে তোলে। উদাহরণস্বরূপ, DEB ফাইলগুলি (ডেবিয়ান এবং ডেবিয়ান ডেরিভেটিভগুলির জন্য প্যাকেজ বিন্যাস) এছাড়াও গুরুত্বপূর্ণ তথ্য রয়েছে যেমন প্রোগ্রামটি চালানোর জন্য অন্যান্য সফ্টওয়্যার এবং এর বর্তমান সংস্করণ।
এটি প্যাকেজগুলিকে ইনস্টল করা অনেক সহজ করে তোলে, কারণ একটি প্রোগ্রাম সফলভাবে চালানোর জন্য আপনাকে অন্য কোন ফাইলগুলি প্রয়োজন তা নিয়ে আপনার চিন্তা করার দরকার নেই৷ আপনার প্যাকেজ ম্যানেজার নিজেই প্যাকেজ থেকে সেই তথ্য পড়তে পারে এবং সমস্ত প্রয়োজনীয় নির্ভরতা স্বয়ংক্রিয়ভাবে ডাউনলোড করে।
উত্স থেকে প্রোগ্রামগুলি ইনস্টল করার সময়, যদি না আপনি কোডটিকে তার নিজস্ব একটি বাইনারি প্যাকেজে সংকলন করেন, আপনি যে সফ্টওয়্যার পরিচালনার দায়িত্বে থাকবে. এটি কাজ করার জন্য আপনাকে অন্য কোন প্রোগ্রামগুলির প্রয়োজন তা মনে রাখতে হবে এবং সেগুলি নিজেই ইনস্টল করতে হবে৷
বাইনারি সংস্করণগুলির স্থিতিশীলতা উন্নত হয়েছে
আপনার প্যাকেজ ম্যানেজারের জন্য রিপোজিটরিগুলি রক্ষণাবেক্ষণকারী লোকেরা সমস্যাগুলির জন্য বাইনারিগুলি পরীক্ষা করে এবং যেগুলি উপস্থিত হয় সেগুলি ঠিক করার জন্য তাদের যথাসাধ্য চেষ্টা করে৷ এটি প্রোগ্রামগুলির উন্নত স্থিতিশীলতার দিকে পরিচালিত করতে পারে, এমন কিছু যা একজন ব্যক্তি যিনি উত্স থেকে ইনস্টল করেছেন তা মিস করতে পারেন৷
প্লাস প্যাকেজগুলি আপনার সিস্টেমে চলবে তা নিশ্চিত করতে সাধারণত একটি কঠোর নিয়ম মেনে চলতে হবে। ডেবিয়ান এবং উবুন্টু উভয়েরই একটি নীতি ম্যানুয়াল রয়েছে যেমন, অন্যান্য অনেক লিনাক্স ডিস্ট্রিবিউশনের মতো।
কিছু প্রোগ্রাম চালানোর জন্য একই সফ্টওয়্যার নির্ভরতার বিভিন্ন সংস্করণের উপর নির্ভর করে। প্যাকেজ সংগ্রহস্থলগুলি এই দ্বন্দ্বগুলি সমাধান করার জন্য তাদের যথাসাধ্য চেষ্টা করে যাতে আপনাকে এই বিষয়ে চিন্তা করতে হবে না৷
উৎস প্যাকেজ কম্পাইল করার সুবিধা
উত্স থেকে প্রোগ্রাম ইনস্টল করা এমন কিছু নয় যা প্রত্যেককে করতে হবে, কারণ আপনি বাইনারি প্যাকেজগুলির সাথে লেগে থাকলে সাধারণত আপনার পিসি বজায় রাখা সহজ। তা সত্ত্বেও, প্রোগ্রামগুলি ইনস্টল করার এই সামান্য বেশি জড়িত উপায়টি ব্যবহার করার কিছু সুবিধা এখনও রয়েছে৷
সোর্স কোড অফার লেটেস্ট সফটওয়্যার
প্রোগ্রামগুলিকে আরও নির্ভরযোগ্য করে তোলার একটি অসুবিধা হল এটি উন্নতি করতে এবং ঠিক করতে সময় নেয়। ফলস্বরূপ, এটি আপনাকে সফ্টওয়্যারের পুরানো সংস্করণগুলি ব্যবহার করতে পারে৷ যারা সর্বশেষ এবং সর্বশ্রেষ্ঠ চান তাদের জন্য, তারা এর বিনিময়ে কিছুটা অস্থিরতাও পছন্দ করতে পারে।
যদিও লিনাক্স অপারেটিং সিস্টেম রয়েছে যা প্রোগ্রামগুলি সংকলন না করেই এই প্রয়োজনটি পূরণ করে, তাদের কিছু ত্রুটি রয়েছে। উদাহরণস্বরূপ, যে সফ্টওয়্যারগুলি প্রায়শই সেট প্যাকেজ সংস্করণ প্রকাশ করে না সেগুলি উত্স থেকে ইনস্টল করার চেয়ে সংগ্রহস্থলে আপ টু ডেট রাখা কঠিন৷
এর কারণ হল বাইনারি প্যাকেজগুলি সাধারণত প্রোগ্রামগুলির অফিসিয়াল রিলিজ থেকে তৈরি করা হয়। যেমন, এই সংস্করণগুলির মধ্যে পরিবর্তনগুলি সাধারণত বিবেচনায় নেওয়া হয় না। উৎস থেকে আপনার নিজস্ব সফ্টওয়্যার কম্পাইল করে, আপনি এই পরিবর্তনগুলি থেকে অবিলম্বে উপকৃত হতে পারেন৷
এটাও সম্ভব যে আপনার লিনাক্স অপারেটিং সিস্টেমে এমন সফ্টওয়্যার নেই যা আপনি আপনার জন্য আগে থেকে তৈরি করতে চান৷ যদি তাই হয়, উৎস থেকে এটি ইনস্টল করা আপনার একমাত্র বিকল্প।
আপনি বাছাই এবং চয়ন করতে পারেন
উত্স প্যাকেজগুলি ব্যবহার করার আরেকটি সুবিধা হল যে আপনি যে প্রোগ্রামগুলি ইনস্টল করেন তার উপর আপনি আরও নিয়ন্ত্রণ লাভ করেন। একটি বাইনারি সংগ্রহস্থল থেকে ইনস্টল করার সময়, আপনি আপনার প্যাকেজগুলি কাস্টমাইজ করার উপায়গুলিতে সীমাবদ্ধ থাকেন৷
উদাহরণস্বরূপ, FFmpeg দেখুন, কমান্ড-লাইন-ভিত্তিক অডিও এবং ভিডিও রূপান্তরকারী। ডিফল্টরূপে, এটি বিপুল সংখ্যক বৈশিষ্ট্য সহ আসে, যার মধ্যে কিছু আপনি হয়তো স্পর্শও করতে পারেন না। উদাহরণস্বরূপ, JACK অডিও সমর্থন FFmpeg-এ উপলব্ধ, যদিও এই সফ্টওয়্যারটি সাধারণত শুধুমাত্র উৎপাদন পরিবেশে ব্যবহৃত হয়।
FFmpeg কম্পাইল করার ফলে আপনি এটি থেকে যে জিনিসগুলি চান না তা মুছে ফেলতে পারবেন, এটিকে হালকা এবং আপনার প্রয়োজন অনুসারে তৈরি করতে পারবেন। এবং একই অন্যান্য হেভিওয়েট প্রোগ্রাম প্রযোজ্য.
যখন সম্পদের অভাব হয়, বৈশিষ্ট্যগুলি অপসারণ করা লোড হালকা করার একটি দুর্দান্ত উপায় হতে পারে। এতে অবাক হওয়ার কিছু নেই যে ক্রোম ওএস, অনেক কম-সম্পন্ন কম্পিউটারে পাওয়া যায়, এটি জেন্টু লিনাক্সের উপর ভিত্তি করে। জেন্টু, উৎস-ভিত্তিক, এটির অনেক সফ্টওয়্যার সংকলন করে, সম্ভাব্যভাবে এই সিস্টেমগুলিকে আরও হালকা করে।
কেন উভয়ের সাথে ইনস্টল করবেন না?
যদিও আপনি সম্ভবত দৈনিক ভিত্তিতে প্যাকেজ কম্পাইল করতে চান না, এটি মনে রাখা দরকারী কিছু। এতে বলা হয়েছে, স্ন্যাপ স্টোর এবং ফ্ল্যাথবের মতো সাইটগুলি থেকে উপলব্ধ নতুন সার্বজনীন প্যাকেজ ফর্ম্যাটগুলির সাথে, সর্বশেষ সফ্টওয়্যার পেতে আপনার উত্স থেকে তৈরি করার সম্ভাবনা কম৷