ডেবিয়ান লিনাক্সে প্যাকেজ ম্যানেজমেন্ট এর ইতিবৃত্ত

ডেবিয়ান লিনাক্সে প্যাকেজ ইনস্টলের এর জন্য যে ফাইলগুলি ব্যবহৃত হয় তার এক্সটেনশন হচ্ছে .deb। উইন্ডোজে যেমন আমরা .exe ফাইলের উপর ডাবল ক্লিক করে সফটওয়্যার ইনস্টল করি ডেবিয়ান ভিত্তিক লিনাক্সে তেমন পদ্ধতির বদলে apt-get, aptitude অথবা synaptic নামক গ্রাফিক্যাল টুলস ব্যবহার করা হয়। প্রথম দুটি হচ্ছে কমান্ড লাইন ভিত্তিক এবং সিনাপ্টিক মাউস দিয়ে ব্যবহার করা যায়। এ ধরনের টুলস ব্যবহার করতে হলে ডেবিয়ান প্যাকেজগুলি আগে থেকেই নির্দিষ্ট স্থানে যেমন-সিডি, ডিভিডি, ইন্টারনেট এর এফটিপি সার্ভার বা কোন লোকাল ফোল্ডারে থাকতে হবে। তারপর ইনস্টল করা যাবে এ ধরনের টুলসের সাহায্যে।

তবে সরাসরি ডেব প্যাকেজ ইনস্টলের জন্য আরেকটি কমান্ড ব্যবহার করা যায় - dpkg কমান্ড। তবে এর সীমাবদ্ধতা হচ্ছে এটি ডিপেনডেন্সী ফাইলগুলিকে স্বয়ংক্রিয়ভাবে ইনস্টল করতে পারে না। হয় আগে থেকেই ডিপেনডেন্সী ফাইলগুলি মেশিনে ইনস্টল করা থাকতে হবে নতুবা উক্ত ফোল্ডারে সব ডিপেনডেন্সী ফাইল কপি করে সব ডেব ফাইলগুলিকে dpkg –i *.deb কমান্ডের সাহায্যে একসাথে ইনস্টল করতে হবে। এটি বেশ ঝামেলার কাজ হয়ে দাড়ায় যদি ইন্টারনেট কানেকশন না থাকে। এজন্য আমি আগের কয়েকটি পোস্টে অফলাইন ইনস্টলার তৈরীর পদ্ধতি আলোচনা করেছি। এজন্য দেখুন-

১. লিনাক্সে নির্দিষ্ট প্যাকেজের অফলাইন ইনস্টলার তৈরী করা
২. উইন্ডোজ মেশিন থেকে লিনাক্স প্রোগ্রামের অফলাইন ইনস্টলার তৈরী

তবে উক্ত পদ্ধতিগুলির কিছু সমস্যা ছিল। যেমনঃ একটি মেশিনে অবশ্যই লিনাক্স ইনস্টল থাকতে হবে এবং সেটির সাথে নেট কানেকশন থাকতে হবে। তারপর উক্ত মেশিনকে ব্যবহার করে অন্যান্য মেশিনের জন্য অফলাইন ইনস্টলার তৈরী করতে হবে এবং উক্ত পদ্ধতিগুলি ছিল dpkg কমান্ড নির্ভর। ফলে লোকাল রিপোজিটরী হিসেবে কোন মেশিনকে ব্যবহার করা সম্ভব ছিল না উক্ত পদ্ধতির সাহায্যে। অর্থাৎ উক্ত পদ্ধতিতে প্রতিটি মেশিনে ফাইল কপি করে ইনস্টল করতে হতো। কিন্তু ল্যান নেটওয়ার্কে কোন মেশিনে একটি লোকাল রিপোজিটরী তৈরী করে তাকে অন্যান্য মেশিনে খুব সহজেই ব্যবহার করা যায়।

লোকাল রিপোজিটরী তৈরী করতে হলে apt-get/aptitude কমান্ডগুলি কিভাবে কাজ করে থাকে সে সম্বন্ধে একটি স্বচ্ছ ধারনা প্রয়োজন। আসুন প্রথমেই আমরা সে উদ্দেশ্য কে সামনে রেখে এগিয়ে যাই।

নতুন ইনস্টলড মেশিনের সফটওয়্যার লিস্ট

