লিনাক্স: কীভাবে কনফিগারেশন ফাইলটি পুনরুদ্ধার করবেন?


37

আমি মাঝে মাঝে আমার কনফিগার ফাইল "/etc/mysql/my.cnf" হারিয়েছি এবং এটিকে পুনরুদ্ধার করতে চাই। ফাইলটি প্যাকেজের অন্তর্গত mysql-commonযা কিছু গুরুত্বপূর্ণ কার্যকারিতার জন্য প্রয়োজনীয় যাতে আমি কেবল purge && installএটি করতে পারি না : নির্ভরতাগুলিও আনইনস্টল করা হবে (বা আমি যদি সাময়িকভাবে এগুলি উপেক্ষা করতে পারি তবে তারা কাজ করবে না)।

কোনও প্যাকেজ থেকে arপ্যাকেজ ফাইলটি আন-না করে কনফিগারেশন ফাইলটি পুনরুদ্ধার করার কোনও উপায় আছে কি ?

dpkg-reconfigure mysql-common এটি পুনরুদ্ধার করেনি।


আমি সর্বদা 7zip ( 7z x /path/to/foo.debতারপরে 7z x data.tar.gz) দিয়ে প্যাকেজ ফাইলগুলি সর্বদা সরিয়ে
নিয়েছি

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

4
আর এই, বাচ্চাদের, কেন আমরা আছে ব্যাকআপ ...
womble

1
@ ওম্বল: আসলে পরিস্থিতি কিছুটা আলাদা: আমার কাছে একটি কনফিগার ফাইল রয়েছে, তবে এটি আমার দ্বারা সংশোধিত হয়েছে। আমি conf.dফোল্ডারগুলি ব্যবহার করছিলাম না , এবং যখন প্যাকেজ রক্ষণাবেক্ষণকারী এটি আপডেট করেন, আপগ্রেড প্রক্রিয়াটি "কনফিগার ফাইল সংশোধিত" বার্তা প্রদর্শন করার জন্য সত্যই আগ্রহী হয়ে ওঠে :) কারণটি উল্লেখ করা তেমন গুরুত্বপূর্ণ নয়, তাই আমি আমার প্রশ্নটি সহজ করার সিদ্ধান্ত নিয়েছি
kolypto

উত্তর:


39

dpkg -i --force-confmiss mysql-common.debনিখোঁজ কনফিগারেশন ফাইলগুলি পুনরায় তৈরি করবে, যেমন /etc/mysql/my.cnfআপনার ক্ষেত্রে।


8
ধন্যবাদ! উবুন্টুতে, এটি ছিলsudo dpkg --force-confmiss -i /var/cache/apt/archives/mysql-common*.deb
কলিপ্টো

10

ডেবিয়ান স্কিজে - কমপক্ষে -, আমরা এটিও এইভাবে করতে পারি, পরে su- বা sudoউবুন্টু -

aptitude install -o Dpkg::Options::=--force-confmiss mysql-server

এটি mysql-serverলটের সমস্ত হারিয়ে যাওয়া কনফারেন্স ফাইলগুলির নির্ভরতাগুলির জন্য যত্নশীল এবং পুনরায় সেট করবে mysql-common। বিবাদমান (অবশিষ্ট) ফাইলগুলি রাখা বা পুনরায় সেট করার জন্য অনুরোধ জানানো হবে।

দুর্ভাগ্যক্রমে, প্রবণতা মধ্যে একটি বাগ আছে , এবং

aptitude purge -o Dpkg::Options::=--force-all mysql-server

কাজ করবে না । সুতরাং আমরা এটি এক সাথে করতে হবে

dpkg --force-all --purge  mysql-common  mysql-server  mysql-client …

এটি আসল বা পরিবর্তিত যে কোনও কনফিগারেশন ফাইল সরিয়ে ফেলবে , তবে একটি অনস্ক্রিন বার্তা সহ কাস্টম ফাইলগুলি সংরক্ষণ করা হবে। দ্রষ্টব্য, যাইহোক, dpkgএটি স্বীকৃতি দেয় --force-confnewএবং --force-confoldবিকল্পগুলি।

mysql-serverপর্দায় নির্ভরতার তালিকা মুদ্রণ পেতে :

aptitude --simulate remove mysql-server

9

