পিএইচপি লার্নিং সিরিজ-২

পিএইচপি - বেসিক আলোচনা
পূর্বের আলোচনায় আমরা পিএইচপি এর সংক্ষিপ্ত ইতিহাস এবং ইনস্টলেশন ও কনফিগারেশন দেখেছি। এখন আমরা পিএইচপিতে প্রোগ্রামিং শুরু করতে যাচ্ছি।

ডিলিমিটার বা পিএইচপি সীমানা নির্ধারন

পিএইচপি-র বড় সুবিধা হল আপনি যেকোন এইচটিএমএল পেজের ভিতরেই পিএইচপি কোড লিখতে পারেন। কোডগুলির সাহায্যে কাজ সম্পাদনের জন্য পেজটিকে পিএইচপি ইঞ্জিনের অভ্যন্তরে পাঠাতে হবে পঠন বা ইন্টারপ্রেটেশন করতে। প্রতিটি লাইনকে পিএইচপি লাইন হিসেবে বিবেচনা করা ইন্টারপ্রেটারের জন্য শক্তি অপচয় তাই পিএইচপি ইঞ্জিনের জন্য কোন একটি উপায়ে নির্ধারন করা প্রয়োজন একটি পেজের কোন অংশে পিএইচপি কোড রয়েছে। এটি করার জন্য পিএইচপি কোডের জন্য একটি সীমানা নির্ধারন করে দেয়া হয়।

সীমানা নির্ধারনের/ডিলিমিটের পদ্ধতিগুলি আমরা এখন আলোচনা করবো-


<?php


Welcome!

print "Every age has a language of its own ";
?>
PHP First Program

উপরের অংশটুকু যেকোন টেক্সট এডিটরে লিখে test.php নামে সেভ করুন আপনার ওয়েব সার্ভারের ফোল্ডারে। লিনাক্সে করুন /var/www/your_folder/

এবং উইন্ডোজে G:\xampplite\htdocs\your_folder\ পাথে।

এবার ব্রাউজারের এড্রেসবারে লিখুন- http://localhost/your_folder/test.php

উপরের কোডে অংশে পিইএইচপি কোড লেখা হয়েছে। এ অংশটুকুই কেবল পিএইচপি ইঞ্জিন ইন্টারপ্রেট করবে।

বাকী পদ্ধতিগুলি হচ্ছে-

print "This is another PHP example.";
?>





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

উপরোক্ত পদ্ধতিগুলির মধ্যে প্রথম নিয়মটি অনুসরন করা ভাল।

আপনি এভাবে একটি পেজে যতখুশি ততবার পিএইচপি ডিলিমিটার /সীমানা নির্ধারক ব্যবহার করতে পারেন।



<?php echo "Welcome to my site!";?>


$date = "May 11, 2011";
?>

Today's date is




কমেন্টস বা মন্তব্য

আপনার নিজের সুবিধার জন্যই হোক বা ভবিষ্যতে আপনার লেখা কোড মেইনটেইনকারী প্রোগ্রামার এর জন্যই হোক, আপনার কোডের অভ্যন্তরে মন্তব্য বা কমেন্টস অর্ন্তভুক্ত করার প্রয়োজনীয়তা অপরিহার্য। পিএইচপিতে বেশ কয়েক ধরনের কমেন্টস প্রদানের সিনট্যাক্স সাপোর্ট রয়েছে। এখন আমরা সেগুলি নিয়ে আলোচনা করবো।

//Title: This is Hello Program
//Author: Your name
print “Hello World!”;
?>

উপরে // দিয়ে শুরু করা লাইন দুটি হচ্ছে কমেন্টস। এটিকে সিঙ্গেল লাইন কমেন্টস বলা হয়। // চিহ্ন দিয়ে শুরু করা লাইনগুলি পিএইচপি ইঞ্জিন মন্তব্য হিসেবে ধরে নেবে ও কোন ফলাফল দেবে না। এভাবে আমরা কোডের ভিতর কোন কিছু মন্তব্য হিসেবে লিখে রাখতে পারি যাতে তা রেফারেন্স হিসেবে ভবিষ্যতে ব্যবহার করা যায়। মনে রাখবেন কমেন্টস প্রোগ্রামার এর সুবিধার জন্য লেখা হয়, এটি মূল প্রোগ্রামের জন্য কোন ইনস্ট্রাকশন নয়।

