7/06/2009

লিনক্ষ: স্ল্যাকওয়্যারে বাংলা টাইপ, xkblayout দিয়ে

স্ল্যাকওয়্যারে লিনাক্সের xkblayout ব্যবহার করে কিবোর্ড লেখার কাজটা অনেক সহজ। প্রয়োজন পড়েছিল, SCIM ঠিকমত ইন্সটল করতে না পারায়। কিন্তু সেখানেও সমস্যা। কারণ deadkey ব্যবহারের ব্যাপারটা ঠিকমত রপ্ত হল না। যাই হোক বহুলপ্রচলিত বিজয় এবং তার ইউনিকোড উত্তরসুরী ইউনিজয় (কারণ ক্যারেক্টার রেপ্রেজ়েন্টেশনের কারণে ইউনিকোডে সমস্ত কার ব্যঞ্জনের পরে টাইপ করে হয়, এবং ও-কার ও ঔ-কার একসাথে টাইপ করতে হয়) কোনওটাই হুবহু ব্যবহার করা গেল না। অগত্যা, অলটারনেট গ্রাফিক্স এবং সাথে শিফট কি। অন্যভাবে করা যেত, তবে মানুষের কিবোর্ডিং হ্যাবিট পালটানো একটু কঠিন, বিশেষত পরিণত বয়সে। যে কেউ নিচের কিবোর্ডটি লিনাক্সে বাংলা লেখার জন্য ব্যবহার করতে পারেন, যদি অবশ্য কি বোর্ডে হরফের অবস্থান পছন্দ হয়। কারণ ইউনিজয়ের যতটা রাখা সম্ভব তার পুরোটা রাখা হয়েছে, সাথে কাজের সুবিধার জন্য কিছু বাড়তি হরফও রাখা হয়েছে। xkb সিম্বল ডেস্ক্রিপশনগুলো কপি করে নিয়ে xkben নামের একটি ফাইলে /etc/X11/xkb/symbols ডিরেক্টরিতে সেভ রাখুন।
-------------------------------->8--------------------------------
// XKBen Bengali keyboard overlay
// based on Bijoy and Unijoy overlays
// abu jar m akkas 2009