কোন মেশিনে লিনাক্স নতুন ইনস্টল করার পর সিনাপ্টিকে যে সফটওয়্যারগুলির তালিকা থাকে সেগুলি সাধারনতঃ সিডি/ইন্টারনেট থেকে ইনস্টল করা যায়। যদি ইন্টারনেট না থাকে তবে শুধুমাত্র সিডিতে যে সফটওয়্যারগুলি থাকে সেগুলিই ইনস্টল করতে পারবেন। বাকীগুলি ইনস্টল করার সময় নেট কানেকশন না থাকলে এরর দেখাবে। এখন নতুন কোন সিডি যদি সিনাপ্টিকে যোগ করতে চান মেনুর সাহায্যে (Edit --> Add CD ROM) অথবা কমান্ড লাইনের apt-cdrom add এর সাহায্যে তাহলে প্রথমেই উক্ত সিডির একটি বিশেষ ফাইল - Packages.gz যা সাধারনত কোন সিডির \dists\lenny\main\binary-i386\Packages এ ধরনের পাথে থাকে তাকে প্রথমে খুজে বের করবে। তারপর উক্ত ফাইলের সাহায্যে নতুন সফটওয়্যার লিস্ট তালিকায় যুক্ত করবে। এ Packages.gz ফাইলটি সব থেকে গুরুত্বপূর্ন টুলস সিনাপ্টিকের জন্য। এটি আনজিপ করে কোন টেক্সট এডিটরে ওপেন করলে সবকিছু দেখতে পারবেন। এ ফাইলে প্যাকেজসমূহের তালিকা, বর্ননা, ভার্সন নম্বর, কোন পাথ থেকে ইনস্টল করা হবে তার নির্দেশনা, MD5 চেক করা, ডিপেনডেন্সির তালিকাসহ যা প্রয়োজন তার সবই থাকে। আপনি নিজে যদি কোন লোকাল রিপোজিটরী বানাতে চান তাহলে আপনার নিজস্ব ফোল্ডারে যে ডেব ফাইলগুলি থাকবে তার জন্য একটি আলাদা Packages.gz ফাইল তৈরি করে নিতে হবে। এটি শুনে ঘাবড়ানোর কিছু নেই। ডেবিয়ান নির্ভর লিনাক্সে dpkg-scanpackages কমান্ডের সাহায্যে স্বয়ংক্রিয়ভাবে এ ফাইলটি তৈরী করা যায়। এটি তৈরী হয়ে যাওয়ার পর /etc/apt/sources.list ফাইলে আপনার লোকাল রিপোজিটরী ফোল্ডারটিকে যুক্ত করে apt-get update কমান্ড চালালেই উক্ত Packages.gz ফাইলে নতুন সফটওয়্যার তালিকা আপনার মেশিনের সিনাপ্টিকে যুক্ত হয়ে যাবে। তারপর উক্ত সফটওয়্যারগুলিকে ক্লিক এন্ড গো এর মাধ্যমেই লোকাল ফোল্ডার/রিপোজিটরী থেকে ইনস্টল করতে পারবেন।

তাহলে উপরের আলোচনা থেকে লোকাল রিপোজিটরী তৈরীর যে পদ্ধতি আমরা শিখলাম তা হলঃ

১. প্রথমেই একটি ফোল্ডারে আপনার প্রয়োজনীয় সব ডেব ফাইলগুলিকে কপি করে নিন। এটি হোম ফোল্ডারের আন্ডারে যেকোন একটি ফোল্ডার তৈরী করেও করা যেতে পারেন। যেমনঃ /home/username/local_repo

২. এবার dpkg-scanpackages কমান্ড দিয়ে Packages.gz ফাইলটি উক্ত ফোল্ডারেই তৈরী করে নিন।

৩. Packages.gz তৈরী হয়ে যাওয়ার পর /etc/apt/sources.list ফাইলে /home/username/local_repo ফাইলটির পাথ যুক্ত করুন।

৪. সবার শেষে তালিকা আপডেট করার জন্য কমান্ড দিনঃ apt-get update

ব্যস আপনার লোকাল সফটওয়্যার লিস্ট যুক্ত হয়ে যাবে সিনাপ্টিকে।

আসুন আমরা উপরের বর্নিত পদ্ধতিতে একটি ছোট্ট রিপো তৈরি করে ফেলি।