উপরের কোনওটিই আমার পক্ষে কাজ করেনি - সম্ভবত পুরানো - যাইহোক, আমি এই সমাধানটি পেয়েছি:

apt-get -o Dpkg::Options::="--force-confmiss" install --reinstall mysql-common

এটি ব্যবহারের জন্য আদেশটি, প্রবণতাটি ডিফল্ট নয় বিবেচনা করে। সুডো ভুলে যাবেন না :)
এনএসএন

3

আপনি /usr/share/doc/mysql-server-5.0/examples/অনুরূপ বা অনুরূপ ডিফল্ট মাইএসকিএল কনফিগারেশন ফাইলগুলি সন্ধান করতে পারেন । আপনার যদি কিছু সত্যিকারের বিশেষ / রহস্যজনক কনফিগারেশন সক্ষম না করে থাকে তবে আপনার প্রয়োজন এটাই হতে পারে।


0

আমার /etc/mysql/ডিরেক্টরিতে আমার কাছে একটি my.cnf.origফাইল রয়েছে যার মূল বিষয়বস্তু রয়েছে my.cnf

আমি নিশ্চিত নই যে কোথা /etc/mysql/my.cnf.origথেকে এসেছে - এটি আমি তৈরি করেছি কিনা , বা মাইএসকিএল ইনস্টল করে দিয়েছিল কিনা। আমার মনে আছে এক সময় যাচাই করা ঠিক ঠিক একই ছিলmy.cnf

আপনি এই ধরনের একটা জিনিস আছে, এবং যদি কোন my.cnf আপনি অন্যান্য এক অনুলিপি করতে পারবেন।

sudo cp /etc/mysql/my.cnf.orig /etc/mysql/my.cnf

যাই হোক না কেন, এটি 3897 বাইটের একটি সাধারণ টেক্সট ফাইল এবং আপনি জেনেরিক মাইএসকিএল কনফিগারেশন ফাইলটি অনুলিপি করে আটকে দিতে পারেন।

এটা একটা ভাল ধারণা হবে একবার আপনি পুনঃস্থাপন আপনার /etc/mysql/my.cnfতাই আপনি এটি সহজে ভবিষ্যতে পুনরুদ্ধার করতে পারেন একটি কপি করতে।


আমি সাধারণত অনুলিপি-ইনস্টল কনফিগারেশন ফাইলগুলিতে অনুলিপি করে একটি ব্যাকআপ তৈরি করি /path/to/foo.conf.orig... এগুলি যদি স্বয়ংক্রিয়ভাবে ইনস্টল হয় তবে এপট-গিও একটি নতুন সংস্করণ ইনস্টল করার সময় তৈরি করা হয় এবং আপনি আসল কনফিগারেশন ফাইলটি পরিবর্তন করেছেন তা সনাক্ত করে।
কোয়াকোটা

হুম, আমি এটির বিষয়ে যত বেশি চিন্তা করি, তত বেশি মনে হয় আমি/etc/mysql/my.cnf.orig একটি ব্যাকআপ হিসাবে তৈরি করেছি যা একটি নতুন ইনস্টলেশন দ্বারা ওভাররাইট করা হবে না। তবে, একে অন্যকে পুরোপুরি আলাদা করে রাখা ভাল ধারণা।
প্যাভিয়াম

আমি জেনেরিক হওয়ার চেষ্টা করছিলাম; my.cnf এর জন্য আমি এটিতে অনুলিপি করব /etc/mysql/my.cnf.orig। তারপরে, স্বাভাবিকভাবেই, এর একটি টারবাল ব্যাকআপ তৈরি করুন /etc। :)
কোয়াকোটা

0

আপনাকে এই কমান্ডটি দিয়ে মাইএসকিএল-সাধারণ পুনরায় ইনস্টল করতে হবে:apt-get install --reinstall mysql-common


এটি কি আসলে অনুপস্থিত কনফিগারেশন ফাইলগুলি পুনরুদ্ধার করে?
পুলি

1
না, এটি কাজ করে না।
ক্রিশ্চানস্ট্যান্ড

0

এটি প্যাকেজের কনফিগারেশন ফাইলগুলি পরিচালনা করা হলে অন্যান্য কিছু সমাধান কাজ করবে না বলে মনে হয় ucf

এই ক্ষেত্রে আপনি ব্যবহার করতে পারেন:

UCF_FORCE_CONFFMISS=1 apt-get --reinstall install [pkgname]
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.