#Title: This is Hello Program
#Author: Your name
print “Hello World!”;
?>

উপরে শেল স্টাইলের/সি++ সিনট্যাক্স দেখানো হয়েছে। # চিহ্নের মাধ্যমে ও কমেন্টস লেখা যায় পিএইচপিতে ।

/*Title: This is Hello Program
Author: Your name
Date: 11 March, 2011
*/
print “Hello World!”;
?>

একাধিক লাইন ব্যাপী কমেন্টস লেখার জন্য সি-স্টাইলের মাল্টিপল লাইন সিন্ট্যাক্স ব্যবহার করা হয়। এতে সময় ও শ্রম উভয়ই বাঁচে বড়সড় কমেন্টস লেখার সময়। যেমন উপরে /* ও */ অংশের মধ্যে যে অংশ লেখা হবে তার সবটাই কমেন্টস বা মন্তব্য হিসেবে বিবেচিত হবে।

আউটপুট বা ফলাফল প্রদর্শন

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

print()


boolean print (argument)

print স্টেটমেন্ট এর সাহায্যে ব্যবহারকারীকে তথ্য প্রদর্শন করা যায় এবং এটি সরাসরি স্ট্রিং অথবা ভেরিয়েবল উভয়ই প্রদর্শন করতে সক্ষম। নিচে আমরা এর কয়েকটি ব্যবহার দেখব।

print(“ I love computer programming.
”);
?>

$hobby = “computer programming”;
print(“
I love computer $hobby
”);
?>

print(“ I love
computer programming.
”);
?>

$hobby = “computer programming”;
print(“
I love “ . $hobby . “
”);
?>

উপরের প্রত্যেকটি প্রোগ্রামে একই আউটপুট বা ফলাফল পাওয়া যাবে। এভাবে আপনি নিজে নিজে ও বিভিন্ন উদাহরন তৈরী করে অনুশীলন করতে পারেন।

সর্বশেষ উদাহরনটি একটু জটিল মনে হতে পারে। এখানে আসলে তিনটি ভিন্ন ভিন্ন স্ট্রিংকে (বাক্য/লেখাকে) পিরিয়ড বা ডট অপারেটর দিয়ে যুক্ত করা হয়েছে।

echo()

void echo (string argument1 [, ....string argumentN])

দুটি পার্থক্য ছাড়া echo স্টেটমেন্ট উপরের print এর মতই কাজ করে থাকে। প্রথমতঃ এটি কোন জটিল কাজে ব্যবহার করা যায় না কারন এটি void রিটার্ন করে অন্যদিকে print() একটি বুলিয়ান ভ্যালু রিটার্ন করে থাকে। দ্বিতীয়তঃ echo() একাধিক স্ট্রিংকে প্রদর্শন করতে সক্ষম। অবশ্য print() এর ক্ষেত্রে ডট বা পিরিয়ড অপারেটর ব্যবহার করে একই কাজ উপরে আমরা করে দেখিয়েছি তবে echo() একটু বেশী সুবিধা দেয়। নিচে একটি উদাহরন দেখিঃ

$year = “1971”;
$country = “Bangladesh”;
echo $country, “ got freedom in “, $year;
?>

printf()

boolean printf (string format [, mixed args])

printf() ফাংশান print() এর মতই কাজ করে থাকে তবে একটি পার্থক্য হচ্ছে args এর জায়গাতে যে argument সমূহ ব্যবহার করবেন তাকে format অংশের ফরম্যাট অনুযায়ী ফরম্যাট করে প্রদর্শন করবে। format প্যারামিটারের সাহায্যে এলাইনমেন্ট, পজিশন, নাম্বার ফরম্যাটিং ইত্যাদি কাজ করা যায়। যেমনঃ argument সমূহকে %b এর সাহায্যে বাইনারী নাম্বার, %c এর সাহায্যে আসকি মান, %d এর সাহায্যে ডেসিম্যাল নম্বর, %f এর সাহায্যে ফ্লোটিং পয়েন্ট নম্বর হিসেবে দেখানো যায়।

এবার কিছু সহজ উদাহরন দেখি।

printf("$%01.2f", 43.2); // $43.20
printf("%d nokia %s", 100, "mobible"); // 100 nokia mobiles
printf("%15s", "Some text"); // Some text

sprintf()

string sprintf (string format [, mixed arguments])