কমান্ডঃ
mkdir /home/your_name/my_repo
cp /source_path/*.deb /home/your_name/my_repo
cd /home/your_name/my_repo
dpkg-scanpackages /home/your_name/my_repo /dev/null | gzip -9c > Packages.gz
echo "deb file:/home/your_name/my_repo ./" >> /etc/apt/sources.list
apt-get update


(যদি dpkg-scanpackages কমান্ড না দিতে পারেন তবে কয়েকটি প্যাকেজ ইনস্টল করে নিন

apt-get install dpkg-dev build-essential

কমান্ডের সাহায্যে)

এ ধরনের রিপো তৈরী করে তা বিতরন করা বেশী সুবিধাজনক। কারন সে ক্ষেত্রে যিনি এ রিপো ব্যবহার করবেন তাকে সব প্যাকেজ ইনস্টল করতে হবে না। শুধুমাত্র যেটি প্রয়োজন সেটিই ইনস্টল করতে পারবেন। অন্যান্য অফলাইন ইনস্টলার এর ক্ষেত্রে dpkg –i *.deb কমান্ডের সাহায্যে সব ধরনের সফটওয়্যার ইনস্টল করতে হয় যা অনেক সময় প্রয়োজন হয় না। এছাড়াও এ ধরনের ডেব প্যাকেজগুলি এক সাথে কপি করে একটি সিডির সাহায্যেও বিতরন করা যেতে পারে। সিডিতে পছন্দের প্যাকেজগুলি একসাথে রাখা এবং ব্যবহার করা সম্ভব। কিন্তু ডিস্ট্রোর নিজস্ব রিপো সিডি ব্যবহার করলে তা সম্ভব হয়ে ওঠে না।

ল্যান নেটওয়ার্কে লোকাল রিপোজিটরী তৈরী ও ব্যবহার করা

উপরে বর্নিত পদ্ধতিতে এবার আমরা ল্যান নেটওয়ার্কের একটি মেশিনকে সবার জন্য রিপোজিটরী হিসেবে কিভাবে ব্যবহার করবো তা দেখবো। কমান্ড আগের মতই তবে apache web server ইনস্টল করা থাকতে হবে মূল সার্ভারে।

কমান্ডঃ
cd /var/www
mkdir debian
mkdir /debian/binary
cp /source_path/*.deb /var/www/debian/binary
cd debian
dpkg-scanpackages binary /dev/null | gzip -9c > binary/Packages.gz

echo "deb http://192.168.0.1/debian/binary ./" >> /etc/apt/sources.list
apt-get update
শেষ দু’লাইন ল্যানের যেকোন ক্লায়েন্ট মেশিনে প্রয়োগ করতে হবে। তাহলে উক্ত মেশিনে আপনার রিপোজিটরী কাজ করতে পারবে।

উইন্ডোজ ভিত্তিক নেটওয়ার্কে লিনাক্স প্রবর্তন -(সাম্বা)

উইন্ডোজ নেটওয়ার্ক ভিত্তিক একটি অফিস/ কর্পোরেট পরিবেশে লিনাক্সের প্রচলন করতে গেলে প্রথমেই বেশ কিছু বাধার সম্মুখীন হতে হয়। এ ধরনের একটি নেটওয়ার্কে আগে থেকেই ব্যবহারকারীরা বেশ কিছু কাজ ক্লিক এন্ড গো এর মাধ্যমে করতে অভ্যস্ত হয়ে থাকেন যেমন- প্রিন্টার শেয়ারিং, ফোল্ডার শেয়ারিং ইত্যাদি। এ ধরনের কাজ লিনাক্সেও এখন গ্রাফিক্যালি করা যায়। তবে লিনাক্সে কোন সিস্টেমকে বাস্তবায়ন করতে হলে সিস্টেমটি সম্পর্কে একটি পরিপূর্ন ধারনা রাখা জরুরী। এজন্য গ্রাফিক্যাল স্টেপের পাশাপাশি সিস্টেমের মূল কনফিগারেশন ফাইলগুলিকে কিভাবে কাজে লাগানো যায় তা শিখতে হয়। আমরা এ টিউটোরিয়ালটিতে একটি লিনাক্স মেশিনকে কিভাবে উইন্ডোজ নেটওয়ার্কে সফলতার সাথে সেট আপ করে ব্যবহার উপযোগী করা যায় তা দেখব। আগেই বলে রাখা ভাল, এখানে ব্যবহৃত সকল কমান্ড ডেবিয়ান ও ডেবিয়ান বেজড ডিস্ট্রোর (যেমনঃ উবুন্তু, মেপিস, সিডাক্স, ড্রিম লিনাক্স, লিনাক্স মিন্ট) জন্য কাজ করবে।

লিনাক্সকে এ ধরনের নেটওয়ার্কের সাথে খাপ খাওয়াতে হলে সাম্বা (samba) নামে একটি প্যাকেজ গুরুত্বপূর্ন ভুমিকা পালন করে থাকে। এটির সাহায্যে লিনাক্স মেশিন উইন্ডোজ মেশিনের সাথে যোগাযোগ রক্ষা করা থেকে শুরু করে বিভিন্ন হার্ডওয়্যার ডিভাইস শেয়ারিং (যেমনঃ প্রিন্টার, স্ক্যানার, সিডি/ডিভিডি রম) এর কাজ করে থাকে। উইন্ডোজ এর নিজস্ব নেটওয়ার্কিং প্রটোকল হচ্ছে SMB। সাম্বা লিনাক্স পরিবেশে এ প্রটোকল বাস্তবায়ন করে থাকে তাই লিনাক্স মেশিন খুব সহজেই উইন্ডোজ মেশিনকে চিনতে পারে। এছাড়াও সাম্বার সাহায্যে লিনাক্স মেশিনকে উইন্ডোজ নেটওয়ার্কের WINS Server বা ডোমেইন কন্ট্রোলার হিসেবে রূপান্তরিত করা যায়। তবে আমরা এখানে একটি পিয়ার টু পিয়ার নেটওয়ার্কিং পরিবেশে লিনাক্সকে কিভাবে কাজে লাগানো যায় তা দেখব অর্থাৎ এখানে সব মেশিন একটি নির্দিষ্ট ওয়ার্কগ্রুপের অধীনে একে অন্যের সাথে যোগাযোগ রক্ষা করবে। এ ধরনের নেটওয়ার্কিং দিয়ে সাধারন অফিস বা বাসাবাড়িতে কাজ করা হয়ে থাকে।

আধুনিক কাস্টোমাইজড ডিস্ট্রোগুলিতে সাম্বা সাধারনত ইনস্টল করা থাকে। এটি ইনস্টল করা আছে কিনা তা জানার জন্য কমান্ড দিনঃ

apt-cache search samba

এ কমান্ডটি দিলে একটি লম্বা লিস্ট দেখতে পাবেন। তবে ঘাবড়ানোর কিছু নেই। apt যেহেতু ডিপেনডেন্সী নিজেই মেইনটেইন করে থাকে তাই সাম্বা ইনস্টলের জন্য শুধুমাত্র samba প্যাকেজটি ইনস্টল করাই যথেষ্ট। অন্যান্য প্যাকেজ যেমন samba-common নিজে থেকেই ইনস্টল হয়ে যাবে। তাহলে সাম্বা ইনস্টলের জন্য কমান্ডটি হবে নিম্নরূপঃ

apt-get install samba

সাম্বাকে ডেমন হিসেবে ব্যাকগ্রাউন্ডে রান করাতে চাইলে সেটির স্ক্রিপ্ট পাওয়া যাবে /etc/init.d/samba- এখানে। সাম্বার জন্য কনফিগারেশন ফাইল পাওয়া যাবে নিচের ডিরেক্টরীতেঃ

/etc/samba

সাম্বার প্রধান কনফিগারেশন ফাইলটি হচ্ছে smb.conf যেটি উপরোক্ত ডিরেক্টরী বা ফোল্ডারে থাকে। সাম্বা ফাইল-প্রিন্ট শেয়ারিং অথবা ডোমেইন কন্ট্রোলার যেটি হিসেবেই কাজ করুন না কেন তা এ ফাইলের বিভিন্ন অপশনের মাধ্যমেই নির্ধারিত হয়ে থাকে।

smb.conf টিতে মোট ছয়টি সেকশন আছে। প্রতিটি সেকশনের কাজই ভিন্ন ভিন্ন। আসুন এগুলি প্রথমে দেখে নেই।

1. [global] - এ সেকশনে অনেকগুলি সাব-সেকশন আছে যা বিভিন্ন নেটওয়ার্ক রিলেটেড কাজ যেমন- domain/workgroup নাম, WINS, প্রিন্ট শেয়ারিং সেটিংস, অথেনটিকেশন, লগিং এন্ড একাউন্টিং ইত্যাদি করা হয়ে থাকে।
2. [homes] - ব্যবহারকারীর নিজস্ব হোম ডিরেক্টরী/ফোল্ডার শেয়ারিং করে থাকে অন্য মেশিনের সাথে।
3. [netlogon] - এটি সাধারনতঃ কমেন্ট চিহ্নের সাহায্যে বন্ধ করা থাকে যা সাম্বা সার্ভারকে ডোমেইন কন্ট্রোলার হিসেবে সেটআপ করে থাকে।
4. [printers] - লোকাল প্রিন্টার সমূহকে অন্য মেশিনের সাথে শেয়ারিং করার জন্য
5. [print$] - to set up a share for Windows printer drivers
6. [cdrom] - commented out by default, to optionally share the server's CD-ROM drive

প্রত্যেকটি সেকশন কিছু স্টেটমেন্টের সমষ্টি যার ফরম্যাট নিম্নরূপঃ
option = value

একটি সাধারন ফাইল ও প্রিন্ট শেয়ারিং

এখন আমরা খুব সাধারন একটি ফাইল ও প্রিন্ট শেয়ারিং কনফিগারেশন করবো সাম্বা প্যাকেজের সাহায্যে। এ ধরনের শেয়ারিং করতে কোন পাসওয়ার্ড প্রয়োজন হবে না এবং একজন ব্যবহারকারী যেকোন মেশিনের ফাইল, ফোল্ডার ও প্রিন্টার যা শেয়ার করা আছে তা নির্বিঘ্নে ব্যবহার করতে পারবেন। হোম এবং স্মল অফিস নেটওয়ার্কিং এর ক্ষেত্রে এ ধরনের শেয়ারিং বেশী ব্যবহৃত হয়। এজন্য সাম্বার কনফিগারেশন ফাইলটি হবে নিম্নরূপঃ


[global]
panic action = /usr/share/samba/panic-action %d
workgroup = BANK
server string = %h server (Samba %v)
hosts allow = 192.168.0. 192.168.1. 192.168.2. 192.168.79. 127. 10.0.0. 10.1.1.
security = share
map to guest = Bad User

;For Printer Sharing
printing = cups
printcap name = cups
printer name = hp_zahid
use client driver = no
;*******************section Homes*****************
[Shared]
path = /home/zahid/Shared
guest ok = yes
read only = no

[Music]
path = /home/zahid/Music
guest ok = yes
read only = no

[homes]
path = /home/zahid
guest ok = yes
comment = Home Directories
read only = no
;*******************section printers*****************
[printers]
comment = All Printers
path = /tmp
printable = yes
guest ok = yes
create mask = 0777
browseable = No

[hp_zahid]
printable = yes
path = /tmp
guest ok = yes
comment = hp_zahid

;************************section other folders****************
[My Documents]
guest ok = yes
path = /mnt/hda5/My Documents/

[Soft]
guest ok = yes
path = /mnt/hda6/Soft
আসুন উপরোক্ত ফাইলটির বিভিন্ন অপশনগুলির কোনটি কি ধরনের কাজ করে থাকে তা আলোচনা করি। এ অপশগুলি ছাড়াও অনেক অপশন রয়েছে যা সবসময় কাজে লাগে না। এজন্য সাম্বার অফিসিয়াল ম্যানুয়াল দেখে নিতে পারেন।

প্রথমেই global সেকশন-

workgroup = BANK - আপনার কম্পিউটার যে নেটওয়ার্কের অধীনে আছে তার ওয়ার্কগ্রুপের (BANK) নাম।
hosts allow - এ অপশনে নেটওয়ার্কের যে সব মেশিন সাম্বা ব্যবহার করতে পারবে তাদের আই.পি নাম্বার এর তালিকা। কোন নির্দিষ্ট মেশিনকে অনুমতি দিতে চাইলে তার আই.পি নম্বর (১৯২.১৬৮.২.৩) দিতে হবে। আর যদি ওয়ার্কগ্রুপের সবাইকে পারমিশন দিতে চান তাহলে উক্ত ওয়ার্কগ্রুপের প্রথম তিনটি অক্টেট নম্বর দিতে হবে (১৯২.১৬৮.২.)। প্রতিটি এন্ট্রির পর একটি স্পেস দিতে হবে।

security = share এটি একটি গুরুত্বপূর্ন অপশন। এখানে share অপশন দিলে পাসওয়ার্ড ছাড়াই যে কেউ সাম্বা ব্যবহার করতে পারবে। আর যদি এখানে user দেয়া হয় তাহলে পাসওয়ার্ড ছাড়া সাম্বার বিভিন্ন শেয়ারিং ব্যবহার করা যাবে না। বর্তমান উদাহরনে যেহেতু আমরা একটি বেসিক নেটওয়ার্ক সেটআপ করতে যাচ্ছি যেখানে সবাই পাসওয়ার্ড ছাড়াই প্রিন্টার, ফোল্ডার শেয়ার করবেন তাই এটি আমরা share অপশন হিসেবে সেট করব।

map to guest = bad user সাম্বা যখন পাসওয়ার্ড প্রদান/ অথেনটিকেশন ছাড়া ব্যবহার করা হবে তখন গেস্ট হিসেবে কোন একাউন্ট সিস্টেম ব্যবহার করবে তা এখানে দিয়ে দেয়া হয়।

printing = cups এ অপশনটির সাহায্যে প্রিন্টার হিসেবে সাম্বা কি ব্যবহার করবে তা বলে দেয়া হয়। cups (common unix printing system)বেশীরভাগ লিনাক্সের ক্ষেত্রে প্রিন্টিং এর কাজে ব্যবহৃত হয়।cups ইনস্টল আছে কিনা তা দেখার জন্য ব্রাউজার খুলে এ্যাড্রেস বারে লিখুন- http://localhost:631। যদি সফলভাবে কাপস এর পেজ দেখা যায় তবে এখানে বিভিন্ন কাজ গ্রাফিক্যালি করতে পারবেন। এছাড়াও এখানে bsd ব্যবহার করা যায়।

printcap name = cups এ অপশনটিও প্রিন্টার এর জন্য ব্যবহৃত হয়।

printer name = hp_zahid এখানে যে প্রিন্টার এর নাম থাকবে তা শেয়ারিং এর সময় দেখা যাবে।এ অপশনটি Add Printer Wizard থেকে কোন প্রিন্টার সেটআপ করা হলে তবেই পাওয়া যাবে।

use client driver = no প্রিন্টার ইনস্টলের সময় কোন ড্রাইভার ব্যবহার করবে তা বলে দেয়া হয়। যদি no এর বদলে Yes থাকে তবে প্রিন্টার শেয়ারিং এর সময় প্রিন্টার মেশিন ছাড়া ও অন্য লোকেশন থেকে ড্রাইভার ইনস্টল করা যায়।

এবার আমরা [shared], [music], [home], [My Documents] & [Soft] সেকশনগুলি আলোচনা করবো। এগুলি একেকটি ফোল্ডার শেয়ার এর জন্য ব্যবহৃত হবে।

[home] - ব্রাকেটের মধ্যে যে নাম থাকবে শেয়ারিং এর সময় ফোল্ডার হিসেবে সে নামই দেখা যাবে।
path = /home/zahid - এখানে যে ফোল্ডার শেয়ারিং করবেন তার পাথ/লোকেশন দেয়া থাকে।
guest ok = yes - এ অপশনের সাহায্যে কোন গেস্ট একাউন্ট দিয়ে উক্ত সাম্বা সেট আপের ফাইল, ফোল্ডার ব্যবহার করা যাবে কিনা তা বলে দেয়া হয়।

এবার প্রিন্টার এর জন্য আরো দুটি সাব-সেকশন [printers] এবং [hp_zahid] নিয়ে আলোচনা করবো। প্রিন্টার এর জন্য কয়েকটি অপশন আমরা আগেই [global] সেকশনে দিয়ে এসেছি। বাকীগুলি এ দুটি সেকশনে দেয়া আছে।

Comment = All Printers - শেয়ারিং হিসেবে প্রিন্টার এর লিংকে এ নাম দেখা যাবে।
Path = /tmp - এখানে প্রিন্টার তার টেম্পরারি ফাইল হিসেবে যে ফোল্ডার ব্যবহার করবে তার লোকেশন দেয়া হয়।
Printable = yes - এটি যদি no দেয়া হয় তবে প্রিন্টার দেখা গেলেও তা দিয়ে প্রিন্ট করা যাবে না। তাই শেয়ারিং এর জন্য এটি অবশ্যই yes রাখতে হবে।

Guest ok = yes - এর কাজ আগের ফোল্ডারের বিবরনের মতই।

Browseable = no - এটি no দেয়া থাকলে এক্সপ্লোরারের সাহায্যে প্রিন্টার দেখা যাবে না। তবে শেয়ার করা যাবে।

[hp_zahid] - এ ধরনের আলাদা সেকশন থাকে যদি লোকাল কোন প্রিন্টারকে সুনির্দিষ্টভাবে শেয়ার করার প্রয়োজন হয়। এর কাজও আগের মতই। এ সেকশনটি সাধারনতঃ কোন প্রিন্টার লোকালি ইনস্টল করা হলে স্বয়ংক্রিয়ভাবে কনফিগারেশন ফাইলে যুক্ত হয়ে থাকে। যেমনঃ কেডিইতে Add Printer Wizard এর সাহায্যে কোন প্রিন্টার লিনাক্সে ইনস্টল করা হলে এরকম আলাদা একটি সেকশন যুক্ত হবে।

উপরে আমরা যে কনফিগারেশন ফাইলটি দেখলাম সেটি এডিট করার জন্য ভি-এডিটর বা এ জাতীয় কোন টেক্সট এডিটর ব্যবহার করুন। এর জন্য কমান্ড হবেঃ vi /etc/samba/smb.conf । যদি অন্য কোন এডিটর ব্যবহার করতে চান তবে vi এর স্থলে তার নাম দিন যেমনঃ gedit, kedit etc.। এভাবে একটি লিনাক্স মেশিন থেকে উইন্ডোজ মেশিনে ফোল্ডার ও প্রিন্টার শেয়ারিং করা যায়। উপরের কনফিগারেশন ফাইলটিতে বেশ কয়েকটি ফোল্ডার শেয়ারিং এর জন্য এন্ট্রি আছে। এখানে আপনার প্রয়োজনমত যে কয়টি ফোল্ডার শেয়ার করা দরকার শুধুমাত্র সে কয়টি ফোল্ডার শেয়ার করুন।
সবার শেষে কনফিগারেশন ফাইল এডিট করার পর সাম্বা রি-স্টার্ট করতে হবে যাতে পরিবর্তনসমূহ কার্যকরী হয়। এজন্য কমান্ড দিনঃ /etc/init.d/samba restart

উইন্ডোজ মেশিন থেকে লিনাক্স মেশিনের ফোল্ডার ও প্রিন্টার শেয়ারিং

সাম্বা ইনস্টল ও কনফিগারেশন করার পর আমরা এখন উইন্ডোজ মেশিন থেকে কিভাবে লিনাক্স মেশিনকে শেয়ার করা যায় তা দেখব।এটি করার পর লিনাক্স মেশিন থেকে কিভাবে উইন্ডোজ মেশিনের রিসোর্স শেয়ার করা যায় তা দেখব।
প্রথমে উইন্ডোজ মেশিন থেকে লিনাক্স মেশিনে প্রবেশ করার জন্য উইন্ডোজের স্টার্ট মেনু থেকে রান মেনুতে ক্লিক করুন। তারপর লিনাক্স মেশিনের আইপি (যেমনঃ //১৯২.১৬৮.২.৩) টাইপ করুন অথবা //hostname। তারপর লিনাক্সের প্রিন্টারটিতে রাইট মাউস ক্লিক করে Connect ক্লিক করুন। ড্রাইভার ইনস্টলের জন্য ডায়ালগ বক্স অনুসরন করুন।
শেয়ারড ফোল্ডারগুলি হোস্ট নেম/মেশিনের আইপি প্রবেশ করালেই উইন্ডোজ এক্সপ্লোরারে দেখা যাবে।

লিনাক্স মেশিন থেকে উইন্ডোজ মেশিনের ফোল্ডার ও প্রিন্টার শেয়ারিং

লিনাক্স মেশিন থেকে কোন উইন্ডোজ মেশিনে শেয়ার করা ফোল্ডার দেখার জন্য ডিফল্ট ফাইল ব্রাউজার যেমনঃ konqueror, nautilus খুলুন। তারপর এ্যাড্রেস বারে লিখুনঃ smb://hostname যেখানে হোস্টনেম এর জায়গায় মেশিনের আইপি নম্বর (192.168.2.3)অথবা হোস্টনেম (mepis1, pc1 etc)ইত্যাদি দিতে হবে। তারপর এন্টার কি প্রেস করলেই ফোল্ডার সমূহ দেখতে পাবেন।

লিনাক্স মেশিন থেকে উইন্ডোজ মেশিনে ইনস্টলকৃত প্রিন্টার শেয়ারিং এর জন্য লিনাক্স এর নিজস্ব Add Printer Wizard ব্যবহার করুন।

ছবি

যেমন উপরের চিত্রে কেডিই ইন্টারফেসের Add Printer Wizard ডায়ালগ বক্স দেখা যাচ্ছে। এখানে SMB shared printer (Windows) সিলেক্ট করে Next বাটনে ক্লিক করি। তারপর ইউজার আইডেন্টিফিকেশন বক্স আসলে Anonymous সিলেক্ট করি। তারপর নেক্সট বাটনে ক্লিক করলে নিচের চিত্রের মত সবকিছু বসিয়ে আবার নেক্সট ক্লিক করি।
ছবি

তবে স্ক্যান বাটনে ক্লিক করেও লোকাল প্রিন্টার খুজে বের করা যায় উইন্ডোজ মেশিনের মত। কিন্তু মাঝে মাঝে সমস্যা হয় ডিটেক্ট করতে এজন্য উপরের মত নিজ হাতে কনফিগার করে দিলেই ভাল। পরের ডায়ালগ বক্সে প্রিন্টার মডেল (Manufacturer, Model) নির্বাচন করে আবার নেক্সট বাটনে ক্লিক করি। ড্রাইভার সিলেকশন বক্সে রিকমেন্ডেড ড্রাইভার সিলেক্ট করে পরবর্তী ধাপে যাই। পরবর্তীতে একইভাবে ব্যানার, কোটা, ইউজার একসেস কন্ট্রোল ইত্যাদি সিলেক্ট করে কাজ শেষ করি। সর্বশেষ ধাপে প্রিন্টার এর একটি নাম যেমন- hp_bank ইত্যাদি দিয়ে দেই। তারপর Finish বাটনে ক্লিক করে কাজ শেষ করি।

ট্রাবলশুটিং

সাম্বার সাহায্যে লিনাক্স ও উইন্ডোজ মেশিনের মধ্যে নেটওয়ার্কিং করার সময় বেশ কিছু সমস্যার সম্মুখীন হতে হয়। সেগুলি কিভাবে সমাধান করতে হয় তা এখন দেখব।
১. প্রথমেই দেখুন /etc/samba/smb.conf ফাইলের hosts allow অপশনে আপনার মেশিনের নেটওয়ার্ক/ আইপিকে অনুমতি দেয়া আছে কিনা? দেয়া না থাকলে এখানে মেশিনের আইপি যেমনঃ ১৯২.১৬৮.২.৭৫ অথবা সম্পূর্ন নেটওয়ার্ক (১৯২.১৬৮.২.) কে যুক্ত করুন।

২. অনেক সময় ফায়ারওয়্যাল এনাবল করা থাকলে সাম্বা কাজ করতে পারে না। এজন্য লিনাক্স মেশিনের ফায়ারওয়্যাল (গার্ডডগ, ফায়ারস্টার্টার) বন্ধ করে নিন। প্রয়োজনে উইন্ডোজ মেশিনের ফায়ারওয়্যাল ও বন্ধ করে নিন। ফায়ারওয়্যাল চালু রাখতে চাইলে সাম্বার জন্য ১৩৭, ১৩৮, ১৩৯ নম্বর পোর্ট খুলে রাখুন। এজন্য কোন গ্র্যাফিক্যাল টুলস যেমনঃ ওয়েবমিন, গার্ডডগ, ফায়ারস্টার্টার ইত্যাদি ব্যবহার করতে পারেন।

৩. ifconfig -a কমান্ড দিয়ে দেখুন সাম্বার ব্রডকাস্ট এ্যাড্রেস এবং অন্য ক্লায়েন্টদের ব্রডকাস্ট এ্যাড্রেস একই আছে কিনা?

৪. smbclient -L localhost কমান্ড দিয়ে দেখুন সাম্বা সার্ভিস চালু আছে কিনা?

৫. testparm – সাম্বা রিস্টার্টের আগে এ কমান্ড দিয়ে দেখুন সাম্বার কনফিগারেশন ফাইল ঠিক আছে কিনা?

৬. smbstatus – কমান্ড দিয়ে দেখুন সাম্বার স্ট্যাটাস

৭. http://localhost:631 পাথ ব্রাউজারে লিখে এন্টার দিন। তারপর কাপসের জন্য পারমিশন দিয়ে দিন যাতে অন্য মেশিন থেকেও কাপসকে সাম্বার সাহায্যে শেয়ার করা যায়।

৮. যেকোন প্রিন্টার সেকশনের জন্য /etc/samba/smb.conf ফাইলে দেখুন path = /tmp অথবা path = /var/spool/samba এর মত কোন ভ্যালিড পাথ আছে কিনা?

৯. যদি আপনার মেশিনে দুটি নেটওয়ার্ক কার্ড থাকে তাহলে [global] সেকশনে interfaces = 127.0.0.1, 192.168.2.75/24 এবং bind interfaces = yes লাইন দুটি যোগ করে নিন।

১০. প্রিন্টার শেয়ারিং এ সমস্যা হলে [global] সেকশনে দেখুন printing = cups এবং printcap = cups লাইন দুটি আছে কিনা? যদি না থাকে তাহলে যোগ করে নিন।