একুয়ারিস ই৪.৫ – উবুন্টু ফোন

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

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

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

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

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

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

উবুন্টু একুয়ারিস ই৪.৫

এছাড়া ডান দিকে সোয়াইপ করলে অন্যান্য স্কোপস এ যাওয়া যাবে যেমন,

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

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

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

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

ক্যানোনিক্যাল এখানে লাভ করবে প্রতিষ্ঠানকে সাপোর্ট সার্ভিস প্রদান করে। এই ফোনটি মূলত প্রস্তুত করেছে স্প্যানিশ এক প্রতিষ্ঠান বিকিউ যাদের কিনা ইতোমধ্যে ফোনটির একটি অ্যান্ড্রয়েড সংস্করণ রয়েছে। বিকিউ মুলত প্রায় অজানা একটি ট্যাবলেট এবং ই-রিডার প্রস্তুতকারক।

ফোনটির স্পেসিফিকেশন তেমন আকর্ষণীয় নয়। ৪.৫ ইঞ্চি (৫৪০x৯৬০ রেজুলেশন) স্ক্রিন সাইজের এই ফোনে আছে ১.৩ গিগাহার্জ কোয়াড কোর কর্টেক্স এ৭ ভিত্তিক মিডিয়াটেক প্রসেসর, মালি ৪০০ জিপিউ, ১ গিগাবাইট র‍্যাম এবং ৮ গিগাবাইট ইন্টারনাল স্টোরেজ। ক্যামেরা হিসেবে আছে, ৮মেগাপিক্সেল রিয়ার এবং ৫ মেগাপিক্সেল ফ্রন্ট ক্যামেরা। ফোনে আরও ডাটা রাখতে এতে রয়েছে মাইক্রোএসডি কার্ড সাপোর্ট এছাড়া আছে ডুয়াল সিম সাপোর্ট। ব্যাকআপ দিতে এতে আছে ২১৫০ মিলি অ্যাম্পিয়ার ব্যাটারি। ফোনটির দাম পড়বে প্রায় ১৯৫ ডলার।

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

আপডেট:

একজন ইউটিউবার প্রথম একটি উবুন্টু ফোনের আনবক্সিং ভিডিও রিলিজ করেছে।

– এহসানুল হক নিটোল।

লিনাক্স সার্ভারে পাসওয়ার্ড ছাড়া লগইন

আমরা অনেকেই ssh টুল ব্যবহার করে রিমোট লিনাক্স সার্ভারে লগইন করি এবং প্রতিবারই পাসওয়ার্ড দেওয়া লাগে। এই পাসওয়ার্ড দেওয়ার ঝামেলাটা সহজেই এড়ানো যায়। এতে যেই কম্পিউটার থেকে লগিন করা হয়, সেখানে কি (key) তৈরি করে সার্ভারে সেটা দিয়ে দিতে হয়।

Monitor_padlock

এর জন্য নিচের ধাপগুলো অনুসরন করতে হবে :

১) প্রথম কাজ হচ্ছে একজোড়া পাবলিক-প্রাইভেট কি জোড়া (key pair) তৈরি করা। তার জন্য নিচের কমান্ড দিতে হবে :

ssh-keygen -t rsa

এর আউটপুট হবে এমন :
Generating public/private rsa key pair.
Enter file in which to save the key (/home/name/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/name/.ssh/id_rsa.
Your public key has been saved in /home/name/.ssh/id_rsa.pub.
The key fingerprint is:
08:3c:1a:b5:f1:e0:19:13:c5:f4:38:45:ea:e0:1d:91 name@name
The key’s randomart image is:
+–[ RSA 2048]—-+
|    B=+oo        |
|   + OE*         |
|  . O * .        |
|   + * +         |
|  . . + S        |
|                 |
|                 |
|                 |
|                 |
+—————–+

এখানে দুটি কি তৈরি হল। একটি হচ্ছে id_rsa – এটি প্রাইভেট কি (private key), আরেকটি হচ্ছে id_rsa.pub এটি পাবলিক কি (public key)।

২) এখন id_rsa.pub ফাইলটি সার্ভারে কপি করতে হবে (এর জন্য scp কমান্ড ব্যবহার করা যেতে পারে, বা অন্য উপায়েও করা যেতে পারে)।

