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

তিনটি প্রশ্ন এই দুইয়ের পার্থক্য করে: কোন বাস্তবায়ন, কোন বেস রিলিজ, এবং আপডেটের মালিক কে।

ভার্সন নম্বর কোনো বৈশিষ্ট্যের চাহিদা নয়

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

স্পষ্ট করুন নির্দেশনাটির অর্থ ‘এই বৈশিষ্ট্য বা তার পরের’ না ‘ঠিক এই বিল্ডটিই পরীক্ষিত’। দুই উত্তর দুই ভিন্ন রিপোজিটরিতে নিয়ে যায়।

কোডনেমকে বেস রিলিজের সঙ্গে মিলতে হবে

রিপোজিটরিগুলো ডিস্ট্রিবিউশনের কোডনেম দিয়ে চিহ্নিত হয়, আর কোনো ডেরিভেটিভের রিলিজ নাম তার বেসের কোডনেম নয়। /etc/os-release পড়ে VERSION_CODENAME ও ID_LIKE দেখুন, তারপর নিশ্চিত করুন ডেরিভেটিভটি কোন বেস রিলিজ অনুসরণ করে। যে পুরোনো উত্তর একটি ডেস্কটপ রিলিজকে একটি উবুন্টু কোডনেমের সঙ্গে মিলিয়েছিল, তা পরেরটি সম্পর্কে কিছুই বলে না। কোডনেম আন্দাজ করাই এমন পরিস্থিতি তৈরি করে যেখানে সিস্টেম ভিন্ন C লাইব্রেরির বিপরীতে নির্মিত প্যাকেজ টেনে আনে।

কিছু যোগ করার আগে প্যাকেজ ম্যানেজার ইতিমধ্যে কী দেয় তা দেখুন apt-cache policy openvpn দিয়ে। যদি ইনস্টল করা ক্যান্ডিডেটটি চাহিদা মেটায়, তবে রিপোজিটরির প্রশ্নটিই থাকে না।

আপস্ট্রিম রিপোজিটরি আসলে কীসের সঙ্গে বাঁধা

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

আপনি যে বাস্তবায়ন বেছেছেন তার রিপোজিটরি গাইড পড়ুন এবং পুরোনো ব্লগের নকল নয়, তার চলতি সামঞ্জস্য সারণি অনুসরণ করুন।

ইনস্টল করা মানে ইন্টিগ্রেট করা নয়

শুধু openvpn বাইনারি বদলালে অনুপস্থিত NetworkManager প্লাগইন, ইমপোর্ট ডায়ালগ বা ডেস্কটপ এডিটর যোগ হয় না। সেগুলো network-manager-openvpn ও তার ডেস্কটপ সঙ্গীর মতো আলাদা প্যাকেজে থাকে, আর ক্লায়েন্ট লাইব্রেরির সঙ্গে তাদের নিজস্ব ভার্সন সম্পর্ক আছে। OpenVPN 3 Linux আরেকটি ভিন্ন বাস্তবায়ন, নিজস্ব সেশন ও কনফিগারেশন মডেল নিয়ে, তাই এর প্যাকেজগুলো 2.x প্রোফাইল কর্মপ্রবাহের সরাসরি বিকল্প নয়।

কিছু ইনস্টল করার আগে ঠিক করুন চলমান টানেলটির মালিক কোন কম্পোনেন্ট। একই হোস্টে দুই ম্যানেজার দুই ক্লায়েন্টের মতোই একই ডুপ্লিকেট-টানেল বিভ্রান্তি তৈরি করে।

তিনটি সিদ্ধান্ত লিখে রাখুন

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

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

সম্পর্কিত নিবন্ধ