আমি কীভাবে ডিফল্ট সাম্বা কনফিগারেশন ফাইল (ডেবিয়ান-ভিত্তিক সিস্টেম) ফিরে পেতে পারি?


11

আমি সাম্বা সম্প্রতি ইনস্টল করেছি এবং আমি /etc/samba/smb.confফাইলটি গোলযোগ করেছি । আমি কীভাবে মূল কনফিগারেশনটি ফিরে পাব?


1
sudo cp /usr/share/samba/smb.conf /etc/samba/smb.conf
থারস্মমনার

সবাই কেন প্যাকেজ নামের জন্য স্থানধারক ব্যবহার করছে?
এন্ডোলিথ

উত্তর:


8

সম্পাদিত :

এটি একটি সার্ভারফল্ট প্রশ্নে চিহ্নিত করেছে । যদি dpkg-reconfigure fooকাজ না করে তবে এটি ব্যবহার করুন:

  1. ভাঙা কনফিগারেশন ফাইলটি সরান বা পুনরায় নামকরণ করুন।

    sudo mv /etc/samba/smb.conf /etc/samba/smb.conf.broken
    
  2. থেকে প্রতিস্থাপনের অনুরোধ 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যে ওভাররাইট সম্পাদন করতে পারে তবে আপনি ঠিক বলেছেন যে এটি প্যাকেজ কনফিগারেশন স্ক্রিপ্টগুলির বিশদগুলির উপর নির্ভরশীল।
কোয়েট কোয়েসোট

7

সংক্ষিপ্ত উত্তর: /usr/share/samba/smb.confsmb.conf ফাইলের মূল সংস্করণ।

যখন কোনও প্যাকেজের জন্য এই পরিস্থিতির মুখোমুখি হন, তখন আমি যা করি তা নিম্নলিখিতগুলির মধ্যে একটি:

  1. আপনার সম্পাদক থেকে মূল সংস্করণটির ব্যাকআপ ফাইলগুলি পরীক্ষা করুন । আমি ইমাস ব্যবহার করি যা সাধারণত foo~ফাইলগুলি ছেড়ে যায় এবং আমি সংখ্যাসূচক সংস্করণ-নিয়ন্ত্রণ বিকল্পটি সেট করে রেখেছি তাই আসল সংস্করণটি সর্বদা থাকে foo.~1~। তবে আপনি এটি অন্য কোনওভাবে করেছেন, বা অন্য কোনও সম্পাদক ব্যবহার করেছেন। আপনার বৈশিষ্ট্যটি ইতিমধ্যে চালু না করতে আপনার সম্পাদকের কনফিগারেশনটি পরীক্ষা করে দেখুন; এটি aোকা একটি ভাল অভ্যাস।

  2. এর সাথে প্যাকেজটি পুনরায় কনফিগার করুনdpkg-reconfigure PACKAGENAME । কখনও কখনও এই কৌশল করে। আমার অভিজ্ঞতায় এটি খুব কমই কাজ করে; এটি প্যাকেজটি কীভাবে তার কনফিগারেশন ফাইল তৈরি করছে তার উপর নির্ভর করে।

  3. শুদ্ধ ও বাক্স পুনরায় ইনস্টল (সঙ্গে apt-get purge packagenameদ্বারা অনুসরণ apt-get install packagename)। এটি সর্বদা কাজ করা উচিত।

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

  4. প্যাকেজটির জন্য উত্স কোডটি ডাউনলোড করুন ( apt-get source foo) এবং দেখুন যে সেখানে কোনও ফাইল হিসাবে আসল কনফিগারেশন ফাইল উপস্থিত রয়েছে। যাইহোক, এটি হতে পারে যে কনফিগার ফাইলটি এর আগে উপস্থিত ছিল না, তবে প্যাকেজ-ইনস্টল পরবর্তী স্ক্রিপ্ট দ্বারা ইনস্টলেশন এ তৈরি করা হয়েছিল।

  5. প্যাকেজটি ( /var/lib/dpkg/info/foo.postinst) এটি কোথায় কনফিগার ফাইল তৈরি করে এবং এটি এটি কীভাবে তৈরি করে তা পোস্টিনস্ট স্ক্রিপ্ট দেখুন । তারপরে প্রক্রিয়াটি ম্যানুয়ালি পুনরুদ্ধার করার চেষ্টা করুন। এটি কিছুটা কাজ, এবং সবসময় সহজ নয়।


এটি আরও বেশি হওয়া উচিত। আমার জন্য এটি sudo cp /usr/share/samba/smb.conf /etc/samba/smb.confআমার ট্র্যাশেড কনফ ফাইলটি মূলটির সাথে ওভাররাইট করার জন্য কেবল একটি ঘটনা ছিল ।
এডিজিলিয়ন

2

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/যদিও এখানে কোনও প্যাকেজ নেই ...
এন্ডোলিথ

1

আপনি ডেবটি বের করতে এবং মূল ফাইলটি দখল করতে পারেন:

ar p packagename.deb data.tar.gz | tar zx

ব্যবহার dpkg-sourceকরা সহজ, এবং ব্যবহার apt-get source PACKAGEকরা আরও সহজ।
টেডি 13

1
@ টেডি: কেবলমাত্র ডিফল্ট কনফিগারেশন ফাইলটি সূচনা প্যাকেজে অন্তর্ভুক্ত করা শুরু করা হয়। অনেক প্যাকেজ একটি ভারী বিক্রেতা-নির্দিষ্ট কনফিগারেশন ফাইল ইনস্টল করে; কিছু packagename.postinstস্ক্রিপ্টে তাদের কনফিগার ফাইলগুলি স্বয়ংক্রিয়ভাবে জেনারেট করে ।
কোয়াকোট কোয়েসোট

1

সেরা উপায় (# বুন্টু থেকে অর্জিত) এটি করা:

dpkg-reconfigure <package>

এই ক্ষেত্রে এর অর্থ

dpkg-reconfigure samba-common

1

আপনি মূল smb.confকনফিগারেশন ফাইলটি পুনরায় পুনঃস্থাপন করতে পারেন :

# cp /usr/share/samba/smb.conf /etc/samba/smb.conf
# dpkg-reconfigure samba-common

এটি মূলত আসল প্যাকেজ ইনস্টলেশন প্রক্রিয়াটিই করে (ডেবিয়ান স্কুইজে)।

এটি আপনার বর্তমানকে ওভাররাইট করে দেবে smb.conf, তাই আপনি যদি এটি হারাতে না চান তবে প্রথমে একটি ব্যাকআপ তৈরি করুন।


1
এই ফাইলটি রয়েছে এমন প্যাকেজের নাম সরবরাহ করার জন্য ধন্যবাদ। "সুডো এপটিটিচিউড পার্জ সাম্বা-কমন; সুডো অ্যাপিটিউড ইনস্টল সাম্বা" আমার পছন্দ ছিল, তবে টোটরের উত্তর পছন্দগুলির মধ্যে সবচেয়ে কম ভয়ঙ্কর এবং বেশিরভাগ ডেবিয়ান বলে মনে হচ্ছে।
মার্টিন ডরে


-2
$ sudo cp /usr/share/samba/smb.conf /etc/samba/smb.conf

এবং

$ sudo dpkg --configure -a

কাজ করবে


এটি অন্য সমস্ত উত্তরগুলির সাথে প্রায় একই রকম। এটি '14 এর একটি পোস্টেও রয়েছে।
var firstName
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.