Dpkg --set-Seferences '*' থেকে সমস্ত ডেটা এবং নির্ভরতা পুনরুদ্ধার করা হচ্ছে


44

সুতরাং আমি একটি মেশিনে চালাতে পারি:

dpkg --get-selections '*' > selection.txt

অন্য একটি মেশিনে:

dpkg --set-selections < selection.txt

... নিম্নলিখিত দুটি অনুসরণ করে:

aptitude install
apt-get -u dselect-upgrade

... প্যাকেজ ইনস্টল করতে।

তবে এটি প্রদর্শিত হয় যে কিছু তথ্য প্রক্রিয়াটিতে হারিয়ে যায়, যেমন কোনও প্যাকেজ (বলে xyz) অন্য প্যাকেজের নির্ভরতা হিসাবে স্বয়ংক্রিয়ভাবে ইনস্টল হয়েছে কিনা ( abc)। আপনি যখনই এর মতো কিছু করতে পারেন তা দেখতে পাবেন apt-get --purge remove abc। মূল মেশিনে আপনাকে জানানো হবে যে প্যাকেজটির xyzনির্ভরতা হিসাবে ইনস্টল করা হয়েছে abcএবং আপনি apt-get autoremoveএটি থেকে মুক্তি পেতে ব্যবহার করতে পারেন ।

এখন আমি সচেতন deborphanএবং debfosterতবে তারা হাতের (সহজ) কাজটি দেওয়াতে ব্যবহার করা জটিল।

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

প্যাকেজ পরিচালনার জন্য মেটাডেটার সম্পূর্ণ সেট ব্যাকআপ করার এবং এরপরে সম্পূর্ণরূপে পুনরুদ্ধার করার কোনও উপায় কি আছে?


আমি প্রায়শই একই জিনিসটি নিয়ে ভাবলাম যে আমার সমস্ত প্যাকেজ (মাইনাস লিবস) দিয়ে একটি 'সুডো এপটি-গেট ইনস্টল' দিয়ে একটি বড় শেল স্ক্রিপ্ট উত্পন্ন করি। অবশ্যই, আপনি একই সমস্যার মধ্যে চলে আসছি।
চক আর

আমি অনুমান করব যে সন্ধান শুরু করার জন্য সেরা জায়গাটি এটি হবে সেই তথ্যের জন্য ডিপি কেজি আসলেই দায়বদ্ধ কিনা তা পরীক্ষা করা। যদি তা না হয় তবে সম্ভবত এটি উপযুক্ত কাজ।
হাকল

3
আপনি যদি ম্যানুয়াল পথে চলে যাচ্ছেন তবে আপনার নিজের থেকে apt-markস্বয়ংক্রিয়ভাবে ইনস্টল হওয়া প্যাকেজগুলি সম্পর্কিত তথ্য সংরক্ষণ / পুনরুদ্ধার করতে আগ্রহী হতে পারেন
লেকেনস্টেইন

এটি 10.04 প্যাকেজ রেপোতে নেই, তাই না? এটি ক্যানোনিকাল রেপোর অংশ বা তৃতীয় পক্ষের?
0xC0000022L

2
না, এটি কেবলমাত্র "আপনার তথ্যের জন্য" মন্তব্য। প্যাকেজগুলির জন্য চিহ্নগুলি পেতে এবং সেট করার জন্য আমি অ্যাপটি-চিহ্ন (এটি এপটির একটি অংশ, তাই এটি ইতিমধ্যে ইনস্টল করা উচিত) ব্যবহার করব ( বিশদটির জন্য তার ম্যানপেজটি দেখুন)।
htorque

উত্তর:


39

ব্যাকআপ:

apt-mark showauto > pkgs_auto.lst
apt-mark showmanual > pkgs_manual.lst

পুনঃস্থাপিত করো:

sudo apt-mark auto $(cat pkgs_auto.lst)
sudo apt-mark manual $(cat pkgs_manual.lst)

ধন্যবাদ, আপনি বা লেকেনস্টেইন একটি উত্তর হিসাবে এটি লিখতে জিজ্ঞাসা করতে চলেছিলেন।
0xC0000022L

এই আদেশগুলি আপনাকে সেই তালিকা থেকে প্রোগ্রামগুলি পুনরায় ইনস্টল করার অনুমতি দেয়?
স্বেতলানা বেলকিন

এটি কি পুনরুদ্ধারের সময়ে অতিরিক্ত ইনস্টল হওয়া প্যাকেজগুলি সরিয়ে ফেলতে পারে ?
n611x007

1
আপনি autoএবং এর মধ্যে পার্থক্য ব্যাখ্যা করতে পারেন manual? ধন্যবাদ।
Anto

আমি দুর্ঘটনাক্রমে ম্যানুয়াল হিসাবে অন্যান্য প্যাকেজগুলির একগুচ্ছ হিসাবে চিহ্নিত হয়েছে ... ফেরানোর কোনও উপায় আছে? ধন্যবাদ
dentex

2

এই প্রশ্নের নির্বাচিত উত্তর অসম্পূর্ণ এবং এটি (বা আর) কাজ করে না। বেদনাদায়ক ফিক্সটি হ'ল আউটপুট * .lst ফাইলগুলি পার্স করতে এবং এগুলিকে খাওয়ানোর জন্য লুপের জন্য লুপ ব্যবহার করা apt install। খারাপ পছন্দ, যদিও, তাই এখানে চিত্রিত করা হবে না।

ইউনিক্স এবং লিনাক্স স্ট্যাকেক্সচেঞ্জের এই উত্তরেapt-clone যেমনটি দেখা যায়, তেমনি আরও ভাল পছন্দ ব্যবহার করা হয়। এটি একটি ছোট ফাইল তৈরি করে (আমার সিস্টেমে প্রায় 100 কে বা তারও কম)। কথিত, এটি অল্প প্রচেষ্টা বা ব্যথা সহ প্যাকেজগুলি ক্লোন করে দেবে।

সুতরাং, সংক্ষেপে, মূল মেশিনে:

apt-clone clone `uname -n`

তারপরে, ক্লোন করতে মেশিনে, ক্লোন ফাইলটি অনুলিপি করুন এবং রান করুন:

apt-clone restore original-machine-name.apt-clone.tar.gz

এই পৃষ্ঠাটি প্রাথমিক ওয়েব অনুসন্ধানগুলিতে পরিণত হওয়ার পরে আমি এই উত্তরটি এখানে অন্তর্ভুক্ত করছি, তবে অন্য উত্তরটি তা দেয় নি। এই পদ্ধতিটি আরও সহজ দেখায়।

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