এপটি-গেট আপডেট করুন এবং স্বয়ংক্রিয় এবং অযৌক্তিকভাবে আপগ্রেড করুন


28

আমার পরিচালিত প্রায় 7 টি দেবিয়ান সার্ভার রয়েছে এবং আমি সেগুলি স্বয়ংক্রিয়ভাবে আপডেট করার জন্য সেগুলি সেট করতে চাই। সুতরাং, আমি এর মতো একটি স্ক্রিপ্ট তৈরি করেছি:

#!/bin/sh
apt-get update
apt-get upgrade

এবং এটি rootক্রন্টব তালিকায় রাখে। দুর্ভাগ্যক্রমে, এটি সর্বদা আপগ্রেড বিভাগে স্থির থাকে, জিজ্ঞাসা করে আমি নিশ্চিত যে আমি আপগ্রেড করতে চাই কিনা। এটি একটি ক্রোন কাজ বলে, এটি ব্যর্থ হয়েছে বলে আমাকে ইমেল না করা পর্যন্ত আমি আউটপুটটি দেখি না। প্রম্পটটি এড়িয়ে যাওয়ার কোনও উপায় আছে এবং কেবল স্বয়ংক্রিয়ভাবে আপগ্রেড করা যায়?


3
... বা ক্রোন-অ্যাপ্ট
ডারোবার্ট

উত্তর:


46

এটি জিজ্ঞাসা না করার জন্য অ্যাপটি-ব্যবহার করতে -y বিকল্পটি ব্যবহার করুন। থেকে man apt-get:

   -y, --yes, --assume-yes
       Automatic yes to prompts; assume "yes" as answer to all prompts and
       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.

আপনি DEBIAN_FRONTEND এনভ ভেরিয়েবল সেট করতে পারেন

DEBIAN_FRONTEND=noninteractive apt-get -y upgrade

1
কি করে DEBIAN_FRONTEND? এটি কি অন্যান্য প্রক্রিয়াগুলির জন্যও ব্যবহৃত হয়?
কানাডিয়ান লুক

আমি এটি আমার হোম সার্ভারে চেষ্টা করছি, এবং এটি চালানোর সাথে সাথে সেরা উত্তরটি বেছে
নেব

1
@CanadianLuke দেখতে এখানে জন্য DEBIAN_FRONTEND। এটি আমার ডেবিয়ানের man debconfযদিও উল্লেখ করা হয়নি, সুতরাং এটি উবুন্টু জিনিস হতে পারে।
টেরডন

@ ইটারডন আপনার কাছে ডাবকনফের জন্য -ডোক প্যাকেজ নেই। এটি লোকটির 7 বিভাগে man 7 debconf;)
ব্রায়াম

@ ব্রায়াম আহ, ঠিক আছে, আমি এটি দেখেছি এবং চেষ্টা করেছি man 7 debconfকিন্তু কিছুই পাইনি। এখন আমি কেন জানি :)
টেরডন

27

ঠিক আছে, সম্ভবত আপনি ভুল সরঞ্জামটি ব্যবহার করছেন। unattended-upgradesপ্যাকেজটি প্রতিদিন ভিত্তিতে সুরক্ষা আপগ্রেড ইনস্টল করে (কনফিগার করা যায়), কোন প্যাকেজগুলি আপগ্রেড করতে হবে বা আপগ্রেড না করা হবে তা কনফিগার করতে পারেন ইত্যাদি ব্যবহার করে ইনস্টল করা যেতে পারে:

sudo apt-get install unattended-upgrades

থেকে man unattended-upgrades:

কনফিগারেশনটি অ্যাপটি কনফিগারেশন প্রক্রিয়াটির মাধ্যমে করা হয়। ডিফল্ট কনফিগারেশন ফাইলটি /etc/apt/apt.conf.d/50unattended-upgrades এ পাওয়া যাবে


@ কানাডিয়ানলুক এটিতে সমস্ত কনফিগারেশন পড়ে /etc/apt/apt.conf.d/তবে কেবল যাঁরা শুরু করেন Unattended-Upgrade::তারা পার্স করে।
ব্রায়াম