৩) এবারে ফাইলটি সার্ভারের ~/.ssh/authorized_keys ফাইলে যুক্ত করে দিতে হবে, এই কমান্ড দিয়ে :
cat id_rsa.pub >> /home/name/.ssh/authorized_keys

৪) তারপরে এই কমান্ড দিতে হবে : chmod 600 /home/name/.ssh/authorized_keys (অপশনাল, মানে এই স্টেপ ফলো না করলেও চলে)।

এখন ssh কমান্ড দিয়ে পাসওয়ার্ড ছাড়াই সার্ভারে ঢোকা যাবে! তবে যেই কম্পিউটার থেকে কাজটি করা হয়েছে, মানে যেই কম্পিউটারের পাবলিক কি সার্ভারে কপি করা হয়েছে, সেই কম্পিউটার থেকেই পাসওয়ার্ড ছাড়া সার্ভারে লগিন করা যাবে। অন্য কম্পিউটার থেকে পাসওয়ার্ড লাগবে। আবার চাইলে সার্ভারের নিরাপত্তা বাড়ানোর জন্য পাসওয়ার্ড বেজড লগিন (password based authentication) বন্ধ করে দেওয়া যায়, তাতে যেসব কম্পিউটারের কি সার্ভারের কাছে আছে, কেবল সেসব কম্পিউটার থেকেই সার্ভারে লগিন করা যাবে।

ইঞ্জিনএক্স ইনস্টল করা : উবুন্টু সার্ভার সেটাপ – ২

আগের পর্ব পড়তে এখানে ক্লিক করতে হবে।

ইঞ্জিনএক্স (nginx) হচ্ছে একটি জনপ্রিয় ওয়েব সার্ভার। আগে আমি বেশিরভাগ ক্ষেত্রেই এপাচি (apache) ব্যবহার করতাম, এখন ইঞ্জিনএক্স ব্যবহার করি। তাই এখন ইঞ্জিনএক্স ইনস্টল করে ফেলবো।

প্রথমে সার্ভারে লগিন করতে হবে : ssh -p 1234 user@ip-address

তারপরে নিচের কমান্ড :
sudo apt-get install nginx

ইঞ্জিনএক্স সার্ভারে একটি সার্ভিস হিসেবে চলবে, সেটি চলছে কী না পরীক্ষা করি :
dimik@dimikcomputing:~$ service nginx status
* nginx is running

তার মানে ঠিকঠাক চলছে। তবে আরো চারটি কমান্ড জেনে রাখি :
service nginx start
service nginx stop
service nginx restart
service nginx reload

এখন ব্রাউজারে আইপি-এড্রেস লিখে এন্টার চাপলেই আমরা নিচের ছবিটি দেখবো :

nginx

উবুন্টু সার্ভার সেটাপ – ১

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

ubuntu-server-1

আমি ধরে নিচ্ছি যে সার্ভারের অপারেটিং সিস্টেম হচ্ছে উবুন্টু।

প্রথমে সার্ভারে লগিন করতে হবে : ssh root@ip-address

তারপরে প্যাকেজ আপডেট করতে হবে :  apt-get update

অত:পর আপগ্রেডের কাজ : apt-get upgrade

এখন পাইথন ও প্রয়োজনীয় কিছু জিনিস ইনস্টল করে ফেলি। (কী কী প্যাকেজ ইনস্টল হচ্ছে সেটা লেখা আসবে The following NEW packages will be installed: এবং The following extra packages will be installed: এর নিচে।)
root@dimikcomputing:~# apt-get install curl python-software-properties software-properties-common

এখন sudo ইনস্টল করা না থাকে সেটি করে নিতে হবে : apt-get install sudo

সার্ভারের নিরাপত্তার জন্য আমরা নতুন একটি ইউজার তৈরি করবো যার এডমিন প্রিভিলেজ থাকবে। এর জন্য নিচের কমান্ডগুলো একে একে টার্মিনালে দিতে হবে। <USERNAME> এর জায়গায় ইউজারনেম দিতে হবে, মানে যে নামে ইউজার আমরা চাই।

