আমি সাম্বা সম্প্রতি ইনস্টল করেছি এবং আমি /etc/samba/smb.confফাইলটি গোলযোগ করেছি । আমি কীভাবে মূল কনফিগারেশনটি ফিরে পাব?
আমি সাম্বা সম্প্রতি ইনস্টল করেছি এবং আমি /etc/samba/smb.confফাইলটি গোলযোগ করেছি । আমি কীভাবে মূল কনফিগারেশনটি ফিরে পাব?
উত্তর:
সম্পাদিত :
এটি একটি সার্ভারফল্ট প্রশ্নে চিহ্নিত করেছে । যদি dpkg-reconfigure fooকাজ না করে তবে এটি ব্যবহার করুন:
ভাঙা কনফিগারেশন ফাইলটি সরান বা পুনরায় নামকরণ করুন।
sudo mv /etc/samba/smb.conf /etc/samba/smb.conf.broken
থেকে প্রতিস্থাপনের অনুরোধ dpkg।
sudo dpkg -i --force-confmiss /path/to/samba-common.deb
এটি dpkgঅনুপস্থিত কনফিগারেশন ফাইলগুলি .deb এর সাথে প্রতিস্থাপন করতে বলে । আপনি মূল প্যাকেজটি খুঁজে পেতে /var/cache/apt/archivesপারেন .দেব ইন , বা আপনি আপনার বিতরণের সংগ্রহস্থল থেকে একই সংস্করণের একটি নতুন অনুলিপি ব্যবহার করতে পারেন।
dpkg -i --force-confnew foo.deb
এটি dpkg.deb থেকে বিদ্যমান কনফিগারেশন ফাইলগুলিকে ওভাররাইট করতে বলে । আপনি মূল প্যাকেজটি খুঁজে পেতে /var/cache/apt/archivesপারেন .দেব ইন , বা আপনি আপনার বিতরণের সংগ্রহস্থল থেকে একই সংস্করণের একটি নতুন অনুলিপি ব্যবহার করতে পারেন।
dpkgকনফিগারেশন ফাইলটিকে ওভাররাইট করতে বাধ্য করে যদি এটি অন্যথায় এটির জন্য অনুমতি চেয়ে থাকে । এটি প্যাকেজ থেকে আধ্যাত্মিক কনফিগারেশন ফাইলগুলি যাদুতে পুনরায় তৈরি করে না ।
--force-confmissপরিবর্তে আপনি চান । এই বিশেষ ক্ষেত্রে যেমন, সাম্বা, আমি মনে করি --force-confnewযে ওভাররাইট সম্পাদন করতে পারে তবে আপনি ঠিক বলেছেন যে এটি প্যাকেজ কনফিগারেশন স্ক্রিপ্টগুলির বিশদগুলির উপর নির্ভরশীল।
সংক্ষিপ্ত উত্তর: /usr/share/samba/smb.confsmb.conf ফাইলের মূল সংস্করণ।
যখন কোনও প্যাকেজের জন্য এই পরিস্থিতির মুখোমুখি হন, তখন আমি যা করি তা নিম্নলিখিতগুলির মধ্যে একটি:
আপনার সম্পাদক থেকে মূল সংস্করণটির ব্যাকআপ ফাইলগুলি পরীক্ষা করুন । আমি ইমাস ব্যবহার করি যা সাধারণত foo~ফাইলগুলি ছেড়ে যায় এবং আমি সংখ্যাসূচক সংস্করণ-নিয়ন্ত্রণ বিকল্পটি সেট করে রেখেছি তাই আসল সংস্করণটি সর্বদা থাকে foo.~1~। তবে আপনি এটি অন্য কোনওভাবে করেছেন, বা অন্য কোনও সম্পাদক ব্যবহার করেছেন। আপনার বৈশিষ্ট্যটি ইতিমধ্যে চালু না করতে আপনার সম্পাদকের কনফিগারেশনটি পরীক্ষা করে দেখুন; এটি aোকা একটি ভাল অভ্যাস।
এর সাথে প্যাকেজটি পুনরায় কনফিগার করুনdpkg-reconfigure PACKAGENAME । কখনও কখনও এই কৌশল করে। আমার অভিজ্ঞতায় এটি খুব কমই কাজ করে; এটি প্যাকেজটি কীভাবে তার কনফিগারেশন ফাইল তৈরি করছে তার উপর নির্ভর করে।
শুদ্ধ ও বাক্স পুনরায় ইনস্টল (সঙ্গে apt-get purge packagenameদ্বারা অনুসরণ apt-get install packagename)। এটি সর্বদা কাজ করা উচিত।
চরম ক্ষেত্রে আপনাকে প্যাকেজ পুনরায় ইনস্টল করার আগে কনফিগার ফাইলগুলি নিজেই সন্ধান করতে হবে এবং মুছতে হবে, তবে এটি বিরল। তবে এটি প্যাকেজের জন্য অন্য কোনও ডেটা এবং / অথবা কনফিগার করা ফাইলগুলি মুছে ফেলবে এবং এটি সর্বদা গ্রহণযোগ্য নয়।
প্যাকেজটির জন্য উত্স কোডটি ডাউনলোড করুন ( apt-get source foo) এবং দেখুন যে সেখানে কোনও ফাইল হিসাবে আসল কনফিগারেশন ফাইল উপস্থিত রয়েছে। যাইহোক, এটি হতে পারে যে কনফিগার ফাইলটি এর আগে উপস্থিত ছিল না, তবে প্যাকেজ-ইনস্টল পরবর্তী স্ক্রিপ্ট দ্বারা ইনস্টলেশন এ তৈরি করা হয়েছিল।
প্যাকেজটি ( /var/lib/dpkg/info/foo.postinst) এটি কোথায় কনফিগার ফাইল তৈরি করে এবং এটি এটি কীভাবে তৈরি করে তা পোস্টিনস্ট স্ক্রিপ্ট দেখুন । তারপরে প্রক্রিয়াটি ম্যানুয়ালি পুনরুদ্ধার করার চেষ্টা করুন। এটি কিছুটা কাজ, এবং সবসময় সহজ নয়।
sudo cp /usr/share/samba/smb.conf /etc/samba/smb.confআমার ট্র্যাশেড কনফ ফাইলটি মূলটির সাথে ওভাররাইট করার জন্য কেবল একটি ঘটনা ছিল ।
dpkg-reconfigure <package> ডিফল্টরূপে পরিবর্তিত কনফ ফাইলগুলি সংশোধন করবে না।
সম্ভবত এটি করার সহজতম উপায়, যদি এখনও আপনার কাছে অ্যাপ্লিকেশন ক্যাশে প্যাকেজ থাকে তবে তা চালানো হয়
dpgk -i --force-confask /var/cache/apt/archives/<package file name>
যেখানে প্যাকেজ ফাইলের নাম সাধারণত এমন কিছু হয় <package name>_<version>.deb(কেবল ট্যাব সমাপ্তি ব্যবহার করুন)। এটি অ্যাপটি-আপগ্রেডের মতো একই প্রক্রিয়াটির মধ্য দিয়ে চলবে এবং যখনই কোনও পরিবর্তিত কনফ ফাইল পাওয়া যায় তখন আপনি কী করতে চান তা আপনাকে জিজ্ঞাসা করবে। Nপ্রতিটি প্রম্পটে কেবল প্রবেশ করুন enter dpkg .dpkg-distফাইল নামের শেষে কনফ ফাইলটির প্যাকেজ সংস্করণ ইনস্টল করবে । তারপরে আপনি vimdiffপার্থক্যগুলি তুলনা করতে এবং পড়ুন কনফ ফাইলটি সংশোধন করতে বা অন্য কোনও মার্জ সরঞ্জাম ব্যবহার করতে পারেন ।
/var/cache/apt/archives/যদিও এখানে কোনও প্যাকেজ নেই ...
আপনি ডেবটি বের করতে এবং মূল ফাইলটি দখল করতে পারেন:
ar p packagename.deb data.tar.gz | tar zx
dpkg-sourceকরা সহজ, এবং ব্যবহার apt-get source PACKAGEকরা আরও সহজ।
packagename.postinstস্ক্রিপ্টে তাদের কনফিগার ফাইলগুলি স্বয়ংক্রিয়ভাবে জেনারেট করে ।
সেরা উপায় (# বুন্টু থেকে অর্জিত) এটি করা:
dpkg-reconfigure <package>
এই ক্ষেত্রে এর অর্থ
dpkg-reconfigure samba-common
আপনি মূল smb.confকনফিগারেশন ফাইলটি পুনরায় পুনঃস্থাপন করতে পারেন :
# cp /usr/share/samba/smb.conf /etc/samba/smb.conf
# dpkg-reconfigure samba-common
এটি মূলত আসল প্যাকেজ ইনস্টলেশন প্রক্রিয়াটিই করে (ডেবিয়ান স্কুইজে)।
এটি আপনার বর্তমানকে ওভাররাইট করে দেবে smb.conf, তাই আপনি যদি এটি হারাতে না চান তবে প্রথমে একটি ব্যাকআপ তৈরি করুন।
আপনি ডিবে প্যাকেজটির সামগ্রী পুনরায় ডাউনলোড এবং এক্সট্রাক্ট করতে পারেন
$ sudo cp /usr/share/samba/smb.conf /etc/samba/smb.conf
এবং
$ sudo dpkg --configure -a
কাজ করবে
sudo cp /usr/share/samba/smb.conf /etc/samba/smb.conf