100% অ-ইন্টারেক্টিভ ডেবিয়ান ডিস্ট-আপগ্রেড


38

apt-get dist-upgradeডেবিয়ান ভাষায় এমন একটি উপায় আছে যা জিজ্ঞাসিত সমস্ত প্রশ্নের স্বয়ংক্রিয়ভাবে "হ্যাঁ" জবাব দেয় না, পাশাপাশি বিভিন্ন ইন্টারেক্টিভ ডায়ালগ বাক্সগুলি পপআপ করার জন্য যথেষ্ট পরিশীলিত প্রশ্নের উত্তর হিসাবে যুক্তিসঙ্গত ডিফল্ট ব্যবহার করে? আমি এখানে কী-ম্যাপের জিনিসগুলি নিয়ে ভাবছি যা আপগ্রেড হওয়ার পরে libc6এবং কার্নেল চিত্রের পছন্দগুলি প্রদর্শিত হবে।

লক্ষ্যটি হ'ল দূরবর্তী অবস্থান থেকে বরং একটি বৃহত্তর সূচনা করতে সক্ষম হওয়া dist-upgrade- এমনকি এমন একটি মেশিনের জন্যও যা সময়ের পিছনে মারাত্মকভাবে পিছনে রয়েছে - এবং কোনওোকিছু ভয়াবহরূপে, বিপর্যয়করভাবে ভুল না হলে এটিকে মোটেও সজ্জা করতে হবে না ।

নিশ্চয়ই এটা সম্ভব?

আগাম ধন্যবাদ!


যাঁরা কেবল উবুন্টুতে (ডিগ-আপগ্রেডের পরিবর্তে) আপগ্রেড করতে চান, তাদের জন্য অচিহ্নিত-আপগ্রেড প্যাকেজটি চেষ্টা করুন ।
জো লিস

উত্তর:


42

আপনি যদি সেট করেন DEBIAN_FRONTEND=noninteractive(ডেবকনফের উপস্থিতি থেকে প্রম্পটগুলি থামাতে) এবং আপনার ফাইলে যুক্ত force-confoldএবং যোগ করেন তবে force-confdefআপনার /etc/dpkg/dpkg.cfgঅবশ্যই একটি সম্পূর্ণরূপে নিরবচ্ছিন্ন প্যাকেজ ইনস্টলেশন অভিজ্ঞতা থাকতে হবে। তথ্যের জন্য আপনাকে অনুরোধ জানানো যে কোনও প্যাকেজের একটি রিলিজ সমালোচনামূলক বাগ রয়েছে (এবং আমি বলি যে অটোমেশন জাঙ্কি এবং ডেবিয়ান বিকাশকারী উভয় হিসাবে)।


এটি আমার পক্ষে কার্যকর হয়নি। apt-listchangesদ্বারা খোলা ছিল less
চৌম্বকীয়

@ ম্যাগনেটার: এপিটি-লিস্ট-চেঞ্জগুলির ক্ষেত্রে এটি সমস্যা, অ্যাপ্লিকেশন নয়। অ্যাপটি-তালিকা-পরিবর্তনগুলি আনইনস্টল করুন, বা এটি যথাযথভাবে কনফিগার করুন।
ওম্বল

1
চেষ্টা করুন: env APT_LISTCHANGES_FRONTEND = কেউ কার্যক্ষম-পেতে Dist-আপগ্রেড -u -y
এইচ-ডির্ক স্মিট

21

ফ্লোরিয়ান লোহফ একক কমান্ডে কীভাবে কম্বলকে পরামর্শ দেয় তা পাওয়ার জন্য একটি উপায় পোস্ট করেছিলেন:

DEBIAN_FRONTEND=noninteractive \
apt-get \
-o Dpkg::Options::="--force-confnew" \
--force-yes \
-fuy \
dist-upgrade

অবশ্যই আপনি ব্যবহার করতে পারেন -o Dpkg::Options::="--force-confnew --force-confdef"( কনফার করার জন্য dpkg ম্যান পেজটি অনুসন্ধান করুন )। আমি নিশ্চিত না তবে কী ক্ষেত্রে এটি কোনও তফাত তৈরি করবে make আমার ব্যক্তিগতভাবে ভ্যানিলা চিত্রগুলি আপ টু ডেট আনার জন্য অ-ইন্টারেক্টিভ আপগ্রেডের প্রয়োজন, আমি মনে করি সর্বদা নতুন কনফিগার ফাইলটি (বিনা --force-confdef) পিক করা যুক্তিসঙ্গত জিনিস।


W: --force-yes is deprecated, use one of the options starting with --allow instead.
অ্যালেক্স

3

