রেড হ্যাট লিনাক্স : YUM Server Configuration

রেড হ্যাট লিনাক্স : YUM Server Configuration

আমরা যদি কোন নির্দিষ্ট একটি সার্ভিস (যেমন: Web Server) ইন্সটল করতে চাই তার জন্য আবার একাধিক RPM প্যাকেজ ইন্সটল করতে হয়। এর উপর আবার একটি RPM প্যাকেজ অন্য আরেকটি RPM প্যাকেজের উপর নির্ভরশীল থাকতে পারে, একে Dependency বলে। Dependency ব্যাপারটা একটা উদাহরণ দিয়ে বোঝা যাক: ধরুন কোন CSE এর ছাত্র ইউনিভার্সিটিতে Object Oriented Programming সাবজেক্টটি নিবে, কিন্তু এই সাবজেক্টটি নিতে হলে তাকে অবশ্যই Programming in C-ii সাবজেক্টটি কমপ্লিট করতে হবে। অর্থাৎ, Object Oriented Programming সাবজেক্টটি Programming in C-ii সাবজেক্টের উপর নির্ভরশীল (Dependent)। আবার Programming in C-ii সাবজেক্টটি Programming in C-i এর উপর নির্ভরশীল (Dependent)। তো Red Hat Linux এ এই Dependency সংক্রান্ত সমস্যা দূর করার জন্য YUM Server কনফিগার করা হয়। যখন আমরা কোন RPM প্যাকেজ ইনস্টল করতে চাই তখন এই YUM Server ঐ RPM প্যাকেজের সাথে প্রয়োজনীয় অন্যান্য প্যাকেজগুলোও অটোমেটিকভাবে ইন্সটল করে নেয়। আর কথা না বাড়িয়ে আমরা এখন দেখবো কিভাবে এই YUM Server কনফিগার করতে হয়।
YUM Server কনফিগার করার জন্য আমাদের একটি Red Hat Linux মেশিন ও একটি বুটেবল সিডি প্রয়োজন। প্রথমে আমরা সিডি-রম এ সিডিটি ঢুকাবো। সিডি ঢুকানোর পর সিডিটি অটোমেটিকভাবে /media নামক ডাইরেক্টরীতে Mount হয়ে যাবে। যদি অটোমেটিকভাবে Mount না হয় তবে আমরা তা

[root@rh1 Desktop]# mount /dev/cdrom /mnt
এই কমান্ডটির মাধ্যমে Mount করে নেব। এতে করে সিডিটি /mnt নামক ডাইরেক্টরীতে মাউন্ট হবে।
আমার সিডিটি এখানে অটোমেটিকভাবে /media নামক ডাইরেক্টরীতে Mount হয়েছে। অতঃপর আমরা /media ডাইরেক্টরীতে ঢুকে দেখব সিডিটি আছে কি না।
[root@rh1 Desktop]# cd /media
[root@rh1 media]# ls

দেখুন সিডির কনটেন্টগুলো দেখা যাচ্ছে। সিডির মধ্যে Packages নামে একটা ডাইরেক্টরী আছে। এই Packages ডাইরেক্টরীর মধ্যেই সমস্ত RPM ফাইলগুলো দেওয়া আছে। এখানে repodata নামে একটা ডাইরেক্টরী আছে। এতে YUM Server এর সাথে সর্ম্পকিত কিছু ফাইল আছে। লক্ষ্য করুন এখানে Server নামে একটা ডাইরেক্টরী আছে। এই Server ডাইরেক্টরীতে Packages এবং repodata ডাইরেক্টরী দুটিই একসাথে দেওয়া আছে।
এখন আমরা YUM Server এর কাজ শুরু করবো। YUM Server কনফিগার করার আগে আপনাকে অবশ্যই vsftpd এবং createrepo নামে দুটি প্যাকেজ অবশ্যই ইন্সটল করে নিতে হবে। যেহেতু আমরা এখনো YUM Server কনফিগার করিনি তাই প্রথমে Packages নামক ডাইরেক্টরীতে ঢুকে RPM কমান্ডের সাহায্যে প্যাকেজ দুটি ইন্সটল করে নেবো।
[root@rh1 media]# cd Packages
[root@rh1 Packages]# rpm -ivh vsftpd-2.2.2-6.el6.x86_64.rpm

আউটপুটে দেখুন vsftpd প্যাকেজটি ইন্সটল হয়ে গেছে। এখন createrepo প্যাকেজটি ইন্সটল করার পালা।
[root@rh1 Packages]# rpm -ivh createrepo-0.9.8-4.el6.noarch.rpm