groupadd admin
adduser <USERNAME>
usermod -a -G admin <USERNAME>
dpkg-statoverride –update –add root admin 4750 /bin/su

এখন রুট থেকে আমরা নতুন তৈরি করা ইউজারে চলে যাব :

su <USERNAME>

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

sudo vim /etc/ssh/sshd_config

(vim ইনস্টল করা না থাকলে এই কমান্ড দিতে হবে : sudo apt-get install vim)

এখন নিচের দুটি লাইনে পরিবর্তন করতে হবে :

Port 2423
PermitRootLogin no

আমরা পোর্ট নাম্বার পরিবর্তন করে 2423 দিলাম (ডিফল্ট 22 ছিল) এবং PermitRootLogin কে no করে দিলাম (ডিফল্ট yes ছিল)।

তারপরে ফাইলের একেবারে শেষে নিচের লাইন দুটি যোগ করতে হবে  (<USERNAME> এর জায়গায় যেই ইউজারটি একটু আগে তৈরি করা হলো, সেটি লিখতে হবে, এঙ্গেল ব্র্যাকেট ছাড়া):

UseDNS no
AllowUsers <USERNAME>
এবারে ssh রিস্টার্ট করতে হবে :

sudo /etc/init.d/ssh restart

এখন যদি আমাদের ইউজার নেম হয় dimik এবং পোর্ট নাম্বার হয় 2423, তাহলে আমরা এভাবে লগিন করতে পারব :

ssh -p 2423 dimik@ip-address

পরের পর্বগুলোতে আমরা দেখবো কীভাবে বিভিন্ন প্রোগ্রামিং ল্যাঙ্গুয়েজ, ডাটাবেজ, ওয়েবসার্ভার ইত্যাদি ইনস্টল করতে হয়।

নিচের দুটি টিউটোরিয়ালের সাহায্য নিয়েছি :
১) https://www.digitalocean.com/community/tutorials/initial-server-setup-with-ubuntu-12-04

২) http://learnaholic.me/2014/01/09/ubuntu-vps-step-by-step-config-notes/

লিনাক্স

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

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

একসময় লিনাক্সে কোনো গ্রাফিক্যাল ইউজার ইন্টারফেস (সংক্ষেপে গুই) ছিলো না। তখন কমান্ড লাইনেই বিভিন্ন কমান্ড দিয়ে কাজ করতে হতো। যেকারণে সাধারন ব্যবহারকারীরা তাদের ডেস্কটপে উইন্ডোজই ব্যবহার করতেন। কিন্তু ধীরে ধীরে সে চিত্র পাল্টাতে থাকে। বিশেষ করে গত এক দশকে অনেকখানি সহজ হয়ে উঠেছে লিনাক্স। এখনকার দিনের বিভিন্ন লিনাক্স ডিস্ট্রিবিউশনে রয়েছে চমৎকার গুই – সাধারণ বা দৈনন্দিন কাজগুলো করতে আর কমান্ড লেখার প্রয়োজন হয় না। লিনাক্সের গুই এখন উইন্ডোজের মতই সহজ। তাই সাধারণ ব্যবহারকারিদের মাঝে দ্রুত জনপ্রিয় হয়ে উঠছে লিনাক্স।

বাংলাদেশে নব্বইয়ের দশকের মাঝামাঝি কয়েকটি আইএসপি (ইন্টারনেট সার্ভিস প্রোভাইডার) চালু হয়। সেগুলো প্রত্যেকেই লিনাক্সের উপর নির্ভরশীল ছিল। বিডিকম অনলাইন লিমিটেডের সুমন আহমেদ সাবির বলেন, “সেই সময় আমরা কার্ণেল ১.০ তে কাজ শুরু করি। শেখার জন্য কিছু বই আর ডকুমেন্টেশন ছিল, সেগুলো ঘেঁটে ঘেঁটেই আমাদের শেখা। সার্ভারের কাজের জন্য ইউনিক্সই তখন বিশ্বব্যাপী সমাদৃত ছিলো, কিন্তু ওগুলোর দাম ছিল অনেক বেশি, তাই আমাদের জন্য লিনাক্স ব্যবহারের কোনো বিকল্প ছিলো না।” বর্তমানেও বাংলাদেশের আইএসপিগুলোর প্রথম পছন্দ লিনাক্স। তবে এখন কাজ অনেক সহজে করা যায়, আগে যেই কাজ করতে হয়ত তিন-চার দিন সময় চলে যেত, সেই কাজ এখন তিন-চার ঘণ্টায় করে ফেলা যায়। আর ইন্টারনেটের সহজলভ্যতার জন্য নতুন কিছু শিখে নিতে তেমন বেগ পেতে হয় না।

