[phpBB Debug] PHP Warning: in file [ROOT]/phpbb/session.php on line 583: sizeof(): Parameter must be an array or an object that implements Countable
[phpBB Debug] PHP Warning: in file [ROOT]/phpbb/session.php on line 639: sizeof(): Parameter must be an array or an object that implements Countable
[phpBB Debug] PHP Warning: in file [ROOT]/includes/functions.php on line 4516: Cannot modify header information - headers already sent by (output started at [ROOT]/includes/functions.php:3262)
[phpBB Debug] PHP Warning: in file [ROOT]/includes/functions.php on line 4516: Cannot modify header information - headers already sent by (output started at [ROOT]/includes/functions.php:3262)
[phpBB Debug] PHP Warning: in file [ROOT]/includes/functions.php on line 4516: Cannot modify header information - headers already sent by (output started at [ROOT]/includes/functions.php:3262)
আমাদের প্রযুক্তি • লিনাক্সে নির্দিষ্ট প্যাকেজের অফলাইন ইনস্টলার তৈরী করা
Page 1 of 2

লিনাক্সে নির্দিষ্ট প্যাকেজের অফলাইন ইনস্টলার তৈরী করা

Posted: Wed May 20, 2009 1:14 pm
by জাহিদ সুমন
কুইক স্টার্টঃ যদি বিস্তারিত না পড়ে শুরু করতে চান সরাসরি উদাহরন দিয়েই শুরু করুন
=====================================================
রিফাত ও শাহেদ একই ডিপার্টমেন্ট এ পড়ে। এ সূত্র থেকেই পরিচয়, অতঃপর ঘনিষ্ঠতা। রিফাত কম্পিউটারে এক্সপার্ট হওয়াতে শাহেদ প্রায়ই তার কাছে যায় নানারকম সাহায্যের জন্য। একদিন রিফাতের রুমে গিয়ে শাহেদ দেখতে পেল সে উবুন্তু লিনাক্স ব্যবহার করছে। লিনাক্সের নাম সে আগেই শুনেছে কিন্তু কোনদিন ব্যবহার করে দেখেনি। তাই সে রিফাতকে অনুরোধ করল তার মেশিনে লিনাক্স ইনস্টল করার জন্য। অবশেষে একদিন রিফাত শাহেদের কম্পিউটারে লিনাক্স ইনস্টল করে দিল। কিন্তু সমস্যা হল, শাহেদ কোন গান বা ভিডিও দেখতে পারছে না, বাংলা লিখতে/দেখতে পারছে না। তখন রিফাত তাকে বলল যে, ইন্টারনেট কানেকশন না থাকলে গান/ভিডিও দেখার মাল্টিমিডিয়া কোডেক ইনস্টল করা যায় না। শাহেদ তাকে পেনড্রাইভে উক্ত সফটওয়্যারটি কপি করে দিতে বলায় রিফাত ইন্টারনেট থেকে কোডেকগুলি নামিয়ে তাকে পেনড্রাইভে কপি করে দিল। বাসায় গিয়ে শাহেদ ইনস্টল করতে বসে গেল। ঠিক যেভাবে উইন্ডোজের সফটওয়্যার ইনস্টল করে থাকে। ডাবল ক্লিক এন্ড গো। কিন্তু একি! খানিকসময় ইনস্টল হওয়ার পর বলে, আরো ৫/৭ টি ফাইল লাগবে। যেগুলি নাকি ডিপেনডেন্সী ফাইল। সে বুদ্ধি করে ফাইলগুলির নাম লিখে রাখল। তারপর আবার রিফাতের কাছে গিয়ে সেগুলিকে একে একে ইন্টারনেট থেকে ডাউনলোড করে আনল। এবার আবার ইনস্টল করতে বসে গেল। কিন্তু আগের ফাইলগুলি ধারাবাহিকভাবে ইনস্টলের পর আবার আগের মত মেসেজ দেখাচ্ছে- যেখানে আরো কয়েকটি ফাইল ডিপেনডেন্সী হিসেবে লাগবে। এবার তো মাথায় হাত! এই ডিপেনডেন্সী ফাইল কয়টা লাগবে আর কতবার ইন্টারনেট থেকে ডাউনলোড করে পেনড্রাইভে বাসায় নিয়ে আসতে হবে - এ নিয়ে সে কোন কূল কিনারা পেল না। আস্তে আস্তে লিনাক্স নিয়ে তার উৎসাহ কমে যেতে লাগল। তাই একদিন আবার উইন্ডোজ ইনস্টল করেই তবে হাফ ছেড়ে বাচল। যাক বাবা এবার আর অন্ততঃ ডিপেনডেন্সীর কবলে পড়তে হবে না। শুধু setup.exe তে ডাবল ক্লিক করব আর আরামে চেয়ারে বসে থাকব।

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