sprintf() ফাংশানটি printf() ফাংশানের মতই কাজ করে তবে ফলাফলটি স্ট্যান্ডার্ড আউটপুট/মনিটরে প্রদর্শিত না হয়ে একটি স্ট্রিং ভেরিয়েবলে নিয়োজিত করে।

$cost = sprintf("$%01.2f", 43.2); // $cost = $43.20

আজ এ পর্যন্তই পরবর্তীতে আমরা ডেটা টাইপ নিয়ে আলোচনা করবো।

পিএইচপি লার্নিং সিরিজ-১

প্রোগ্রামিং এর উপর লেখার ইচ্ছা ছিল অনেক আগে থেকেই। তবে ব্যস্ত থাকার কারনে সময় করে উঠতে পারিনি এতদিন। তাছাড়া জটিল বিষয় নিয়ে লিখতে হলে বিষয়টি নিয়ে একটু চিন্তা ভাবনার প্রয়োজন ও বেশী হয়।

এ সিরিজটিতে চেষ্টা করবো নতুনদের জন্য ফিডব্যাক হিসেবে তাদের বিভিন্ন প্রশ্নের উত্তর দিতে। এজন্য কমেন্ট করতে পারেন এ টপিকে।

তাহলে আসুন শুরু করি।

পিএইচপি সম্পর্কে প্রাথমিক ধারনা

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

এরপর লারডর্ফ উৎসাহিত হয়ে ল্যাংগুয়েজটি দ্রুত উন্নয়ন করতে থাকেন এবং ১৯৯৭ এর নভেম্বরে পিএইচপি ২.০ সংস্করন প্রকাশ করেন। পিএইচপি এর জনপ্রিয়তা বৃদ্ধির ফলে এ ভার্সনটিতে পৃথিবীর বিভিন্ন প্রান্তের প্রোগ্রামারগন প্রচুর পরিমানে উন্নয়ন ও উৎকর্ষতা সাধন করতে থাকেন।

তাই এ নতুন রিলিজটি অত্যন্ত জনপ্রিয়তা পায় এবং একটি কোর ডেভেলপার টিম লারডর্ফ এর সাথে যোগদান করে পিএইচপি এর উন্নয়ন কাজ শুরু করে। তারা এইচটিএমএল এর পাশাপাশি সরাসরি পিএইচপি কোড অন্তর্ভুক্ত করার মূল কনসেপ্টটি অক্ষুন্ন রাখেন এবং নতুন করে পিএইচপি ইঞ্জিনটি লেখা হয় যার ফলে পিএইচপি ৩.০ সংস্করন জন্মলাভ করে। জুন, ১৯৯৮ এ ভার্সন ৩.০ প্রকাশের সময় সারাবিশ্বে প্রায় ৫০,০০০ এর ও বেশী ব্যবহারকারী তাদের ওয়েব পেজে পিএইচপি ব্যবহার করছিলেন।

এখানে উল্লেখ্য যে, ১৯৯৭ সালেই পিএইচপি (পারসোনাল হোম পেজ) নামের ভিন্নরূপ বা পিএইচপি হাইপারটেক্সট প্রিপ্রসের (পিএইচপি) নামটি চালু হতে শুরু করে।