বাংলাদেশে সার্ভারে লিনাক্সের ব্যবহার বেশ আগে থেকে শুরু হলেও পিসিতে লিনাক্সের ব্যবহার ছিল বেশ কম। কারণ লিনাক্সের ব্যবহার ছিলো বেশ ঝামেলার। আর ইন্টারনেটও তেমন একটা সহজলভ্য ছিলো না যে সেখান থেকে সবসময় সাহায্য পাওয়া যাবে। ১৯৯৯ সালে তৈরি হয় বিডিলাগ (বাংলাদেশ লিনাক্স ইউজার গ্রুপ)। একটি ইয়াহু গ্রুপের মাধ্যমে সেখানে সদস্যরা একে অপরকে সাহায্য করতেন। তারপর নতুন সহস্রাব্দের শুরুর দিকে আরো কিছু সংস্থা বাংলাদেশে লিনাক্সভিত্তিক কার্যক্রম পরিচালনা করে। তাদের মধ্যে অন্যতম হচ্ছে অঙ্কুর। লিনাক্সের বাংলা অনুবাদ (লোকালাইজেশন)-এর কাজটি তারা করে বেশ ভালোভাবেই। পরবর্তিতে বিডিওএসএন (বাংলাদেশ ওপেন সোর্স নেটওয়ার্ক) গঠিত হলে লোকালাইজেশনের কাজে বেশ গতি আসে। ওপেন সোর্সকে জনপ্রিয় করে তোলার লক্ষ্যে দেশের অনেকগুলো বিশ্ববিদ্যালয়ে ওপেন সোর্স নেটওয়ার্ক গঠিত হয়। তাদের অন্যতম কাজ ছিলো ওপেন সোর্সকে জনপ্রিয় করা আর সেটি করতে গেলে লিনাক্স ব্যবহারের বিষয়টিই চলে আসে সবার আগে। তবে উইন্ডোজেও কিন্তু অনেক ওপেন সোর্স সফটওয়্যার ব্যবহার করা যায়।

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

বিভিন্ন ওপেন সোর্স সফটওয়্যার :
ব্রাউজার : মজিলা ফায়ারফক্স, ক্রোমিয়াম (গুগল ক্রোমের ওপেন সোর্স ভার্শন)
ডকুমেট প্রসেসর : লিব্রা অফিস রাইটার
স্প্রেডশীট : লিব্রা অফিস ক্যাল্ক
মাল্টিমিডিয়া প্রেজেন্টেশন : লিব্রা অফিস ইমপ্রেস
ইনস্ট্যান্ট মেসেজিং : পিজিন
ইমেজ এডিটিং : গিম্প
ভিডিও প্লেয়ার : ভিএলসি

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

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

নোট : আমার এই লেখাটি প্রথম আলোতে প্রকাশিত হয় আগষ্ট ২৯, ২০১৪ তারিখে। লিঙ্ক : http://www.prothom-alo.com/technology/article/304102/

উবুন্টুতে ফ্লাস্ক ইনস্টল করার প্রক্রিয়া