কিন্তু মজার ব্যাপার হচ্ছে যারা লিনাক্স নিয়ে একটু ঘাটাঘাটি করে থাকেন তারা বেশ স্বাচ্ছ্যেন্দের সাথেই সব কাজ করে যাচ্ছেন। কারন তাদের আছে ইন্টারনেট কানেকশন। ইচ্ছা করলেই যেকোন সফটওয়্যার সাথে সাথে ইনস্টল করে ফেলতে পারেন। তাহলে যাদের ইন্টারনেট কানেকশন নেই তাদের জন্য কি কোন সমাধান নেই? রিফাতের ইন্টারনেট কানেকশন থাকলেও কি সে শাহেদকে সাহায্য করতে পারবে না?

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

ডেবিয়ান বা উবুন্তু যে প্যাকেজ ফরম্যাট ব্যবহার করে থাকে তার এক্সটেনশন হচ্ছে .deb। অর্থাৎ উইন্ডোজে যেমন .exe ফাইল থাকে লিনাক্সে থাকে .deb। আরো একটি প্রধান ফাইল ফরম্যাট .rpm ব্যবহার করে থাকে রেডহ্যাট বেজড লিনাক্সগুলি। কিন্তু এটি কোন সমস্যা নয়। সমস্যা হচ্ছে, উইন্ডোজে আপনি যখন কোন ফাইলে ডাবল ক্লিক করে ইনস্টল প্রসেস শুরু করেন তখন সেই প্রোগ্রামের জন্য যত ধরনের লাইব্রেরী ফাইল লাগে সেগুলি সে ঐ প্যাকেজ থেকেই ইনস্টল করে নেয়। এগুলির এক্সটেনশন সাধারনত .dll হয়ে থাকে যার অর্থ ডিন্যামিক লিংক লাইব্রেরী ফাইল। কনসেপ্টটি সরাসরি প্রোগ্রামিং এর সাথে জড়িত অর্থাৎ ইনহেরিটেন্স কনসেপ্ট এর সাথে যেখানে একটি প্রোগ্রামে আরেকজন প্রোগ্রামার এর লিখিত কোন কোডকে ইমপোর্ট করা হয়ে থাকে এ ফাইলের মাধ্যমে। উইন্ডোজে যখন কোন প্রোগ্রামের সেট আপ ফাইল তৈরী করা হয় তখন এরকম যতগুলি লাইব্রেরী ফাইল একজন প্রোগ্রামার তার সফটওয়্যারে ব্যবহার করেন তার সবগুলিই সাধারনতঃ বান্ডেলড অবস্থায় .exe ফাইলের অভ্যন্তরে দিয়ে দেয়া হয়। তাই ঐ সফটওয়্যার ইনস্টল করার সময় ডাবল ক্লিক এন্ড গো মেথডই যথেষ্ট। কিন্তু লিনাক্স গোড়াতেই এ ধরনের কনসেপ্টকে এড়িয়ে চলেছে। কারন লিনাক্সের লাইব্রেরী ফাইলগুলির বেশীরভাগই ওপেন অর্থাৎ যে কেউই অন্যদের তৈরী করা লাইব্রেরী ফাইল তার প্রোগ্রামে ব্যবহার করতে পারেন। সুতরাং একই লাইব্রেরী ফাইল একাধিক প্যাকেজে দেয়ার বদলে লিনাক্স একটিই দিয়ে থাকে যাতে একবার ইনস্টল করলেই সবাই ব্যবহার করতে পারেন। এজন্য প্যাকেজ ম্যানেজমেন্ট প্রোগ্রাম যেমন apt, dpkg, synaptic যেটিই বলি না কেন তারা মূলত যখনই কোন লাইব্রেরী ফাইল প্রয়োজন মনে করে সেটি আপনার সরবরাহকৃত সিডি অথবা ইন্টারনেট থেকে ডাউনলোড করে নেয়। প্যাকেজ ম্যানেজমেন্ট প্রোগ্রামের কাজ হচ্ছে নির্দিষ্ট প্যাকেজকে ইনস্টল করার সময় যত ধরনের লাইব্রেরী ফাইল তার সাথে সংশ্লিষ্ট সেগুলিকে স্বয়ংক্রিয়ভাবে ইনস্টল করবে। এ ধরনের প্যাকেজ ম্যানেজমেন্ট সিস্টেম ডেভেলপ করার আরো একটি বড় কারন হচ্ছে, লিনাক্সে আগে থেকেই সব ধরনের সফটওয়্যার এক সাথে বান্ডেলড অবস্থায় ৫/৬ টি সিডিসহ আসতো যখন ইন্টারনেট এত সহজলভ্য ছিল না। ইন্টারনেট মোটামুটি সহজলভ্য হলে আগের প্যাকেজ ম্যানেজমেন্ট সিস্টেম এর সাথে একটু আপডেটেড সিস্টেম ইন্টিগ্রেটেড করা হল (ডেবিয়ান এ dpkg থেকে apt-get/aptitude সিস্টেম) যাতে ইন্টারনেট কানেকশন থাকা অবস্থায় সরাসরি ইন্টারনেট থেকেই প্যাকেজ এবং তার ডিপেনডেন্সী ফাইলগুলি একত্রে ইনস্টল করে নিতে পারে। এটি যথেষ্ট বিজ্ঞানসম্মত এবং আধুনিক একটি পদ্ধতি যদি আপনি উইন্ডোজের সাথে তুলনা করেন। উদাহরনস্বরূপঃ আপনার মেশিনে যদি একাধিক গান শোনা, ভিডিও দেখার প্লেয়ার থাকে তবে দেখা যাবে যে, উইন্ডোজে একাধিক mp3, mpeg এর লাইব্রেরী ফাইল/কোডেক ইনস্টল হয়ে আছে যা আসলেই অদক্ষ পদ্ধতি। লিনাক্সের ক্ষেত্রে আপনার একাধিক এমপি৩ প্লেয়ার থাকলেও এমপি৩ কোডেক একটিই ইনস্টল হবে।

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

