Skip to Content

Software Repositories

লিনাক্সে সফটওয়্যার ইন্সটল করার সময় আপনার পিসি আসলে কারো সাথে কোনো এক ভাষায় কথা বলে। সেই “কার সাথে কথা বলছে” এবং “কীভাবে নিশ্চিত হচ্ছে যে সামনের জন সত্যি কথা বলছে”— এই পুরো বিষয়টাই হলো রিপোজিটরি এবং ডিজিটাল সিগনেচার।

Understanding Repositories

Repository হলো লিনাক্সের একটি অফিসিয়াল সফটওয়্যার লাইব্রেরি বা গুদাম।

আপনি যখন sudo apt install nmap কমান্ড দেন, লিনাক্স জানে না nmap ফাইলটি কোথায় আছে। সে তখন তার “Address Book” চেক করে দেখে কোন ঠিকানায় গেলে এটি পাওয়া যাবে। এই অ্যাড্রেসগুলো হলো সফটওয়্যার রিপোজিটরি।

The Anatomy of sources.list

আপনার পিসির সব রিপোজিটরির ঠিকানা থাকে /etc/apt/sources.list ফাইলে অথবা /etc/apt/sources.list.d/ ডিরেক্টরির ভেতর আলাদা ফাইলে। একটি রিপোজিটরি লাইন দেখতে কিছুটা এরকম হয়:

deb http://archive.ubuntu.com/ubuntu noble main restricted universe multiverse

এটি ডিকোড করলে আমরা ৪টি তথ্য পাই:

  1. deb: এটি নির্দেশ করে যে এটি একটি বাইনারি প্যাকেজ (সরাসরি ইন্সটল করা যাবে)।
  2. URL: রিপোজিটরি সার্ভারের ঠিকানা।
  3. Distribution: আপনার লিনাক্স ভার্সনের কোডনেম (যেমন: noble, jammy)।
  4. Components: এটি কোন ধরণের সফটওয়্যার (নিচে বিস্তারিত দেখুন)।

Repository Components

লিনাক্স (উবুন্টু) রিপোজিটরিকে ৪টি ভাগে ভাগ করে:

  • Main: উবুন্টু টিম দ্বারা সরাসরি সাপোর্টেড এবং ফ্রি সফটওয়্যার।
  • Restricted: ক্লোজ সোর্স বা প্রোপ্রাইটারি ড্রাইভার (যেমন: NVIDIA গ্রাফিক্স ড্রাইভার)।
  • Universe: কমিউনিটি দ্বারা মেইনটেইন করা ফ্রি সফটওয়্যার (সবচেয়ে বেশি প্যাকেজ থাকে এখানে)।
  • Multiverse: কমার্শিয়াল বা কপিরাইট প্রোটেক্টেড সফটওয়্যার (যেমন: কিছু মিডিয়া কোডেক)।

Digital Trust (GPG Keys)

ইন্টারনেটে যে কেউ একটি রিপোজিটরি খুলতে পারে। আপনি কীভাবে বুঝবেন যে উবুন্টু রিপোজিটরি থেকে আপনি যা ডাউনলোড করছেন তা একদম আসল?

এখানেই আসে GPG (Gnu Privacy Guard)। প্রতিটি রিপোজিটরির একটি ডিজিটাল সিগনেচার থাকে। আপনি যখন কোনো থার্ড-পার্টি রেপো যোগ করেন, লিনাক্স শুরুতে সেটি থেকে কিছু ডাউনলোড করতে দেয় না। আপনাকে প্রথমে ডেভেলপারের Public GPG Key আপনার পিসিতে ইমপোর্ট করতে হয়। যদি সিগনেচার না মেলে, তবে আপনার পিসি সেই সফটওয়্যার ইন্সটল করবে না।

Modern Method: পুরনো apt-key add মেথড এখন অচল (deprecated)। আধুনিক লিনাক্সে আমরা কীগুলো /usr/share/keyrings/ ফোল্ডারে .gpg বা .asc ফরম্যাটে রাখি।

Manual Repo Setup (Step-by-Step)

ধরা যাক, আপনি Sublime Text ইন্সটল করতে চান। এটি লিনাক্সের ডিফল্ট লাইব্রেরিতে নেই। তাই আমাদের নিচের ধাপগুলো অনুসরণ করতে হবে:

১. GPG Key ইমপোর্ট করা

ডেভেলপারকে বিশ্বাস করার জন্য তার সিকিউরিটি কি ডাউনলোড করে সিস্টেমের কি-রিংয়ে সেভ করতে হয়।

Terminal
wget -qO - https://download.sublimetext.com/sublimehq-pub.gpg | gpg --dearmor | sudo tee /usr/share/keyrings/sublime-text-keyring.gpg > /dev/null

২. অ্যাড্রেস ফাইল তৈরি করা

এবার রেপো সার্ভারের ঠিকানা আমাদের পিসির অ্যাড্রেস বুক ফাইলে যোগ করতে হবে।

Terminal
echo "deb [arch=amd64 signed-by=/usr/share/keyrings/sublime-text-keyring.gpg] https://download.sublimetext.com/ apt/stable/" | sudo tee /etc/apt/sources.list.d/sublime-text.list

৩. লিস্ট আপডেট করা

নতুন ঠিকানা যোগ করার পর লিনাক্সকে বলতে হয় তার মেমোরি রিফ্রেশ করতে।

Terminal
sudo apt update

৪. ইন্সটল করা

এখন আমরা সরাসরি ইন্সটল করতে পারি।

Terminal
sudo apt install sublime-text

CyberSec Note

Malicious Repositories & PPAs:

সাইবার ক্রিমিনালরা অনেক সময় খুব আকর্ষণীয় সফটওয়্যারের কথা বলে আপনাকে একটি “PPA” (Personal Package Archive) বা রিপোজিটরি যোগ করতে বলতে পারে। আপনি যদি সেটি যোগ করেন, তবে আপনার পিসিতে ম্যালওয়্যার ঢোকার একটি স্থায়ী গেট খুলে যাবে। কারণ প্রতিবার apt upgrade করার সময় আপনার পিসি ওই হ্যাকারের সার্ভার চেক করবে এবং সে চাইলে কোনো আপডেট দিয়ে আপনার রুট (root) এক্সেস নিয়ে নিতে পারে।

ইনভেস্টিগেশন টিপস:
সিস্টেম অডিট করার সময় সবসময় এই ফাইলটি চেক করুন:

Terminal
ls /etc/apt/sources.list.d/

সেখানে কোনো অপরিচিত বা অবিশ্বস্ত ডোমেইন থাকলে তাকে দ্রুত রিমুভ করুন।

Quick Check

  • রিপোজিটরি লাইনে deb বলতে কী বোঝানো হয়?
  • কেন এখন apt-key এর বদলে /usr/share/keyrings/ ব্যবহার করা হয়?
  • রিপোজিটরি ডিলিট করার সবচেয়ে সহজ পথ কোনটি?
  • GPG কী না থাকলে লিনাক্স কী ধরণের এরর (Error) দেখাতে পারে?

পরবর্তী → apt

linux software repositories bangla, how apt repos work bengali, gpg keys linux tutorial bangla, sources.list components bengali, manual repo addition linux

Last updated on