লিনাক্স মানে স্বাধীনতা। মালিকানাধীন অপারেটিং সিস্টেমগুলো সাধারণত প্রতিটি অ্যাপ টাইপের জন্য একটি ডিফল্ট নির্দেশ করে (যেমন ওয়েব ব্রাউজার), কিন্তু লিনাক্স আপনার সিস্টেমকে আপনার পছন্দ অনুযায়ী কাস্টমাইজ করার টুল দেয়। আপনি একই টাইপের যত চাইতেই প্রোগ্রাম রাখতে পারেন। এবং update-alternatives ঠিক এই কাজে সাহায্য করে—অপশনগুলোয় সুইচ করার একটি সহজ পদ্ধতি।
update-alternatives সিস্টেম
বিভিন্ন অপশনগুলোতে যাওয়ার আগে, পর্দার পেছনের কী হচ্ছে সেটি একটু দেখি। একটি অপশন, editor, একটি টার্মিনাল-ভিত্তিক টেক্সট এডিটর প্রদান করে:
whereis editor
editor: /usr/bin/editor /usr/share/man/man1/editor.1.gz
এই কমান্ড দিয়ে একটি টেক্সট ফাইল খোললে সঠিকভাবেই কাজ করে:
sudo editor /etc/fstab
এটি ফাইলসিস্টেম কনফিগারেশন ফাইলটিকে একটি টেক্সট এডিটরে খুলবে... কিন্তু কোনটি? নিচের সিস্টেমে এটি nano-তে খুলল:
editor কমান্ড আসলে একটি সিমবোলিক লিংক (symlink)। nano-এর লিংক, প্রশ্ন করলে? না! কমান্ড /usr/bin/editor আসলে /etc/alternatives/editor-এর একটি লিংক। /etc/alternatives ডিরেক্টরি হলো যেখানে সিস্টেমের সকল অপশন সিমবোলিক লিংক হিসেবে ম্যানেজ করা হয়। এগুলো প্রকৃত প্রোগ্রামের দিকে নির্দেশ করে। অর্থাৎ আপনার PATH-এ একটি লিংক, যা alternatives ডিরেক্টরিতে একটি লিংকে যাচ্ছে, যা আবার প্রোগ্রামে যাচ্ছে।
আপনি حدس করলেই পারেন, update-alternatives হলো এই লিংকগুলো ম্যানেজ করার টুল। কীভাবে ব্যবহার করবেন সেটি দেখি।
update-alternatives ব্যবহারের উদাহরণ
আপনি যে অধিকাংশ update-alternatives কমান্ড ব্যবহার করবেন সেগুলো এই প্যাটার্ন অনুসরণ করে:
sudo update-alternatives [option] [alternative(s)]
উপরোক্তে, alternative(s) বলতে যে প্রোগ্রামটি আপনি ব্যবহার করবেন সেটি বোঝায়। option হলো আপনি তার সাথে কী করতে চান। editor কম্পোনেন্ট নিয়ে চালিয়ে যাওয়া যাক। যাবতীয় পরিবর্তন করার আগে বর্তমান অবস্থা জানি। display অপশন ডিটেইলস দেখাবে।
update-alternatives --display editor
শুরুর লাইনগুলো editor কমান্ডের পথ এবং বর্তমানে কী লিংক করা আছে সেটি বলে। 거기 আরও অনেক কিছু আছে, man পেজ ট্রান্সলেশন ইত্যাদি। আরও ফোকাসড list কমান্ড বিষয়টি সহজ করে দেয়:
update-alternatives --list editor
এখানে দেখা যাচ্ছে nano আসলেই editor-র একটি অপশন। আর কী কী ব্যবহার করা যায়? এখানে তিনটি অপশন আছে, যার মধ্যে VIM। config অপশন দিয়ে editor-কে VIM প্রোগ্রাম কল করতে বাধ্য করা যায়।
sudo update-alternatives --config editor
ইন্টারেক্টিভ মেনু থেকে নতুন অপশন সিলেক্ট করুন। অথবা আপনি যদি জানেন কোন প্রোগ্রাম চান, set অপশন ব্যবহার করুন:
sudo update-alternatives --set editor /usr/bin/vim.basic
এখন কিছু notable update-alternative অপশন দেখি যেগুলো আপনি ট্রাই করতে পারেন।
উল্লেখযোগ্য update-alternative অপশন
উল্লেখ্য, вже অনেক প্যাকেজ update-alternatives সিস্টেম ব্যবহার করে। আপনার সিস্টেম ম্যানেজমেন্টে কাজে আসতে পারে এমন কিছু:
update-alternatives --config java
কিছু প্রোগ্রাম নির্দিষ্ট ভার্সনের জাভা আশা বা প্রয়োজন করে। উবুন্টু-ভিত্তিক সিস্টেমে আপনি রিপোজিটরি থেকে ওপেনজেডিকে (OpenJDK) এর একাধিক ভার্সন ইনস্টল করতে পারেন, এবং অফিসিয়াল ওরেকল JRE-এর একাধিক ভার্সন ম্যানুয়ালি ইনস্টল করতে পারেন। সেগুলো অপশন হিসেবে সেট আপ করলে আপনি অন demanda জাভা এনভায়রনমেন্ট সুইচ করতে পারবেন।
নোট: জাভা-সম্পর্কিত একাধিক অপশন রয়েছে যেগুলো একসাথে আপডেট করা উচিত। সুবিধার অ্যাপ update-java-alternatives চেক করুন, যা জাভা-স্পেসিফিক কাজের কিছু অংশ আপনার জন্য করে।
update-alternatives --config x-www-browser/gnome-www-browser
এটি খুব সরল, আপনার ডিফল্ট ওয়েব ব্রাউজার সেট করতে দেবে। আপনি যদি GNOME-ভিত্তিক ডেস্কটপে কাজ করেন, gnome-www-browser-ও দেখতে পারেন।
update-alternatives --config mozilla-flashplugin
ভালো বা মন্দ, এখনও অনেক সাইট ফ্ল্যাশ ব্যবহার করে। এটি অফিসিয়াল অ্যাডোব ভার্সন এবং gnash এর মতো ওপেন সোর্স অপশনের মধ্যে সুইচ করতে সাহায্য করবে।
আপনি যদি উপলব্ধ সব অপশনের পরিসর জানতে চান, নিচের কমান্ড দিয়ে বর্তমান সেটিংসহ সব লিস্ট করুন:
update-alternatives --get-selections
আপনার অপশন কাস্টমাইজ করুন
ক্যানোনিক্যাল যা দিয়েছে সেগুলো ম্যানেজ করা ঠিক আছে। কিন্তু আপনি যদি নিজের মতো করে না পারেন, তাহলে স্বাধীনতা কahan? নিচের সেকশনে দেখব কিভাবে নিজের অপশন গ্রুপ যোগ ও মুছে ফেলবেন।
সিস্টেম থেকে অপশন যোগ করুন
সমর্থিত প্যাকেজ ইনস্টল করলে অপশনগুলো স্বয়ংক্রিয়ভাবে আপনার সিস্টেমে যোগ হয়। উদাহরণস্বরূপ, আপনি emacs ইনস্টল করলে, ইনস্টলেশন প্রসেস একটি স্ক্রিপ্ট চালাবে যা /etc/alternatives-এ প্রয়োজনীয় অপশন তৈরি করবে, প্রায়োরিটি সহ।
তবুও আপনি নিজের অপশন তৈরি করতে পারেন, যদি আপনি সাহসী হন। সেক্ষেত্রে মনে রাখবেন, আপনিই সেগুলো ম্যানুয়ালি পপুলেট করতে হবেন। উদাহরণস্বরূপ, আপনি x-word-processor নামে একটি নতুন অপশন তৈরি করলে, প্রথম এবং পরের সব প্রোগ্রাম হাতেই যোগ করতে হবে। সেগুলো রিমুভ করলেও না, নাহলে আপনার অপশন এমন একটি প্রোগ্রামের দিকে নির্দেশ করতে পারে যা আর অস্তিত্বে নেই।
চলুন x-word-processor নামে একটি গ্রুপ এবং একটা অপশন (এখানে LibreOffice Writer) যোগ করি:
sudo update-alternatives --install /usr/bin/word-processor x-word-processor /usr/bin/lowriter 40
এই কমান্ড তৈরি করবে:
- word-processor নামে একটি নতুন কমান্ড (আসলেই একটি symlink);
- x-word-processor নামে একটি নতুন alternatives গ্রুপ, যা;
- অ্যাপ্লিকেশন /usr/bin/lowriter-কে ধারণ করে (এবং ডিফল্ট হিসেবে সেট থাকে), যার;
- প্রায়োরিটি ৪০।
কমান্ড লাইন থেকে word-processor কল করলে এখন LibreOffice Writer চালু হবে (উপরোক্তে lowriter হিসেবে নির্দিষ্ট)। আপনি অন্যগুলোও (যেমন টেক্সট-মোড ওয়ার্ড প্রসেসর wordgrinder) একই কমান্ড দিয়ে যোগ করতে পারেন, রিয়েল অ্যাপ্লিকেশনটির পথ বদলিয়ে:
sudo update-alternatives --install /usr/bin/word-processor x-word-processor /usr/bin/wordgrinder 20
এখন x-word-processor গ্রুপ কোয়েরি করলে এই দুটি অপশন দেখাবে।
ডিফল্টভাবে গ্রুপ "auto" মোডে থাকে, মানে সিস্টেম এতে থাকা সর্বোচ্চ Priority (সংখ্যায়) ওالا অপশন ব্যবহার করবে—এখানে LibreOffice (৪০, বনাম wordgrinder-র ২০)। উপরে বর্ণিত config অপশন দিয়ে এটি বদলানো যায়।
সিস্টেম থেকে অপশন মুছে ফেলুন
আপনি যদি সিদ্ধান্ত নেন একটি অপশন প্রয়োজন নেই, remove অপশন দিয়ে সহজেই মুছে ফেলা যায়।
sudo update-alternatives --remove x-word-processor /usr/bin/wordgrinder
শেষে, remove-all অপশন পুরো গ্রুপই ডিলিট করবে, তার সব অপশনসহ:
sudo update-alternatives --remove-all x-word-processor
নোট করুন, এটি update alternatives এন্ট্রিগুলো মুছে ফেলে কিন্তু সেগুলো যে প্রোগ্রামের সাথে লিংক করা ছিল না।
আপনি কখনো update-alternatives ব্যবহার করেছেন? এই সম্পর্কে কোন টিপস বা ট্রিকস? কমেন্টে জানান!
Image Credit: momente via Shutterstock.com