প্রথম পয়েন্ট

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

উপরের তথ্য থেকে এটি স্পষ্ট যে, আপনার দেয়া তথ্যের ভিত্তিতেই লিনাক্স নির্দিষ্ট স্থান থেকে (সিডি/ডিভিডি/এফটিপি সার্ভার) প্যাকেজ ইনস্টল করে থাকে।

একটি নমুনা দেখি এ ফাইলেরঃ

# See sources.list(5) for more information, especially
# Remember that you can only use http, ftp or file URIs
# CDROMs are managed through the apt-cdrom tool.
deb http://http.us.debian.org/debian" onclick="window.open(this.href);return false; stable main contrib non-free
deb http://non-us.debian.org/debian-non-US" onclick="window.open(this.href);return false; stable/non-US main contrib non-free
deb http://security.debian.org" onclick="window.open(this.href);return false; stable/updates main contrib non-free

# Uncomment if you want the apt-get source function to work
#deb-src http://http.us.debian.org/debian" onclick="window.open(this.href);return false; stable main contrib non-free
#deb-src http://non-us.debian.org/debian-non-US" onclick="window.open(this.href);return false; stable/non-US main contrib non-free

এখানে # দিয়ে শুরু করা লাইনগুলি কমেন্ট যেগুলি apt উপেক্ষা করবে।
৪র্থ লাইনে ডেবিয়ান স্ট্যাবল ভার্সনের main, contrib, non-free এ তিনধরনের প্যাকেজকে ইনস্টল করার জন্য নির্দেশ দেয়া আছে। main হচ্ছে ডেবিয়ান এর নিজস্ব মেইনটেনকৃত প্যাকেজ যেগুলি পুরোপুরি ওপেন সোর্স, contrib হচ্ছে যেগুলি ডেবিয়ান এ অফিসিয়ালি মেইনটেন করা হয় না বরং বিভিন্ন ব্যক্তি এগুলি কন্ট্রিবিউট করে থাকেন, সর্বশেষ non-free যে প্যাকেজসমূহ ওপেন সোর্স হতে ও পারে আবার নাও হতে পারে এবং লাইসেন্স ওপেন নয় এমন প্রোগ্রামসমূহকে নির্দেশ করে।

পরবর্তী লাইনে non-us ডেবিয়ান প্যাকেজ ইনস্টলের জন্য নির্দেশ দেয়া হয়েছে যেগুলি ইউ.এস এর বাইরে সারা বিশ্বে ডেভেলপ করা হয়ে থাকে।

৬ষ্ঠ লাইনে ডেবিয়ানের সিকিউরিটি আপডেটসমূহ ইনস্টলের নির্দেশ যা একইভাবে main, contrib, non-free ইত্যাদিতে বিভক্ত।

উপরের লাইনগুলি দিয়ে মূলত আপনার প্যাকেজগুলি কোথা থেকে ইনস্টল করা হবে তার নির্দেশ।

যদি আপনি কোন সিডি/ডিভিডি এ ফাইলে যোগ করতে চান তবে কমান্ডের সাহায্যে দিতে পারেন যেটি সবচেয়ে সহজ। এর কমান্ড হচ্ছেঃ apt-cdrom add