আমি কাজের যে কোনও একটি সার্ভারে এটি চেষ্টা করছি, এবং এটি চালানোর সাথে সাথে সেরা উত্তরটি বেছে
নেব

10

পূর্ববর্তী উত্তরগুলি তথ্যবহুল থাকলেও তারা সময়কালে মানুষের মাধ্যমে প্রয়োজনীয় ইনপুটটির 'ইস্যু' রোধ করে না upgrade। অতএব, আমি নিম্নলিখিত ব্যবহার করছি:

export DEBIAN_FRONTEND=noninteractive
export DEBIAN_PRIORITY=critical
sudo -E apt-get -qy update
sudo -E apt-get -qy -o "Dpkg::Options::=--force-confdef" -o "Dpkg::Options::=--force-confold" upgrade
sudo -E apt-get -qy autoclean

কার্নেল যেমন dist-upgradeকমান্ড ব্যবহার করে 'বিতরণ' আপগ্রেড অন্তর্ভুক্ত করতে পারে ।

দয়া করে এই পরামিতিগুলির গভীরতার তথ্যের জন্য ম্যানেজdpkg দেখুন ।

আমদানি নোট : প্যারামিটার sudoসহ কল -Eকরা প্রয়োজনীয়:

Indicates to the security policy that the user wishes to preserve their existing environment variables. The security policy may return an error if the user does not have permission to preserve the environment.

অন্যথায়, EXPORTবিবৃতি কলগুলিতে প্রভাব ফেলবে না apt-get!

ক্রেডিট রেমি ভ্যান এলস্টের কাছে যায় ! ধন্যবাদ!


1
আপনি কীভাবে অপ্ট-গেট আপগ্রেডে অন্যান্য বিকল্পগুলি যুক্ত করেছিলেন তা ব্যাখ্যা করতে পারেন?
ফারো

1
এছাড়াও, স্ক্রিপ্টটি রটের ক্রন্টব থেকে চালিত হলে "সুডো-ই" প্রয়োজন?
ফারো

1
@ ফ্যারো যা কোন পরিবেশ / কোন প্রসঙ্গে আপনি ক্রোনজব চালাতে চান তার উপর নির্ভর করে। সাধারণত, এগুলি দ্বারা চালিত হয় root- সুতরাং আপনার মোটেও ব্যবহার sudoকরার দরকার নেই । 'অন্যান্য বিকল্পগুলি' যে কোনও ক্ষেত্রে অপ্রত্যাশিতভাবে চালানোর জন্য সেট করা আছে। উল্লেখ manপৃষ্ঠা দেখুন।
নার্ভাসভাবে

4

এই ধরণের জিনিসটির জন্য একটি জেনেরিক সরঞ্জাম হ'ল yes:

DESCRIPTION
       Repeatedly output a line with all specified STRING(s), or 'y'.

সুতরাং, উদাহরণস্বরূপ, আপনি করতে পারেন

yes | sudo apt-get upgrade 

দয়া করে নোট করুন যে @ ব্রাইয়াম বা @ আর্থারউফেল্টapt-get upgrade দ্বারা প্রস্তাবিত বিকল্পগুলি ব্যবহারের ক্ষেত্রে আরও ভাল।


আমি ম্যানুয়ালি করতে চাইলে যে লাইনটি আমি পেস্ট করি তা হ'ল apt-get update && yes | apt-get upgrade(আমাদের সার্ভারগুলি ব্যবহার করার কথা sudoনয় ... জিজ্ঞাসা করবেন না ...)
কানাডিয়ান লুক পুনরায় ইনস্টল করুন মনিকা

ইতিমধ্যে সরবরাহ করা বিকল্পের পরিবর্তে একটি কৌশল ব্যবহার কেন ?? "-y" ইতিমধ্যে প্রস্তুত রয়েছে।
ফারো

3
কারণ, যেমন আমি উত্তরে বলেছি, এটি এই ধরণের ক্রিয়াকলাপের জন্য একটি জেনেরিক সরঞ্জাম, সুতরাং এই উত্তরটি অন্যান্য ক্ষেত্রে, অ্যাপের পক্ষে নয়। আপনি শেষ অনুচ্ছেদটি পড়েন নি? নাকি প্রথম বাক্য?
টেরডন
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.