আউটপুটে দেখুন createrepo প্যাকেজটিও ইন্সটল হয়ে গেছে।
এখন আমরা vsftpd এর ডকুমেন্ট রুট /var/ftp/pub এর মধ্যে dvd নামে একটা ডাইরেক্টরী বানিয়ে তার মধ্যে সিডির সব কনটেন্ট কপি করবো।
[root@rh1 Packages]# mkdir /var/ftp/pub/dvd
[root@rh1 Packages]# cp -vr /media/* /var/ftp/pub/dvd
কপি করা শেষ হলে আমরা YUM Repository তৈরী করার জন্য নিচের কমান্ড দিবো। YUM Repository হলো এক ধরণের ডাটাবেস যার মধ্যে YUM Server এর সবধরণের তথ্য থাকে।
[root@rh1 Packages]# createrepo /var/ftp/pub/dvd/Server
এখানে /var/ftp/pub/dvd/Server এই পাথ-টি এজন্যই দেওয়া হয়েছে কারণ এই পাথ-এ Packages এবং repodata ডাইরেক্টরী দুটিই একসাথে আছে। Repository তৈরী হতে কিছুক্ষণ সময় লাগবে এবং তা তৈরী হলে আমরা YUM Server এর ডকুমেন্ট রুট /etc/yum.repos.d তে যাবো এবং সেখানে একটি Repo ফাইল তৈরী করবো যার নাম আপনি যা খুশি তাই দিতে পারবেন কিন্তু এক্সটেনশন অবশ্যই .repo হতে হবে। এখানে এখন আমরা ফাইলটি server.repo নামে তৈরী করবো।
[root@rh1 Packages]# cd /etc/yum.repos.d
[root@rh1 yum.repos.d]# vim server.repo
এখন আমরা ফাইলটিতে নিচের টেক্সটগুলো লিখবো এবং ফাইলটি সেভ করবো।
       [rhel] 
       name=reposerver
       baseurl=ftp://192.168.10.1/pub/dvd/Server
       enabled=1
       gpgcheck=1
       gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
এই ফাইলে লেখা 192.168.10.1 হলো আমার মেশিনের আ.পি.এ্যাড্রেস। আপনারা আপনাদের মেশিনের আ.পি.এ্যাড্রেস লিখবেন। আর gpgkey=”………………” এর জায়গায় প্যাকেজগুলোর key দেওয়া আছে। আপনারা আপনাদের মেশিনের key বের করার জন্য অন্য আরেকটি টার্মিনাল অন করে এই কমান্ডটি দিবেন।
# find / -name *redhat-release

এখানে যে আউটপুট পাবেন তা কপি করে উপরে দেখানো ফাইলের মতো “file://” অংশটির পরে পেষ্ট করে দিবেন।
server.repo ফাইলটি লেখা ও সেভ করা শেষ হলে আমরা YUM Server এর কনফিগারেশন ফাইল /etc/yum.conf ওপেন করবো।
# vi /etc/yum.conf
এবং ফাইলটিতে Plugins=0 লিখে তা সেভ করবো।
তারপর vsftpd সার্ভিসটি রিস্টার্ট দিবো।
# service vsftpd restart
# chkconfig vsftpd on
এখন আমরা YUM Server টি রিফ্রেশ করবো।
# yum clean all
# yum repolist

আপনি যদি এরকম কোনো আউটপুট দেখতে পান তাহলে বুঝবেন যে YUM Server কনফিগারেশন সঠিক হয়েছে। এখন আমরা যেকোন কিছু ইনস্টল করে দেখবো আমাদের YUM Server ঠিকভাবে Dependency রিসল্ভ করতে পারে কি না। এজন্য আমরা নিচের কমান্ড দিবো।
# yum install telnet* -y

আউটপুট লক্ষ্য করলে দেখবেন যে, আমাদের Telnet সার্ভিসটির জন্য তিনটি প্যাকেজ সফলভাবে ইন্সটল হয়েছে। এজন্য আমাদের আলাদাভাবে প্যাকেজগুলো খুঁজে খুঁজে বের করতে হয় নাই। এতে করে আমাদের সময় ও শ্রম অনেক কম খরচ হয়েছে।
YUM Server এর আরেকটি বড় সুবিধা হলো আপনার যদি একাধিক Linux মেশিন একটি নেটওয়ার্ক এ থাকে তবে আপনাকে সবগুলো মেশিনে আলাদা করে YUM Server কনফিগার করতে হবে না। শুধুমাত্র একটি মেশিনে করলেই চলবে। যেহেতু আমরা ইতিমধ্যে একটি মেশিনে YUM Server কনফিগার করেছি তাই বাকি সব ক্লায়েন্ট মেশিনগুলোর /etc/yum.repos.d পাথ-এ server.repo নামে একটি ফাইল তৈরী করে ঐ ফাইলের মধ্যে নিচের টেক্সটগুলো হুবহু লিখে দিলেই হবে, যেমনটি আমরা সার্ভার মেশিনে লিখেছি।
[root@rh2 Packages]# cd /etc/yum.repos.d
[root@rh2 yum.repos.d]# vim server.repo
এখন আমরা ফাইলটিতে নিচের টেক্সটগুলো লিখবো এবং ফাইলটি সেভ করবো।
[rhel] 
name=reposerver
baseurl=ftp://192.168.10.1/pub/dvd/Server
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
সবশেষে ক্লায়েন্ট মেশিনগুলোতে
# yum clean all
# yum repolist
উপরিউক্ত কমান্ডগুলো দিবেন এবং যেকোন প্যাকেজ ইন্সটল করে দেখবেন।
আশা করি এই টিউটোরিয়ালটি আপনারা মনোযোগ সহকারে দেখে সফলভাবে YUM Server কনফিগার করতে পারবেন।
ধন্যবাদ
Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s