এটি স্বয়ংক্রিয়ভাবে সিডি/ডিভিডিকে এ ফাইল যোগ করবে। উক্ত ফাইলে কোন ধরনের পরিবর্তনের পর কমান্ড দিনঃ apt-get update। ফলে আপনার পরিবর্তন পরবর্তী ইনস্টলের সময় কাজে লাগবে। অন্যথায় পরিবর্তন বুঝতে পারবেনা প্যাকেজ ম্যানেজমেন্ট সিস্টেম।


দ্বিতীয় পয়েন্ট


লিনাক্সের প্যাকেজগুলি সাধারনত জিপ/আর্কাইভ আকারে থাকে। তাই apt প্রথমেই এগুলিকে আর্কাইভ থেকে ডাউনলোড করে /var/cache/apt/archives নামক ফোল্ডারে রাখবে। আপনি সিডি/ডিভিডি থেকে ইনস্টল করলেও এটি করবে। সুতরাং আপনার ইনস্টলকৃত প্যাকেজের .deb ফাইলগুলি এখানে পাবেন যেটি উইন্ডোজের .exe ফাইলের সমতূল্য।

এ পয়েন্টটি বেশ গুরুত্বপূর্ন। ভাল করে লক্ষ্য করুন, আমরা যে apt-get, aptitude কমান্ড দিয়ে থাকি সেটি মূলত দুটি কাজ করে -১) আপনার প্যাকেজকে আর্কাইভ থেকে ডাউনলোড করে /var/cache/apt/archives ফোল্ডারে রাখে ২) সবশেষে এ ফাইলগুলির সাহায্যে ইনস্টল সম্পন্ন করে।

তৃতীয় পয়েন্ট
apt-get, aptitude কমান্ড এর সাহায্যে /etc/apt/sources.list এ বর্নিত সোর্সগুলি থেকে সফটওয়্যার ইনস্টল করা যায়। কিন্তু dpkg দিয়ে *.deb ফাইল থেকে সফটওয়্যার ইনস্টল করতে হয়। এ পয়েন্টটি ও গুরুত্বপূর্ন। কারন আপনি আপনার বন্ধুকে দিবেন *.deb ফাইলগুলি যা আপনার /var/cache/apt/archives নামক ফোল্ডারে সংরক্ষিত হয় ইনস্টলের সময়।

চতুর্থ পয়েন্ট
/var/cache/apt/archives ফোল্ডারে প্রথম থেকেই ফাইল জমা হতে শুরু করে। তাই যখন এর ধারনক্ষমতার বাইরে চলে যায় তখন আগের ফাইলগুলি মুছে ফেলে। এছাড়া আপনি যদি কখনও apt-get clean কমান্ড প্রয়োগ করেন তাহলে এ ফাইলে সংরক্ষিত সকল ফাইল মুছে যাবে স্বয়ংক্রিয়ভাবে। তাই আপনার বন্ধুকে ফাইল দেয়ার সময় আপনাকে কিছুটা প্ল্যান করেই কাজ করতে হবে। এছাড়া ধরুন আপনার মেশিনে আগে থেকেই অনেক লাইব্রেরী ফাইল ইনস্টল হয়ে আছে সেক্ষেত্রে একটি নতুন প্যাকেজ ইনস্টলের সময় সকল ফাইল এ ফোল্ডারে না পাওয়ার সম্ভাবনা আছে। তাই আপনাকে একটি নতুন ইনস্টলড লিনাক্স মেশিন বেছে নিতে হবে যেখানে আগে থেকে অতিরিক্ত কোন লাইব্রেরী ফাইল ইনস্টল হয়ে নেই। শুধুমাত্র মেশিন সেট আপের সময় যে প্যাকেজগুলি ইনস্টল করেছিলেন তা-ই আছে। তাহলে কি আপনাকে নতুন করে লিনাক্স ইনস্টল করতে হবে সব ধুয়ে মুছে- শুধুমাত্র বন্ধুকে সাহায্য করার জন্য? নাহ্‌ ভয় পাওয়ার কিছু নেই। আপনি এর বিকল্প হিসেবে লাইভ সিডি ব্যবহার করতে পারেন।

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

এবার অন্য মেশিনে ফোল্ডারটি কপি করার পর টার্মিনাল খুলুন এবং সেই ফোল্ডারে যান টার্মিনাল এর সাহায্যে(cd foldername কমান্ড দিয়ে)। তারপর কমান্ড দিনঃ dpkg –i *.deb। যদি উবুন্তু হয় তবে আগে sudo লাগান। ডেবিয়ান লিনাক্স হলে রুট হিসেবে প্রথমে লগইন করুন তারপর কমান্ড দিন। এজন্য টাইপ করুন su এবং এন্টার দিয়ে পাসওয়ার্ড দিন।