সাধারণ ছোটোখাটো প্রজেক্ট থেকে মাঝারি সাইজের প্রজেক্টের জন্য ফ্লাস্ক (Flask) একটি চমৎকার পাইথন ফ্রেমওয়ার্ক। আমি রেস্টফুল এপিআই তৈরির জন্য ফ্লাস্ক রেস্টফুল (Flask-RESTful) ব্যবহার করি। ডেভেলাপমেন্টের জন্য আমি ম্যাক ও উবুন্টু (Ubuntu) দুটোই ব্যবহার করি, আর সার্ভারে উবুন্টু। এখানে আমি উবুন্টুতে ফ্লাস্ক প্রজেক্ট ডেপ্লয় করার জন্য যা যা দরকার, সেগুলো লিখে রাখবো, যাতে পরবর্তি সময়ে আমার কিংবা অন্যদের সুবিধা হয়। কমান্ডগুলো উবুন্টু ১৪.০৪ ব্যবহার করে পরীক্ষা করা হয়েছে।

প্রথমে চেক করতে হবে কম্পিউটারে উবুন্টুর সব প্যাকেজ হালনাগাদ করা হয়েছে কী না। না হলে আপডেট করে নিতে হবে। এর জন্য সহজ কমান্ড হচ্ছে :
sudo apt-get update && sudo apt-get upgrade

এখন পাইথন ও পিপ (pip) ইনস্টল করবো :

sudo apt-get install build-essential python-dev python-pip

তারপরের কাজ হচ্ছে ভার্চুয়াল এনভারনমেন্ট ইনস্টল করা।
sudo pip install virtualenv

এটি দরকারি এজন্য যে একেক প্রজেক্ট একেক সময়ে করা হয়, তাই সেই প্রজেক্টের জন্য দরকার মডিউল আলাদা করে ফেলা উচিত, যাতে পরবর্তি সময়ে অন্য প্রজেক্টে কাজ করার সময় কনফ্লিক্ট তৈরি না হয়।

এখন যেই ডিরেক্টরিতে অ্যাপ্লিকেশনটি রাখা হবে, সেটি তৈরি করে ফেলা যাক :

sudo mkdir -p /var/www/myapp

এখন পারমিশন পরিবর্তন করতে হবে। আমার ক্ষেত্রে ইউজার আইডি হচ্ছে www-data, ইউজার গ্রুপও হচ্ছে www-data। আপনার ক্ষেত্রে সেটি অন্যরকম হতে পারে। লক্ষ্য রাখতে হবে যে অনেক সময় ফাইল পরিবর্তন করলে সেটি রুট বা অন্য ইউজার-এর হয়ে যায়, তাই পরীক্ষা করতে হবে যে myapp ডিরেক্টরির সব ফাইল এবং সাব-ডিরেক্টরির পারমিশন ঠিক আছে কী না।
sudo chown -R www-data:www-data /var/www/myapp
cd /var/www/myapp

এখন ভার্চুয়াল এনভারমেন্ট তৈরি করি।
virtualenv venv --no-site-packages

ভার্চুয়াল এনভারমেন্ট একটিভেট করে সেখানে ফ্লাস্ক ইনস্টল করি।
source venv/bin/activate
pip install flask

এখানে আমরা আমাদের ফ্লাস্ক অ্যাপটি রাখবো।

লক্ষ্য রাখতে হবে যে হোস্ট সেট করতে হবে 0.0.0.0 তে (127.0.0.1-এ নয়)। আর অ্যাপ্লিকেশনের শুরুটা রাখতে হবে if __name__ == ‘__main__’: ব্লকের ভিতরে।

এরপরের কাজ হচ্ছে ওয়েব সার্ভার ইনস্টল করা (যদি ইনস্টল করা না থাকে)। আমি সাধারণত ইঞ্জিন-এক্স ব্যবহার করি। আর ইনস্টল করার আগে ভার্চুয়াল এনভারমেন্ট ডিএকটিভেট করে নিতে হবে এই কমান্ড দিয়ে :
deactivate
sudo apt-get install nginx

এখন আমি uwsgi ইনস্টল করবো, এটি ইঞ্জিনএক্স ও আমার ফ্লাস্ক অ্যাপ্লিকেশনের মধ্যে একটি যোগসূত্র তৈরি করে দিবে, মানে এটিই আমার ফ্লাস্ক অ্যাপ্লিকেশনকে চালাবে। এর ব্যবহার বাধ্যতামূলক নয়, তবে ব্যবহার করলে ভালো। 🙂