যদিও উপরে ওম্বলের উত্তরটি সাধারণত উত্তম, তবে এটি আমার পক্ষে কার্যকর হয়নি এবং আমার 100% অপ্রত্যাশিত হতে আরও কিছু গবেষণা করতে হয়েছিল। আমি ভেবেছিলাম ভবিষ্যতের দর্শকদের জন্য বিষয়গুলি সহজ করার জন্য আমি সংক্ষিপ্তভাবে ফলাফলটি ভাগ করব

নীচে একটি স্ক্রিপ্ট যা ডেবিয়ান 8 রিলিজ নোটগুলি আপগ্রেড সুপারিশগুলি (বেশিরভাগ) বরাবর পতাকা এবং পরিবেশের ভেরিয়েবলগুলি অনুসারে চলবে যা এটিকে অচিরাচরিত করবে। ( echoগুলিগুলি কেবল ডিবাগিংয়ের জন্য এবং এগুলি সরানো যেতে পারে - যদিও আমি তাদের এগুলি রাখার প্রস্তাব দিই যদি স্ক্রিপ্টটি আটকে যায় তবে আপনি জানতে পারবেন কোথায়)

#!/bin/bash

apt-get remove apt-listchanges --assume-yes --force-yes &&

#using export is important since some of the commands in the script will fire in a subshell
export DEBIAN_FRONTEND=noninteractive &&
export APT_LISTCHANGES_FRONTEND=none &&

#lib6c was an issue for me as it ignored the DEBIAN_FRONTEND environment variable and fired a prompt anyway. This should fix it
echo 'libc6 libraries/restart-without-asking boolean true' | debconf-set-selections &&

echo "executing wheezy to jessie" &&
find /etc/apt -name "*.list" | xargs sed -i '/^deb/s/wheezy/jessie/g' &&

echo "executing autoremove" &&
apt-get -fuy --force-yes autoremove &&

echo "executing clean" &&
apt-get --force-yes clean &&

echo "executing update" &&
apt-get update &&

echo "executing upgrade" &&
apt-get --force-yes -o Dpkg::Options::="--force-confold" --force-yes -o Dpkg::Options::="--force-confdef" -fuy upgrade &&

echo "executing dist-upgrade" &&
apt-get --force-yes -o Dpkg::Options::="--force-confold" --force-yes -o Dpkg::Options::="--force-confdef" -fuy dist-upgrade

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

1

> = আপত্তি 1.1

আপনি Apt, 1.1 অথবা উপরে ব্যবহার করেন, তাহলে --force-yesঅবচিত হয়েছে , তাই আপনি দিয়ে শুরু অপশন ব্যবহার করতে করেছি --allowযেমন পরিবর্তে, --allow-downgrades, --allow-remove-essential, --allow-change-held-packages

সুতরাং আদেশটি হ'ল:

DEBIAN_FRONTEND=noninteractive \
  apt-get \
  -o Dpkg::Options::=--force-confold \
  -o Dpkg::Options::=--force-confdef \
  -y --allow-downgrades --allow-remove-essential --allow-change-held-packages \
  dist-upgrade

দ্রষ্টব্য: --force-confoldপুরানো এবং --force-confnewনতুন কনফিগার রাখতে ব্যবহার করুন ।

উত্স: সিএফই -৩6060০: অ্যাপটি_জেট প্যাকেজ মডিউল সংস্করণটি সচেতন করুন

সম্পর্কিত:


-4

থেকে apt-get(8)মানুষ পৃষ্ঠা:

   -y, --yes, --assume-yes
       Automatic yes to prompts; assume "yes" as answer to all prompts
       run non-interactively. If an undesirable situation, such as
       changing a held package, trying to install a unauthenticated
       package or removing an essential package occurs then apt-get will
       abort. Configuration Item: APT::Get::Assume-Yes.

রেফারেন্সের জন্য, -yবিকল্পটি yum(8)পাশাপাশি কাজ করে ।


5
আমি এটি সম্পর্কে জানি। আমি সেই পতাকাটি ব্যবহার করি এবং এটি বিদ্যমান কনফিগারেশনগুলি ওভাররাইটিং ইত্যাদি সম্পর্কিত স্ট্যান্ডার্ড এপিটি ওয়াই / এন প্রশ্নের সাফল্যের সাথে 'হ্যাঁ' উত্তর দেয় Those এগুলি যে প্রশ্নগুলি আমি উল্লেখ করছি তা নয়। আমি যখন অ্যাপটি-গেট-ডি-আপ-আপগ্রেড করি তখনও এটি আমাকে কিছু 'ডায়লগ' দেয় যা এটি বড়-টিকিটের স্টাফ হিসাবে বিবেচনা করে, যেমন কীম্যাপ পরিবর্তনগুলি, libc6- সম্পর্কিত পরিষেবা পুনরায় চালু করা ইত্যাদি I পাশাপাশি বন্ধ করুন।
অ্যালেক্স বালশভ
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.