অথবা আপনি আপনার বন্ধুর মেশিনে /var/cache/apt/archives ফোল্ডারে কপি করে দিন তারপর প্যাকেজ ইনস্টলের জন্য apt-get install packagename কমান্ড দিলেই হবে।

যদি এভাবে আরেকটি প্যাকেজ ইনস্টল করতে চান তবে আবার একই পদ্ধতিতে পুনরায় লাইভ সিডি চালু করুন এবং ধাপসমূহ অনুসরন করুন।

একটি সহজ উদাহরন
আমরা বাংলা টাইপিংয়ের জন্য scim-m17n প্যাকেজ ইনস্টল করব।

লাইভ সিডি চালু ও ইন্টারনেট কানেকশন দেয়ার পর প্যাকেজ সার্চের জন্য কমান্ড দিনঃ
aptitude search scim

এরপর scim নামের সকল প্যাকেজ দেখাবে। যেগুলির পাশে i দেখতে পাবেন সেগুলি ইনস্টল করা আছে। বাকিগুলি থেকে scim-m17n এর নাম দেখে নিন এবং পরবর্তী কমান্ড দিনঃ (উবুন্তু হলে আগে sudo দিন)

aptitude install scim-m17n


এবার ইনস্টল প্রক্রিয়া শুরু হবে এবং স্ক্রিনে দেখতে পাবেন কোন কোন প্যাকেজ এবং ফাইল /var/cache/apt/archives ফাইলে কপি করছে। তারপর বাংলা ফন্ট ইনস্টলের কমান্ড দিনঃ
aptitude install ttf-bengali-fonts

তাহলে আপনি ফন্টসহ প্যাকেজ দিতে পারবেন।

প্যাকেজ ইনস্টল শেষে /var/cache/apt/archives ফোল্ডার থেকে সবগুলি .deb ফাইল অন্য কোথাও/পেন ড্রাইভে কপি করে নিন। আমার ক্ষেত্রে ফাইলগুলি ছিলঃ

libanthy0_9100e-3.2ubuntu1_i386
libgd2-xpm_2.0.36~rc1~dfsg-3ubuntu1_i386
libm17n-0_1.5.1-1_i386
libotf0_0.9.4-1_i386
m17n-contrib_1.1.5-1_all
m17n-db_1.5.1-1_all
scim-m17n_0.2.2-3_i386
ttf-bengali-fonts_1%3a0.5.4ubuntu2_all

আপনার লাইভ সিডি বন্ধুর মেশিনে /etc/apt/sources.list ফাইলে যোগ করার জন্য সিডি ঢোকানোর পর কমান্ড দিনঃ
apt-cdrom add

এবার আপনার বন্ধুর মেশিনে এগুলি /var/cache/apt/archives ফোল্ডারে কপি করে কমান্ড দিন আগের মতইঃ
aptitude install scim-m17n
aptitude install ttf-bengali-fonts

হয়ে গেল আপনার ইউনিজয় স্কিম ইনপুট মেথড এর ইনস্টলার!

এখন থেকে আপনি ইউনিজয় কি-বোর্ড সাধারন এডিটর যেমন-gedit এ ব্যবহার করতে পারবেন। এজন্য উক্ত এ্যাপ্লিকেশনের ফাঁকা জায়গায় মাউস এর ডান বাটন ক্লিক করে কি-বোর্ড পরিবর্তন করে নিন।

আর অন্যান্য এ্যাপ্লিকেশনে ব্যবহার করার জন্য নিচের বর্নিত পদ্ধতিতে কাজ করুন তাহলে ctrl + space বার চেপে বাংলা লিখতে পারবেন সব প্রোগ্রামে।

আগের মতই টার্মিনাল/শেল খুলুন এবং কমান্ড দিনঃ

gedit ব্যবহার করলে কমান্ডঃ
gedit /etc/X11/Xsession.d/90im-switch

অথবা

vi editor ব্যবহার করলে কমান্ড
vim /etc/X11/Xsession.d/90im-switch

খুব সাবধানতার সাথে কমান্ডটি দিবেন। যদি 90im-switch নামে কোন ফাইল থাকে তাহলে সেটি খুলবে নতুবা নতুন একটি ফাইল তৈরী হবে ঐ নামে।

export XMODIFIERS="@im=SCIM"
export XIM_PROGRAM="scim -d"
export GTK_IM_MODULE="scim"
export QT_IM_MODULE="scim"