partial default alphanumeric_keys
xkb_symbols "xkbengali" {
name[Group1]= "xkben";

key <TLDE> { [ 0x100200c, 0x100200d, 0x100200b, voidsymbol ] };
key <AE01> { [ 0x10009e7, 0x1000021, 0x10009f4, voidsymbol ] };
key <AE02> { [ 0x10009e8, 0x1000040, 0x10009f5, voidsymbol ] };
key <AE03> { [ 0x10009e9, 0x1000023, 0x10009f6, voidsymbol ] };
key <AE04> { [ 0x10009ea, 0x10009f3, 0x10009f7, voidsymbol ] };
key <AE05> { [ 0x10009eb, 0x1000025, 0x10009f2, voidsymbol ] };
key <AE06> { [ 0x10009ec, 0x10000f7, 0x100005e, voidsymbol ] };
key <AE07> { [ 0x10009ed, 0x1000981, 0x10009fa, voidsymbol ] };
key <AE08> { [ 0x10009ee, 0x10000d7, 0x100002a, voidsymbol ] };
key <AE09> { [ 0x10009ef, 0x1000028, voidsymbol, voidsymbol ] };
key <AE10> { [ 0x10009e6, 0x1000029, 0x10009f8, 0x1000970 ] };
key <AE11> { [ 0x100002d, 0x100005f, 0x10009f9, voidsymbol ] };
key <AE12> { [ 0x100003d, 0x100002b, 0x1002260, voidsymbol ] };
key <AD01> { [ 0x1000999, 0x1000982, 0x100098c, voidsymbol ] };
key <AD02> { [ 0x10009af, 0x10009df, 0x10009e1, voidsymbol ] };
key <AD03> { [ 0x10009a1, 0x10009a2, 0x1000988, voidsymbol ] };
key <AD04> { [ 0x10009aa, 0x10009ab, voidsymbol, voidsymbol ] };
key <AD05> { [ 0x100099f, 0x10009a0, voidsymbol, voidsymbol ] };
key <AD06> { [ 0x100099a, 0x100099b, voidsymbol, voidsymbol ] };
key <AD07> { [ 0x100099c, 0x100099d, 0x100098a, voidsymbol ] };
key <AD08> { [ 0x10009b9, 0x100099e, 0x1000990, 0x10009bd ] };
key <AD09> { [ 0x1000997, 0x1000998, 0x1000994, voidsymbol ] };
key <AD10> { [ 0x10009dc, 0x10009dd, voidsymbol, voidsymbol ] };
key <AD11> { [ 0x100005b, 0x100007b, voidsymbol, voidsymbol ] };
key <AD12> { [ 0x100005d, 0x100007d, voidsymbol, voidsymbol ] };
key <AC01> { [ 0x10009c3, voidsymbol, 0x100098b, voidsymbol ] };
key <AC02> { [ 0x10009c1, 0x10009c2, 0x1000989, voidsymbol ] };
key <AC03> { [ 0x10009bf, 0x10009c0, 0x1000987, voidsymbol ] };
key <AC04> { [ 0x10009be, 0x1000985, 0x1000986, voidsymbol ] };
key <AC05> { [ 0x10009cd, 0x1000964, voidsymbol, 0x1000965 ] };
key <AC06> { [ 0x10009ac, 0x10009ad, 0x10009f0, voidsymbol ] };
key <AC07> { [ 0x1000995, 0x1000996, voidsymbol, voidsymbol ] };
key <AC08> { [ 0x10009a4, 0x10009a5, voidsymbol, voidsymbol ] };
key <AC09> { [ 0x10009a6, 0x10009a7, voidsymbol, voidsymbol ] };
key <AC10> { [ 0x100003b, 0x100003a, 0x100201b, 0x100201f ] };
key <AC11> { [ 0x1002018, 0x1002019, 0x100201c, 0x100201d ] };
key <BKSL> { [ 0x1000983, 0x10009ce, 0x1000027, 0x1000022 ] };
key <AB01> { [ 0x1002013, 0x1002014, voidsymbol, 0x10009e2 ] };
key <AB02> { [ 0x10009cb, 0x10009cc, 0x1000993, 0x10009d7 ] };
key <AB03> { [ 0x10009c7, 0x10009c8, 0x100098f, 0x10009e0 ] };
key <AB04> { [ 0x10009b0, 0x10009b2, 0x10009f1, 0x10009e3 ] };
key <AB05> { [ 0x10009a8, 0x10009a3, voidsymbol, 0x10009c4 ] };
key <AB06> { [ 0x10009b8, 0x10009b7, voidsymbol, voidsymbol ] };
key <AB07> { [ 0x10009ae, 0x10009b6, voidsymbol, voidsymbol ] };
key <AB08> { [ 0x100002c, 0x100003c, 0x1000324, 0x1002264 ] };
key <AB09> { [ 0x100002e, 0x100003e, 0x10009bc, 0x1002265 ] };
key <AB10> { [ 0x100002f, 0x100003f, voidsymbol, voidsymbol ] };

modifier_map Shift { Shift_L, Shift_R };

include "level3(ralt_switch_multikey)"
};
-------------------------------->8--------------------------------
যেহেতু এটি একটি অতিরিক্ত কিবোর্ড লেআউট হিসেবে কাজ করবে তাই বাংলাদেশের সিম্বল ফাইল bd বা ভারতের সিম্বল ফাইল in-এর নিচে নিচের পাঁচ লাইন যোগ করতে হবে। অন্য কোনও দেশের সিম্বল ফাইলেও যোগ করা যায়, তেমন কোনও সমস্যা না থাকলে।

// XKBen
xkb_symbols "xkben" {
include "xkben(xkbengali)"
name[Group1]= "Bangladesh - XKBen";
};