sudo apt-get install uwsgi uwsgi-plugin-python

এখন একটা সকেট ফাইল তৈরি করা লাগবে যার মাধ্যমে ইঞ্জিনএক্স, uwsgi-এর সাথে যোগাযোগ করবে।
cd /tmp/
touch mapp.sock

ফাইলের পারমিশন পরিবর্তন করতে হবে যাতে ইঞ্জিনএক্স সেটি চালাতে পারে।
sudo chown www-data:www-data myapp.sock

এরপর ইঞ্জিনএক্সের কনফিগারেশন ফাইল তৈরি করতে হবে। এর জন্য প্রথমে /etc/nginx/sites-available ডিরেক্টরিতে যেতে হবে নিচের কমান্ড দিয়ে :
cd /etc/nginx/sites-available

তারপরে ডিফল্ট যেই কনফিগারেশন ফাইল আছে, সেটি মুছে ফেলতে হবে বা সরিয়ে রাখতে হবে।
sudo mv default _default

এবারে নতুন কনফিগারেশন ফাইল তৈরির জন্য আমরা নিচের কমান্ড ব্যবহার করতে পারি :
sudo vi myapp
এটি vi এডিটর দিয়ে খুলবে, চাইলে অন্য এডিটরও ব্যবহার করা যায়।

এখন নতুন ফাইলে নিচের জিনিসগুলো পেস্ট করতে হবে :

server {
    listen 80;
    server_tokens off;
    server_name myapp.com;

    location / {
        include uwsgi_params;
        uwsgi_pass unix:/tmp/myapp.sock;
    }

    location /static {
        alias /var/www/myapp/static;
    }
}

এখানে লক্ষ্যণীয় যে static ফাইলগুলো রাখার জন্য /var/www/myapp/static ডিরেক্টরি ব্যবহার করা হয়েছে। আপনি আপনার প্রয়োজনমতো ডিরেক্টরি তৈরি করে সেই লোকেশন এখানে লিখবেন।

যেই কনফিগারেশন ফাইলটি তৈরি করলাম, তার একটি লিঙ্ক তৈরি করতে হবে /etc/nginx/sites-enabled ডিরেক্টরিতে। এর জন্য নিচের কমান্ড দিতে হবে :
sudo ln -s /etc/nginx/sites-available/myapp /etc/nginx/sites-enabled/myapp

এবারে uwsgi এর জন্যও একটি কনফিগারেশন ফাইল তৈরি করা লাগবে, লোকোশনসহ ফাইলটি হচ্ছে /etc/uwsgi/apps-available/myapp.ini

ফাইলে নিচের জিনিসগুলো লিখতে হবে:

[uwsgi]
vhost = true
socket = /tmp/myapp.sock
venv = /var/www/myapp/venv
chdir = /var/www/myapp
module = api
callable = app

মডিউল হচ্ছে পাইথন স্ক্রিপ্ট যেই ফাইলে আছে তার নাম আর কলেবল হচ্ছে ওই স্ক্রিপ্টে যেই ফ্লাস্ক অবজেক্ট তৈরি করা হয়েছে। উদাহরণস্বরূপ নিচের স্ক্রিপ্টটি আমরা দেখি:

from flask import flask
app = Flask(__name__)

@my_app.route('/')
def hello_world():
    return 'Hello World!'

if __name__ == '__main__':
    app.run(host='0.0.0.0')

এটি যদি api.py নামের ফাইলে সেভ করা হয়, তাহলে কনফিগারেশন ফাইলে module = api এবং callable = app লিখতে হবে।

তারপর নিচের কমান্ড দিয়ে লিঙ্ক করতে হবে:
sudo ln -s /etc/uwsgi/apps-available/myapp.ini /etc/uwsgi/apps-enabled/myapp.ini

সবশেষে nginx ও uwsgi আবার চালু করতে হবে।
sudo service nginx restart
sudo service uwsgi restart

সবকিছু ঠিকঠাক হয়ে থাকলে ফ্লাস্ক অ্যাপ্লিকেশনটি এখন কাজ করবে।