যদি ফাইলে কোন কিছু লেখা থাকে সব মুছে দিন। vim এডিটর এ খুললে কয়েকবার dd চাপুন তাহলে এক লাইন করে মুছতে পারবেন। আর geditor এ খুললে মাউস দিয়ে সিলেক্ট করে মুছে দিন। এবার উপরের ৪টি লাইন কপি করে পেস্ট করুন এ ফাইলে অথবা নিজে টাইপ করে দিতে পারেন। যদি কপি করতে চান তাহলে কপি করে পেস্ট করার পর "(ডাবল ইনভার্টেড) কমাগুলিকে মুছে নিজে হাতে টাইপ করে দিন। অনেক সময় এগুলি বিভিন্ন এডিটরে বিভিন্ন রকম ক্যারেক্টার হিসেবে দেখায় তাই কপি পেস্ট করলে অন্য ক্যারেক্টারে রূপান্তরিত হয়ে যায়।

সবশেষে সেভ করুন সেভ বাটনে ক্লিক করে। vi এডিটর হলে কমান্ড দিন :wq।

এবার মেশিন রিস্টার্ট করুন।

এখন যেকোন প্রোগ্রাম থেকেই ctrl + space bar চাপ দিয়ে বাংলা লেখা শুরু করতে পারবেন। লেখার শুরুতেই দেখতে পাবেন কি-বোর্ড এর মত একটি আইকন যেখানে M17-bn-unijoy কথাটি লেখা আছে। এটিতে ক্লিক করেও কি-বোর্ড পরিবর্তন করতে পারবেন।

এখন যে-কোনো একটি এ্যপ্লিকেশন চালু করে Ctrl এবং Space Bar চাপ দিলে বাংলা লেখা যাবে।

যদি এরপরও সমস্যা হয় তবে System--> Administration --> Scim Input Method Setup এ ক্লিক করে বাংলা কি-বোর্ড (ইউনিজয়) এর জন্য ctrl + spacebar কে কনফিগার করে দিন। এখান থেকে আপনি প্রভাত বা অন্যান্য কি-বোর্ড ও সেট করতে পারবেন। আশা করি আর সমস্যায় পড়তে হবে না লিনাক্সে বাংলা লেখা নিয়ে।

ডাউনলোড করুন আমার তৈরী ইনস্টলারঃ

http://www.mediafire.com/?z4y0gkqncj4

লিনাক্সে নির্দিষ্ট প্যাকেজের অফলাইন ইনস্টলার তৈরী করা

Posted: Wed May 20, 2009 1:59 pm
by আশাবাদী
জাহিদ ভাই অতি সুদীর্ঘ লেখা (আমি নিজেও পড়তে পড়তে আগে কি পড়েছি ভুলে গেছি :ttt: ), ছোট আকারে টিপস্ হিসেবে দিন তাহলেই নতুনরা বুঝতে পারবে, বেশি দীর্ঘ হলে ওরে বাবা আমার জন্য না অবস্থা হবে। প্রথমে ছোট একটা টিপস্ দিন, এরপর আরেকটি পোস্টে বিস্তারিত ব্যাখ্যা করুন।

১) লাইভ সিডি দিয়ে ইনস্টলেরও প্রয়োজন নেই, সিন্যাপ্টিক দিয়ে ইনস্টলের সময় Download Only চিহ্নিত করে দিলেই deb প্যাকেজগুলো নেমে আসবে, /var/cache/apt/archives থেকে কপি করে নিতে পারবেন।

২) ডেব প্যাকেজ রিপোতে জিপ/টার আর্কাইভ করা অবস্থায় ডাউনলোড হয় না সরাসরি ডেব আকারেই আসে।

৩) আপনি তো ইনস্টলার বানাননি, আপনি কেবল ডেব প্যাকেজগুলো দিয়েছেন :) (বড়জোর ছোট আকারের রিপো :ttt:)


আরও সহজ একটা পদ্ধতি:
এটা সহজেই একটা র‍্যাপার বানিয়ে কাজ করানো যাবে। উদাহরণ হিসেবে তারুণ্য ভাইয়ের UEC প্যাকটি খুলে দেখুন।

সেখানে কি হয়েছে?
১) একটি ফোল্ডার বানানো হয়েছে deb ফাইল নামে
(লোকেশন /UEC-pack/deb)

২) একটি শেল র‍্যাপার বানানো হয়েছে install.sh নামে।
install.sh এর ভিতরে কমান্ড লেখা হয়েছে

Code: Select all

#!/bin/bash