এরপর ডিরেক্টরিতে থাকা অবস্থায় xkbcomp -lhlpR '*' -o ../symbols.dir কমান্ডটি দিলে নতুন কিবোর্ড সিম্বল ফাইলটি ইন্সটল্‌ড হয়ে যাবে। এরপর গ্রাফিকাল এনভায়রনমেন্ট startx দিয়ে এক্স-উইন্ডো চালু করে xterm চালিয়ে kcontrol কমান্ড দিলে কেডিই কন্ট্রোল মেনু আসবে। সেখান থেকে কিবোর্ড সেটিং-এ গিয়ে বাংলাদেশ যোগ করে, xkben বেছে নিলে টাস্কবারে একটু কিবোর্ডের আইকন আসবে, এরপর আইকনে ক্লিক করে কিবোর্ড সিলেক্ট করা যাবে।



উপরে কিবোর্ড লেআউটের ছবি দেওয়া হল।

4/14/2009

লিনক্ষ: স্ল্যাকওয়্যার ১২.২ ইনস্টলেশনের পর

স্ল্যাকওয়্যার ১২.২ ইনস্টলেশনের পর প্রথম তিনটি কাজ করার জন্য মুরুব্বিদের নির্দেশ তা হল ফাইলের ডাটাবেস তৈরি করা, সিস্টেমের সিকিউরিটি একটু জোরদার করা এবং একজন ইউজার তৈরি করা।

প্রথমে /var/lib/slocate/-এ slocate.db নামে একটি ডাটাবেস ফাইল তৈরি করতে হবে, যদি তেমন কোনও ডাটাবেস না থেকে থাকে। কমান্ডটি হল: touch /var/lib/slocate/slocate.db এরপর updatedb দিয়ে ডাটাবেসটি তৈরি করতে হবে; শেষে & কমান্ডটি দিয়ে কাজটি ব্যাকগ্রাউন্ডে করানো যায়। পরে যে কোনও সময় locate বা slocate এ পর ফাইলের নাম লিখে খোঁজা যায়।

এর পর সিস্টেমের সিকিউরিটি নিয়ে কাজ। পাল্টানোর আগে /etc-তে থাকা তিনটি ফাইলের ব্যাকআপ নিয়ে নেওয়া উচিত: hosts.allow, hosts.deny আর inetd.conf। ইম্যাক্স বা ভিআই বা পিকো যে কোন এডিটরে দ্বিতীয় ফাইলটি খুলুন আর লিখুন ALL : ALL। সেভ করে বেরিয়ে আসুন। লাইনটির অর্থ হল সিস্টেমের সাথে কেউই কথা বলবে না। এবার প্রথম ফাইলটি খুলে লিখুন :
ALL : 127.0.0.1 অর্থ হল লোকালহোস্ট অর্থাৎ নিজের সাথে কথা বলবে
ALL : 192.168.1. অর্থ হল লোকালহোস্ট ল্যান ব্যবহার করতে পারবে। শেষের ফুলস্টপ-টি কিন্তু ফালতু নয়।

এবার বেরিয়ে এসে তৃতীয় ফাইলটি খুলে তিনটি লাইনের সামনে হ্যাশ চিহ্ন বসিয়ে দিন যেন সেগুলো কমেন্ট হিসেবে গণ্য হয়:
# time
# time
# comsat
কিন্তু নিচের লাইনের আগে কোনও চিহ্ন বসাবেন না।
auth
ফাইলটি সেভ করে বেরিয়ে আসুন।
এবার adduser কমান্ড দিয়ে একজন ইউজার তৈরি করুন, কারণ root হিসেবে কাজ করা বেশ বিপদজনক। ইউজারকে কিছু ক্ষমতা দেবার জন্য আরেকটি ফাইলে কিছু পরিবর্তন করতে হবে।