পরবর্তী দু’বছরে এর উন্নয়ন অবিশ্বাস্য গতিতে চলতে থাকে, শত শত নতুন ফাংশন যোগ হতে থাকে এবং ব্যবহারকারীর সংখ্যা খুব দ্রুত বাড়তে থাকে। ১৯৯৯ সালের শুরুতে নেটক্রাফট থেকে প্রকাশিত (http://www.netcraft.com/) এক পরিসংখ্যান রিপোর্ট থেকে এর ব্যবহারকারী ১০ লক্ষের ও বেশী বলে জানা যায় যা একে পৃথিবীর অন্যতম জনপ্রিয় স্ক্রিপ্টিং ল্যাংগুয়েজের মর্যাদা এনে দেয়। এটির জনপ্রিয়তা ডেভেলপারদের প্রত্যাশাকে ও ছাড়িয়ে যায় এবং খুব দ্রুতই স্পষ্ট হয়ে ওঠে যে ব্যবহারকারীরা পিএইচপিকে অনেক বড় বড় এন্টারপ্রাইজ লেভেল এপ্লিকেশনে ব্যবহার করতে চান যা শুরুর দিকে প্রত্যাশা করা হয়নি। দুজন কোর ডেভেলপার- জিভ সুরাস্কি এবং এন্ডি গাটম্যানস - নতুনভাবে পিএইচপি উন্নয়ন কাজ পরিচালনার সিদ্ধান্ত নেন, নতুন পিএইচপি পার্সার লেখা হয়, যা জেন্ড স্ক্রিপ্টিং ইঞ্জিন নামে অভিহিত করা হয়। এসব কাজের সম্মিলিত ফলাফল ২২মে, ২০০০ সালে পিএইচপি ৪ রিলিজে প্রতিফলিত হয়।

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

ইসরায়েল ভিত্তিক জেন্ড টেকনোলজি লিমিটেড জেন্ড ইঞ্জিন উন্নয়নের সাথে সাথে পিএইচ প্রোগ্রাম উন্নয়ন ও বিতরনের জন্য আরো কিছু টুলস বিতরন শুরু করে। এগুলির মধ্যে রয়েছে জেন্ড স্টুডিও, জেন্ড এনকোডার, জেন্ড অপটিমাইজার ইত্যাদি।

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


পিএইচপি, মাইএসকিউএল এবং এপাচি ওয়েব সার্ভার ইনস্টল ও কনফিগার করা


এবার আসুন পিএইচপিতে কাজ করার জন্য আপনার কম্পিউটারকে কিভাবে উপযোগী করবেন তা দেখি। পিএইচপি একটি স্ক্রিপ্টিং ল্যাঙ্গুয়েজ তাই এতে কোন কম্পাইলারের প্রয়োজন নেই। উইন্ডোজে xampp বা xampplite এর মত কোন বান্ডেলড প্যাকেজ ডাউনলোড ও ইনস্টল করে নিন ওয়েব থেকে। এগুলিতে পিএইচপি, মাইএসকিউএল, এপাচি সমন্বিতভাবে দেয়া থাকে। আলাদাভাবে কোন কিছু ইনস্টলের দরকার হয় না। এগুলি ইনস্টলের পর চালু করুন এর ইনস্টলেশন ফোল্ডারে অবস্থিত xampp_start আইকনে ক্লিক করে। তারপর এপাচি এবং মাইএসকিউএল চালু করুন এর কন্ট্রোল প্যানেল থেকে।

লিনাক্সে ব্যাপারটি আরো সহজ। ডেবিয়ান জিএনইউ/লিনাক্স, উবুন্টু, লিনাক্স মিন্ট ইত্যাদি ডিস্ট্রিবিউশনগুলিতে মাত্র কয়েকটি কমান্ডের মাধ্যমে এপাচি, পিএইচপি, মাইএসকিউএল ইনস্টল করা যায়। এজন্য টার্মিনালে লগইন করুন রুট ইউজার হিসেবে তারপর কমান্ড দিনঃ

#aptitude install apache2

#aptitude install apache2-mpm-prefork

#aptitude install mysql-server5.0 mysql-client5.0 php5-mysql

#aptitude install phpmyadmin

মাইএসকিউএল এবং পিএইচপি মাই এডমিন ইনস্টল করে রাখা ভাল। ভবিষ্যতে কাজে লাগবে।

ইনস্টল শেষ হলে ফায়ারফক্স বা ব্রাউজার চালু করুন এবং এড্রেসবারে লিখুন

http://localhost

সঠিকভাবে ইনস্টল হলে সাকসেস মেসেজ প্রদর্শন করবে।

মাইএসকিউএলকে সঠিকভাবে কনফিগার করার জন্য php.ini ফাইলটি টেক্সট এডিটরে (যেমন ভিম/জি-এডিট) খুলুন এবং

;extension=php_msql.so

উপরের লাইনটি খুজে বের করে ; চিহ্নটি মুছে দিন।

মাইএসকিউএলে গ্রাফিক্যালি কাজ করার জন্য ব্রাউজারের এড্রেসবারে লিখুন

http://localhost/phpmyadmin

অন্যান্য ডিস্ট্রিবিউশনের জন্য ম্যানুয়াল দেখুন।

পিএইচপি কমান্ড প্র্যাকটিসের জন্য জিনি (geany) এডিটর ইনস্টল করে নিন লিনাক্স মেশিনে। পরবর্তীতে আরো উন্নত আইডিই যেমন নেটবিনস, কে-ডেভেলপ ইত্যাদি ব্যবহার করতে পারেন। তবে প্রথম প্রথম বেসিক টেক্সট এডিটর যেমন কেরাইট, জিএডিট, জিনি ইত্যাদি ব্যবহার করাই ভাল।

উইন্ডোজ টেক্সট প্যাড, নোট প্যাড ইত্যাদি এডিটর ব্যবহার করতে পারেন।

মেশিন কনফিগারের পর এবার আমরা পিএইচপি বেসিক শেখা শুরু করবো যেকোন প্রোগ্রামিং ল্যাংগুয়েজ শেখার মতই।

আজ এ পর্যন্তই। সবাই ভাল থাকুন। সুস্থ থাকুন।

ডেবিয়ান লিনাক্স ডাউনলোডে ব্যবহার করুন jigdo


প্রযুক্তি প্রেমীদের অনেকদিনের প্রতীক্ষার অবসান ঘটিয়ে গত ০৬ ফেব্রুয়ারি, ২০১১-তে ডেবিয়ান এর নতুন ভার্সন ৬.০ রিলিজ হল। সারা বিশ্বজুড়ে প্রায় ১০০০ ডেবিয়ান ডেভেলপার এর হাতে দু’বছরের ও বেশী সময় ধরে এর উন্নয়ন কাজ চলেছে । ডেবিয়ান লিনাক্স উবুন্টু, মিন্ট, মেপিস, ড্রিম লিনাক্সের মত জনপ্রিয় কয়েকটি ডিস্ট্রিবিউশনের বেজ হিসেবে কাজ করে থাকে। এদের মধ্যে কেউ কেউ (মেপিস) ডেবিয়ান এর প্যাকেজ রিপোজিটরী (সিনাপ্টিক যেখান থেকে প্যাকেজ ডাউনলোড করে থাকে) সরাসরি ব্যবহার করে থাকে আবার কেউ কেউ (উবুন্টু) নিজস্ব রিপোজিটরী ব্যবহার করে থাকে।

তবে আমাদের দেশের মত সীমিত গতির ইন্টারনেট দিয়ে ডেবিয়ান লিনাক্সের সিডি/ডিভিডি ডাউনলোড করা বেশ কষ্টসাধ্য একটি ব্যাপার । ডেবিয়ান লিনাক্স একটি বৃহৎ ডিস্ট্রিবিউশন। প্রায় ২৯,০০০ এর ও বেশী প্যাকেজ নিয়ে ডেবিয়ান রিলিজ হয়ে থাকে। ডেবিয়ান ডাউনলোড করার বেশ কয়েকটি উপায় রয়েছে যেমন-

১. সরাসরি এফটিপি সাইট থেকে সিডি/ডিভিডি/ব্লুরে আইএসও ফাইল ডাউনলোড করা

২. বিটটরেন্ট প্রটোকল ব্যবহার করে সিডি/ডিভিডি/ব্লুরে আইএসও ফাইল ডাউনলোড করা

৩. jigdo ব্যবহার করে ডাউনলোড করা

এফটিপি/বিটটরেন্ট ব্যবহার করে ডাউনলোডের জন্য অবশ্যই Free Download Manager/Kget/Uget এর মত ডাউনলোড ম্যানেজার ব্যবহার করুন। এগুলি কোন বড় ফাইলকে ডাউনলোড করার জন্য পজ/রিজিউম সাপোর্ট দিয়ে থাকে ফলে ডাউনলোড হওয়ার মাঝে লাইন কেটে গেলেও আবার রিজিউম করতে পারবেন। এভাবে ডাউনলোডের জন্য আপনাকে ডেবিয়ান এর নিজস্ব সাইট http://www.debian.org/distrib/ এ যেতে হবে। তারপর HTTP/FTP, লিংকে ক্লিক করে পরবর্তী লিংকে গিয়ে Official CD/DVD images of the stable release এ ক্লিক করুন। এবার সিডি/ডিভিডি উভয় অপশনে নীচের মত লিংক দেখতে পাবেন-

• amd64
• armel
• kfreebsd-i386
• kfreebsd-amd64
• i386
• ia64
• mips
• mipsel
• powerpc
• sparc
• s390
• source
• multi-arch
এগুলি হল আপনার প্রসেসর আর্কিটেকচার এর নির্দেশক। আমরা যদি সেলেরন/পেন্টিয়াম-৪ ইত্যাদি সিংগেল কোরের প্রসেসর ব্যবহার করি তাহলে আমাদেরকে i386 লিংকে ক্লিক করে ডাউনলোড করতে হবে। আর যদি ডুয়াল কোর/কোর-টু-ডু/কোর-আই-৫/কোর-আই-সেভেন ইত্যাদি ব্যবহার করেন তবে amd64 লিংকে ক্লিক করতে হবে। অবাক হচ্ছেন কি? এ.এম.ডি কেন? আমার প্রসেসর তো ইন্টেলের। তাহলে শুনুন কাহিনী- বাজারে প্রথম ডুয়াল কোরের প্রসেসরটি আনার কৃতিত্ব হচ্ছে এ.এম.ডি (এডভান্স মাইক্রো ডিভাইস) কোম্পানির। এজন্য লিনাক্স কার্নেল ডেভেলপারগন এএমডির নামেই মাল্টিকোর প্রসেসর এর কার্নেলকে চিহ্নিত করেন। একইভাবে লিনাক্স বাদে আরেকটি কার্নেল এর সাপোর্ট ডেবিয়ান দেয়া শুরু করেছে যেটি হচ্ছে - ফ্রিবিএসডি অপারেটিং সিস্টেম এর কার্নেল(kfreebsd)। এটি ও এখন i386 এবং amd64 দুটি প্রসেসর আর্কিটেকচারের জন্য পাওয়া যাচ্ছে। বাকি আর্কিটেকচার গুলি অন্য ধরনের প্রসেসর এর জন্য যেগুলি আমাদের দেশে তেমন প্রচলিত নয়। যেমন- ম্যাক এর জন্য powerpc, সান প্রসেসর এর জন্য sparc ইত্যাদি।

তবে একটি কথা বলে রাখা ভাল, আপনার ডুয়াল বা মাল্টিকোর প্রসেসরে i386 বা সিংগেল কোরের ডেবিয়ান লিনাক্স ভালভাবেই চলবে। এক্ষেত্রে ডুয়াল/মাল্টিকোরের স্পিডটি হয়তো পাবেন না। তবে নতুনদের জন্য i386 দিয়ে শুরু করাই ভাল।

এখন চিন্তা করে দেখুন- ১২ টি আর্কিটেকচারের জন্য আলাদা ভাবে ২৯০০০ প্যাকেজ কম্পাইল করে তাদের সিডি/ডিভিডি ফরম্যাটে আই.এস.ও তৈরী করা এবং আপলোড করা - কি বিশাল ব্যাপার তাই না? এজন্যই ডেবিয়ানকে ইউনিভার্স্যাল ও.এস বলা হয়ে থাকে। হাতের মোবাইল ডিভাইসটি থেকে শুরু করে পামটপ, ল্যাপটপ, ট্যাবলেট, মেইনফ্রেম, নেটবুক, সুপার কম্পিউটার কোথায় চলে না ডেবিয়ান। নাসার মত প্রতিষ্ঠানও ডেবিয়ান ব্যবহার করে থাকে।

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

If you can't apt-get something, it isn't useful or doesn't exist

খুব মজা পেয়েছিলাম সিগনেচারটি দেখে। আসলেই ডেবিয়ান রিপোতে যা পাওয়া যায় না, তা ইনস্টল করার কথা মাথায়ই আসেনি কখনো। অবশ্য সবার বেলায় যে এটি প্রযোজ্য হবে এমনটি নয়।

অনেক কথা বলে ফেললাম। এবার কাজের কথায় আসি।

উপরের লিংক থেকে আপনার কাঙ্খিত আর্কিটেকচার যেমন - i386 এ ক্লিক করুন। তারপর সিডি হলে দেখবেন ৫২ টি সিডির লিংক দেয়া আছে এবং ডিভিডি তে ক্লিক করলে দেখবেন ৮টি ডিভিডির লিংক। এত সিডি/ডিভিডি দেখে ঘাবড়ানোর কিছু নেই। আপনার জন্য প্রথম সিডি/ডিভিডি যথেষ্ট। এটি থেকেই পুরো ও.এস ইনস্টল করতে পারবেন। বাকি প্যাকেজগুলি প্রয়োজন মত নেটে কানেকশন নিয়ে নামিয়ে নিলেই হল। প্রথম সিডিকে উবুন্টু এর সিডি মনে করতে পারেন। উবুন্টু ইনস্টলের পর যেমন বাকী প্যাকেজ নেট থেকে নামিয়ে নিতে হয় সফটওয়্যার সেন্টার থেকে তেমনই ডেবিয়ানে সিনাপ্টিক প্যাকেজ ম্যানেজার দিয়ে নামাতে হয় অতিরিক্ত প্রয়োজনীয় প্যাকেজ যেমন- এপাচি, মাইএসকিউএল, ভিএলসি প্লেয়ার ইত্যাদি।

সরাসরি সিডি/ডিভিডি নামানোর আলোচনা এখানেই আপাতত শেষ। বিটটরেন্ট প্রটোকল দিয়ে নামানোর পদ্ধতিও একটু ভিন্ন হলেও পদ্ধতি উপরের মতই। বিটটরেন্ট এর ফাইলটি টরেন্ট ক্লায়েন্টকে (ktorrent, utorrent) দেখিয়ে দিলেই নামাতে শুরু করবে।

এজন্য http://www.debian.org/distrib/ লিংকে গিয়ে BitTorrent, এ ক্লিক করে আগের মতই কাজ করুন।

এবার শেষ পদ্ধতি অর্থাৎ Jigdo নিয়ে আলোচনা করতে চাই। যেটি এ প্রবন্ধের মূল উদ্দেশ্য। এজন্য আগে কিছু কথা আলোচনা করে নিই।

উপরের দুটি পদ্ধতিতে আই.এস.ও নামানোর পর ডেবিয়ান যখন ছোট ছোট প্যাচ দিয়ে নতুন ভার্সনের আই.এস.ও ছাড়ে তখন উক্ত ভার্সন পাওয়ার জন্য আপনাকে পুরো আই.এস.ও টি ডাউনলোড করতে হয়। যেমন এখন ডেবিয়ানের ভার্সন নম্বর হচ্ছে ৬.০। যদি দু’সপ্তাহ পরে ৬.০.১ ছাড়া হয় এবং আপনার ডিভিডির ডাউনলোড শেষ না হলে মাথায় হাত। আবার প্রথম থেকে ডাউনলোড দিতে হবে।

এছাড়াও ধরুন আপনি ডিভিডি নামিয়েছেন এখন তা থেকে একটি সিডি তৈরী করতে চান আপনার বন্ধুর জন্য। যেহেতু তার ডিভিডি রম নেই। এখানেও আবার পুরো আই.এস.ও টি নামাতে হবে।

উপরের সমস্যাগুলি থেকে পরিত্রান পাওয়ার জন্য Jigdo এর আবির্ভাব। Jigdo আপনার ফাইলগুলিকে আলাদাভাবে ডাউনলোড করে একটি টেম্পরারি আই.এস.ও ফাইল তৈরী করে। পুরো ডাউনলোড শেষ হলে এটি পরিপূর্ন আই.এস.ও তে রূপান্তরিত হয়। কোন কারনে নতুন ভার্সন আসলেও সমস্যা নেই। পুরনো আই.এস.ও ফাইলটি/টেম্পরারি আই.এস.ও ফাইলটিকে Magic Disk এর মত সফটওয়্যার দিয়ে মাউন্ট করে নিন যদি উইন্ডোজ ব্যবহার করে থাকেন। আর লিনাক্সে মাউন্ট করা তো অনেক সোজা।

কমান্ড দিনঃ

$ mount /cdrom
# mount -o loop woody-i386-1.iso /mnt

তারপর Jigdo চালু করে উক্ত পাথ দেখিয়ে দিন। ব্যস বাকী কাজ Jigdo নিজে থেকেই করে নেবে।

এখন আসুন Jigdo দিয়ে শুরু করি। প্রথমেই http://www.debian.org/distrib/ লিংক থেকে Jigdo এর উপর ক্লিক করুন। তারপর প্রসেসর আর্কিটেকচারের উপর ক্লিক করুন। এবার উক্ত পেজ থেকে নিচের লিংকের মত ফাইল দুটি ডাউনলোড করুন।

debian-6.0.0-i386-DVD-1.jigdo
debian-6.0.0-i386-DVD-1.template

এ দুটি ফাইলেই যাবতীয় তথ্য যথা কোন প্যাকেজ, কত ভার্সনের প্যাকেজ, কোন ফোল্ডার থেকে ডাউনলোড করতে হবে ইত্যাদি থাকে। প্রতিটি সিডি/ডিভিডি এর জন্য দুটি করে ফাইল থাকে। এখানে আমরা প্রথম ডিভিডির জন্য ফাইল দুটি কি কি তা দেখলাম।

Jigdo লিনাক্স থেকে ইনস্টলের জন্য কমান্ড দিনঃ

apt-get install jigdo-file

http://atterer.org/jigdo/ লিংক থেকে উইন্ডোজের জন্য জিপ ফাইলটি নামিয়ে আনজিপ করে নিন। তারপর উক্ত ফোল্ডারে debian-6.0.0-i386-DVD-1.jigdo ও debian-6.0.0-i386-DVD-1.template ফাইল দুটি রাখুন।

লিনাক্সে কমান্ড দিন উক্ত ফোল্ডারে ঢুকে-
jigdo-lite debian-6.0.0-i386-DVD-1.jigdo

আর উইন্ডোজে উক্ত ফোল্ডারের jigdo-lite ব্যাচ ফাইলটিতে ডাবল ক্লিক করুন।

এবার আগের কোন সিডি/ডিভিডি থাকলে তা মাউন্ট করে তার পাথ (/mnt) দেখিয়ে দিন। তারপর এন্টার চাপুন।

Jigdo আপনার /etc/apt/sources.list ফাইল থেকে সার্ভার খুজে নেয়। যদি ম্যানুয়ালি সার্ভার দেখিয়ে দিতে চান তবে উইন্ডোজে jigdo-lite-settings ফাইলটি খুলুন। আর লিনাক্সে ~/.jigdo-lite এ ফাইলটি খুলুন।

এবার উক্ত ফাইলে নিচের দুটি লাইন মডিফাই করুন।
debianMirror='http://ftp.us.debian.org/debian/'
nonusMirror='http://mirrors.ispros.com.bd/debian/'

এখানে আমার ব্যবহৃত মিরর দুটির ঠিকানা দিলাম। একটি ইউ.এস এর এবং আরেকটি বাংলাদেশের।

তারপর আবার ডাউনলোড শুরুর জন্য আগের মত কমান্ড দিন বা ব্যাচ ফাইলের উপর ডাবল ক্লিক করুন। উইন্ডোজে প্রথমবার ব্যাচ ফাইলে ক্লিক করলে আপনার debian-6.0.0-i386-DVD-1.jigdo ফাইলের পাথ যেমনঃ g:\jigdo\debian-6.0.0-i386-DVD-1.jigdo দিতে হবে। একবার দিলেই সেটি jigdo-lite-settings ফাইলে সেভ হয়ে যাবে। ভুল হলে jigdo-lite-settings/ ~/.jigdo-lite ফাইলে ঢুকে পাথ পরিবর্তন করুন এবং jigdo পূনরায় চালু করুন।

jigdo='G:\jigdo\debian-6.0.0-i386-DVD-1.jigdo'


প্রক্সি দিয়ে ডাউনলোড করতে চাইলে jigdo-lite-settings/ ~/.jigdo-lite ফাইলে ঢুকে নিচের লাইনের মত পরিবর্তন করুন।

wgetOpts='--passive-ftp --dot-style=mega --continue --timeout=30 -e ftp_proxy=http://192.168.2.3:8080/ -e http_proxy=http://192.168.2.3:8080'

এখানে আমি এফটিপি প্রক্সি ও এইচটিটিপি প্রক্সি এর এড্রেস এবং পোর্ট নম্বর দিয়েছি।

সর্বশেষ কোন ডিভিডি থেকে কিভাবে সিডি তৈরী করবেন তা বলে শেষ করি। এজন্য সিডির ফাইল দুটি ডাউনলোড করে আগের মতই jigdo চালু করে ডিভিডি এর আইএসও-টি দেখিয়ে দিন।

debian-6.0.0-i386-CD-1.jigdo
debian-6.0.0-i386-CD-1.template

তাহলে jigdo নিজেই ডিভিডি-র আইএসও থেকে প্রয়োজনীয় ফাইল নিয়ে সিডির আই.এস.ও তৈরী করে ফেলবে। :thumb:

সকলকে ডেবিয়ান এর শুভেচ্ছা জানিয়ে শেষ করছি। ভাল থাকবেন।