sudo dpkg -i deb/*.deb
অর্থাৎ উক্ত install.sh রান করলে সে deb ফোল্ডারের (/UEC-Pack/deb) মধ্যে রাখা সব ডেব প্যাকেজগুলো (*deb) ইনস্টল করা শুরু করবে।

আপনি বন্ধুদের এই পদ্ধতিটাও দিতে পারেন।
ডাউনলোডকৃত ডেব প্যাকেজগুলো কপি করে নিয়ে গিয়ে deb ফোল্ডারে ঢুকিয়ে দিন। এরপর install.sh রান করুন তাহলেই হয়ে গেলো কমান্ড লাইন আর ধরা লাগবে না।

=======
আপনার ইউনিজয় প্যাকটিও এভাবে বানাতে পারেন:

১) আগে একটি ডেব ফোল্ডার করলেন
/scim-unijoy/deb

২) install.sh বানালেন জিএডিট বা অনুরূপ টেক্সট এডিটর দিয়ে। তাতে লিখুন

Code: Select all

#!/bin/bash

sudo dpkg -i deb/*.deb
ব্যাস হয়ে গেলো :) এখন গ্রাফিক্যালই ইনস্টল করতে পারবেন সবাই।

আশা করি পদ্ধতিটি অনুসরণ করবেন

লিনাক্সে নির্দিষ্ট প্যাকেজের অফলাইন ইনস্টলার তৈরী করা

Posted: Wed May 20, 2009 2:00 pm
by জাহিদ সুমন
আপনার পরামর্শটি আমি আগেই ভেবেছি। মূলত প্যাকেজ ম্যানেজমেন্ট এর কনসেপ্টটিকে একটু ক্লিয়ার করতে চেয়েছি এখানে। আপনার পদ্ধতিটি আমি নিজের জন্য আগে থেকেই ব্যবহার করে থাকি। তবে এখানে উল্লেখ করার কথা আমি লেখার শেষ দিকে এসে ভুলে গিয়েছিলাম। যাই হোক আপনি তো সেটি করে দিলেন। সবাই আপনার লেখা থেকেই আশা করি বুঝতে পারবেন। আবারো ধন্যবাদ আপনাকে।

লিনাক্সে নির্দিষ্ট প্যাকেজের অফলাইন ইনস্টলার তৈরী করা

Posted: Wed May 20, 2009 4:38 pm
by invarbrass
আপনার বিরাট পোস্টটির জন্য ধন্যবাদ। তবে শিরোনামটি পড়ে একটু কনফিউজড হয়েছিলাম । আমি ভেবেছিলাম সফটোয়্যার কম্পাইল করার পর কম্পাইলড বাইনারী থেকে rpmbuild/checkinstall বা সরাসরি Makefile এর মাধ্যমে .deb/.rpm প্যাকেজ বানানোর পদ্ধতি নিয়ে পোস্ট করবেন। ;-)

@আশাবাদী
এই পদ্ধতি সব জায়গায় কাজে আসবেনা। যেসব প্যাকেজের ডিপেন্ডেন্সী ইন্সটল করা নাই, সেগুলো সরাসরি dpkg করতে গেলে কাজ করবেনা। নতুন ইউজাররা কোন প্যাকেজটা আগে, কোনটা পরে ইনস্টল করতে হবে সেটাও বুঝবেনা। তার চেয়ে সবগুলো প্যাকেজ ক্যাশ-এ কপি করে দিলে সবগুলো নিজেনিজেই ইনস্টল হয়ে যাবে।

লিনাক্সে নির্দিষ্ট প্যাকেজের অফলাইন ইনস্টলার তৈরী করা

Posted: Wed May 20, 2009 4:59 pm
by জাহিদ সুমন
আপনার বিরাট পোস্টটির জন্য ধন্যবাদ। তবে শিরোনামটি পড়ে একটু কনফিউজড হয়েছিলাম । আমি ভেবেছিলাম সফটোয়্যার কম্পাইল করার পর কম্পাইলড বাইনারী থেকে rpmbuild/checkinstall বা সরাসরি Makefile এর মাধ্যমে .deb/.rpm প্যাকেজ বানানোর পদ্ধতি নিয়ে পোস্ট করবেন। ;-)
নামটা আসলে কি দিব ইনভারব্রাশ ভাই তা নিয়ে কিছুটা কনফিউজড ছিলাম আমি নিজেও। তবে আপনার মত এক্সপার্ট ছাড়া অন্য সাধারন ব্যবহারকারীরা মনে হয় কনফিউজড হবে না। তাদের উদ্দেশ্য শুধুমাত্র প্রোগ্রামটি ইনস্টল করা ও ব্যবহার করা। তারপরও নামটি কি দিলে ভাল হয় পরামর্শ দিবেন আশা করি। আপনার মন্তব্যের জন্য ধন্যবাদ।

লিনাক্সে নির্দিষ্ট প্যাকেজের অফলাইন ইনস্টলার তৈরী করা

Posted: Wed May 20, 2009 7:01 pm
by অয়ন খান
জাহিদ ভাই পড়ে ভাল লাগল। আসলেই এরকম একটি পোষ্টের দরকার ছিল।

লিনাক্সে নির্দিষ্ট প্যাকেজের অফলাইন ইনস্টলার তৈরী করা

Posted: Wed May 20, 2009 7:40 pm
by আশাবাদী
@invarbrass ভাই সেটাই তো বললাম সব ডেব প্যাকেজই রাখতে হবে। ডিপেন্ডেন্সিসহ। ডিপেন্ডেন্সি না থাকলে তো ডাবল ক্লিকেও কাজ করবে না। উনি যেহেতু লাইভ সিডি থেকে ডাউনলোড করবেন তাতে ডিপেন্ডেন্সিও ডাউনলোড হয়ে যাবে।

এরপর ডিপেন্ডেন্সি সহ সকল প্যাকেজই deb ফোল্ডারের মধ্যে রেখে দিলেই হবে।

লিনাক্সে নির্দিষ্ট প্যাকেজের অফলাইন ইনস্টলার তৈরী করা

Posted: Fri Jul 10, 2009 2:34 am
by সাইফ
লিনাক্স নিয়ে যত গুলা পোস্ট করেছেন তার মধ্যে সবচেয়ে ভাল পোষ্ট এইটা। :thumb:
আশাবাদী ভাইকেও অনেক ধন্যবাদ। অনেক কাজের কিছু শিখলাম। :D/

আপডেট:
@আশাবাদী ভাই, install.sh বানাতে পারছি না.. :-((( । আমি gedit চালু করে তাতে আপনার দেওয়া কোড গুলা লিখেছি / কপি-পেস্ট করেছি। Save as থেকে install.sh নাম দিয়ে সেভ করেছি। কোন কাজ হয় না। install.sh ফাইটা gedit দিয়ে খুলে। শুধু #!/bin/bash লেখাটি নীল রঙ এবং sudo লেখাটি লাল রঙ ধারন করেছে, বাকি সব ঠিক আছে। আশাকরি আপনি সাহায্য করবেন।

লিনাক্সে নির্দিষ্ট প্যাকেজের অফলাইন ইনস্টলার তৈরী করা

Posted: Fri Jul 10, 2009 8:00 am
by জাহিদ সুমন
কিছু অফলাইন ইনস্টলার তৈরী করে সেগুলির একটি লিংক উবুন্তু ইনডেক্সে দিয়ে দিলে কেমন হয়? ফোরামের এ্যাডমিন ও মডারেটরগন এ ধরনের কিছু করার কথা ভাবছেন কি? তাহলে অনেকেই উপকৃত হতেন যাদের নেট নেই বাসাতে।

কয়েকটি প্রস্তাবঃ

১. মাল্টিমিডিয়া কোডেক
২. ভিএলসি প্লেয়ার
৩. এম প্লেয়ার
৪. স্কিম ইনপুট মেথড ইনস্টলার ফর ইউনিজয় কি-বোর্ড উইথ ইউনিকোড বাংলা ফন্টস
৫. কিছু মজার গেম লিনাক্সের জন্য

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

লিনাক্সে নির্দিষ্ট প্যাকেজের অফলাইন ইনস্টলার তৈরী করা

Posted: Fri Jul 10, 2009 1:12 pm
by অয়ন খান
সাইফ wrote:আপডেট:
@আশাবাদী ভাই, install.sh বানাতে পারছি না.. :-((( । আমি gedit চালু করে তাতে আপনার দেওয়া কোড গুলা লিখেছি / কপি-পেস্ট করেছি। Save as থেকে install.sh নাম দিয়ে সেভ করেছি। কোন কাজ হয় না। install.sh ফাইটা gedit দিয়ে খুলে। শুধু #!/bin/bash লেখাটি নীল রঙ এবং sudo লেখাটি লাল রঙ ধারন করেছে, বাকি সব ঠিক আছে। আশাকরি আপনি সাহায্য করবেন।
  • আপনি কি ঐ ডিরেক্টরিতে deb নামের কোন ফোল্ডার তৈরী করেছেন?
  • নটিলাসের behaviour (Executable Text Files) কি পরিবর্তন করেছেন?
জাহিদ সুমন wrote:কিছু অফলাইন ইনস্টলার তৈরী করে সেগুলির একটি লিংক উবুন্তু ইনডেক্সে দিয়ে দিলে কেমন হয়? ফোরামের এ্যাডমিন ও মডারেটরগন এ ধরনের কিছু করার কথা ভাবছেন কি? তাহলে অনেকেই উপকৃত হতেন যাদের নেট নেই বাসাতে। . . .
এরকম একটি ইনস্টলার তৈরী করেছিলাম। বিস্তারিত এই টপিক - এ পাবেন।