স্ল্যাকওয়্যার বা লিনাক্সের /etc/ ডিরেক্টরিতে sudoers বলে একটি ফাইল আছে। এই ফাইলে কিছু পরিবর্তন করে সাধারণ ইউজারকে কিছু কাজ করার ক্ষমতা দেওয়া যায়। তবে অনবধানতায় অনর্থ হয়ে যেতে পারে। তাই visudo কমান্ড দিয়ে ফাইলটি খুললে সিস্টেমই অনেকটা দায়িত্ব নিয়ে নেবে। ফাইলটি এডিট করার আগে vi এডিটরের নিয়ম কানুন একটু জেনে নেওয়া প্রয়োজন। ফাইলের একদম শেষে লিখতে হবে, প্রথমে ইউজারনেম, ফাঁকা দিয়ে ALL=NOPASSWD: এবং শেষে যে প্রোগ্রামটি চালানোর অনুমতি দিতে হবে তার নাম, পাথ (path) সহ, নিচের মত করে।

username ALL=NOPASSWD: /sbin/shutdown

বেরিয়ে এসে নতুন করে লগ-ইন করলে, যে ইউজারকে যার অনুমতি দেওয়া হয়েছে তারা সে কাজটি করতে পারবে।

1/28/2009

লিনক্ষ: রেডহ্যাট ৭ থেকে ফেডোরা কোর ৪, পরে স্ল্যাকওয়্যার

শুরুটা খুব বেশি দিনের নয়। প্রায় দশ বছর। প্রথমে রেড‌হ্যাট ৭, পরে রেডহ্যাট ৯, দুয়েকদিনের জন্য রেডহ্যাট ১১, চলতি বুকনিতে যা ফেডোরা কোড ২; এবং শেষে রেডহ্যাট ১৩ বা ফেডোরা কোর ৪; কোর ৩ বাজারে পাওয়া যাচ্ছিল না বলে। তা’বলে ২০০৮-এর শেষে কোর ৪ কেন? কারণ, পিসিটা কেনা ২০০০ সালে, সেলেরন ৭০০ মেগাহার্টস, ৩০ গিগাবাইট হার্ডডিস্ক পরে পাল্টে ৪০ গিগাবাইট। প্রথমে মাসে একদিন, পরে দু’মাসে একদিন; এভাবে কমে কমে একসময় আবার বাড়তে বাড়তে সপ্তাহে একদিনে গিয়ে পৌঁছয়। বেশ কয়েক মাস ধরে প্রতিদিনই লিনাক্সের ব্যবহার, বাসায় এবং ব্যক্তিগত কাজে। পুরোপুরি লিনাক্সে কাজ করতে গিয়ে বেশ কিছু সমস্যার দেখা মিলেছে। বোধকরি সেগুলোর সমাধানের কাহিনি অন্যদের কাজে আসতে পারে।

প্রয়োজন ছিল Gnumeric এবং Abiword-এর ব্যবহারের। কিন্তু ফেডোরা ৪ থেকে প্রোগ্রামদুটো বাদ দেওয়া হয়েছে। তবুও ইনস্টল করা যায়, কিন্তু কিছুতেই ইনস্টল করা যাচ্ছিল না। Yum-ও ঠিক মত কাজ করছিল না। মোটোরোলা এল৭ দিয়ে ইন্টারনেটে যেতে পারলেও আরেকটা CDMA মডেমকে নেওয়াতে ঝামেলা হচ্ছিল। অন্যদিকে কম্পিউটারটা অনেক পুরনো হওয়ায়, ফেডোরার পরের ভার্শনগুলো ইনস্টল করতে চাইছিলাম না। বেশ কিছুদিন আগে থেকে স্ল্যাকওয়্যার সম্পর্কে বেশ উৎসাহী হয়ে উঠি। হঠাৎ ঠিক করলাম স্ল্যাকওয়ারের ব্যবহার করব। সাথে ছোট একটি পার্টিশনে উইন্ডোজ (এক্সপি) থাকবে, দুয়েকটা কাজের জন্যে। আন্তর্জাতিক ধ্বনিতাত্ত্বিক বর্ণমালার একটি সফ্টওয়্যার লিনাক্সে কখনও দেখিনি। সেই ১৯৯১ সাল থেকে ফন্টোগ্রাফারের ব্যবহার। ফন্টফর্জে অবশ্যই কাজ চলবে, তবে ফন্টোগ্রাফার ছাড়তে একটু কষ্ট হচ্ছিল আর অ্যাডোবির ইলাস্ট্রেটরটা একটু প্রয়োজন ছিল। আর মোবাইলের সফ্টওয়্যার, যার অনেকটা কাজ Kmobiletools-এ চলত। তাই সেই ছোট করে উইন্ডোজ, ১০ গিগাবাইটে। পরে আরেকটি হার্ডডিস্ক ড্রাইভ, এবং সেটিও ৪০ গিগাবাইটের, কিনে পুরনো ফাইলের সব ব্যাকআপ নিলাম। প্রাইমারি মাস্টার লিনাক্সের ভাষায় যা hda (আইডিই ড্রাইভ হবার কারণে) সেখানে থাকল ডুয়াল বুট গ্রাব দিয়ে, উইন্ডোজ এক্সপি প্রফেশনাল এডিশন (অবশ্যই পুরো পয়সা দিয়ে কেনা নয়) এবং ফেডোরা ৪।

স্ল্যাকওয়্যারের সাইট থেকে সিডির ইমেজ নামিয়ে বার্ন করে একদিন হঠাৎ নেমে পড়া ততদিন পর্যন্ত আমার কাছে এক দুঃসাধ্য কাজে। তিনদিনে চারবার পার্টিশন ভাঙ্গা, সাতবার ইনস্টল করা এবং শেষ পর্যন্ত ইনস্টল-করা উইন্ডোজ খোয়ানো। তবে এখন বেশ চলছে। পুরোটাই স্ল্যাকওয়্যার। ১২.০২। hdb-তে ১৫ গিগাবাইটের একটি উইন্ডোজ পার্টিশন, কিছু সফ্টওয়্যারের ব্যাকআপ রাখার জন্য। তবে সাতবার ইনস্টল এবং পুরো পার্টিশন ভাঙ্গার কারণ প্রতিবার ইনস্টল করার পর কোনও দুর্বোধ্য কারণে স্ল্যাকওয়্যার হার্ডড্রাইভ থেকে বুট করছিল না। কারণ কোনভাবেই এমবিআর বা সুপারব্লকে লিলো রাখা যাচ্ছিল না। প্রতিবারই সিডি দিয়ে বুট করে চালানোর পর আবার কোনওবারই উইন্ডো চালানো যাচ্ছিল না। এক্স-উইন্ডো না চলবার কারণ বোধ করি স্ল্যাকওয়্যারের এজিপি না চিনতে পারা। কারণ xorgsetup চালিয়ে গ্রাফিক্স কার্ড চিনিয়ে দিতেই এক্স-উইন্ডোতে অবাধ বিচরণ। কিন্তু তখনও পর্যন্ত লিলোর সমাধান হয় নি। এমবিআর বা সুপারব্লকে লিলো কেন রাখা যাচ্ছিল না তা নিয়ে এখনও কিঞ্চিৎ অজ্ঞতা রয়েই গেছে। তবে একটা জিনিস মোটামুটি বুঝতে পারা যাচ্ছিল যে লিলো কোনও কারণে গ্রাফিক্সকার্ড পাচ্ছিল না। তাই শুরু হল লিলো সম্মার্জন। দেখতে হল ঠিক নিচের মত:

lba32 % ১০২৪শের পরের সাইকেলের জন্য
boot = /dev/hda
prompt
timeout = 300
change-rules
reset
vga = normal
image = /boot/vmlinuz
root = /dev/hda1
label = Slackware
read-only

/etc/lilo.conf-এর সম্মার্জন শেষে /sbin/lilo -v চালানো পর দেখি স্ল্যাকওয়্যার নিজেনিজেই হার্ডড্রাইভ থেকে বুট করছে।