প্যাকেজ উপলব্ধ না হলে yum এর ত্রুটি করা উচিত


14

আমি সম্প্রতি একটি স্ক্রিপ্টের বাগে প্রবেশ করেছি যেখানে আমি নিম্নলিখিতগুলি করার চেষ্টা করেছি:

yum -y install another_package.x86_64 some_package.x86_64 && run_my_script

স্ক্রিপ্টটি একটি নতুন সেন্টোস-এ ভালভাবে চলেছিল, তবে আমি যখন এটি সেন্ট ওএস 5 এ চালানোর চেষ্টা করেছি তখন some_package.x86_64উপলভ্য ছিল না। তবে ত্রুটি করা এবং থামানোর পরিবর্তে yumকেবল বার্তাটি মুদ্রিত করুন:

No package some_package.x86_64 available.

yumআমার স্ক্রিপ্টগুলি আরও শক্তিশালী করার জন্য আমি কীভাবে এ জাতীয় পরিস্থিতিতে ত্রুটি করতে বাধ্য করতে পারি (কোন আইএমওর ডিফল্ট হওয়া উচিত)?


আপনার স্ক্রিপ্ট আরও রিবাস্ট তৈরি করুন এবং এগিয়ে যাওয়ার আগে ইয়ামের রিটার্ন মান পরীক্ষা করুন।
ফ্র্যানান

1
@ ফ্রলান এটিই সমস্যা। এই ক্ষেত্রে yumআনন্দের সাথে ফিরে আসে 0। আমার স্ক্রিপ্টটি এগিয়ে যাওয়ার আগেই ইতিমধ্যে রিটার্ন মানটি পরীক্ষা করছে। লক্ষ্য করুন &&?

উত্তর:


11

যেমনটি আপনি পেয়েছেন, এই আচরণটিটি আরএইচইল 5 এবং 6 এর মধ্যে পরিবর্তিত হয়েছে ( কিছু আলোচনার জন্য https://bugzilla.redhat.com/show_bug.cgi?id=736694 দেখুন )। সেই লিঙ্কটি থেকে, রিটার্ন কোডটি পরীক্ষা করা yum info <pkg>আপনাকে প্রয়োজনীয় হিসাবে আপনার স্ক্রিপ্টটি বাতিল করতে দেওয়া উচিত। কিছুটা এইরকম:

# Set a variable containing the packages to install:
pkgs_to_install='another_package.x86_64 some_package.x86_64'

# Loop over the packages in the list:
for pkg in ${pkgs_to_install}; do
  # Stop executing if at least one package isn't available:
  yum info ${pkg} >> /dev/null 2>&1 || exit
done

# Continue running your original script:
yum -y install ${pkgs_to_install} && run_my_script

3
ঠিক আছে, এটি আপনাকে এটি ডিফল্ট হওয়া উচিত বলে ভেবে পাগল নন এবং এটি নিশ্চিত করে।

2
ভালভাবে সহায়তা করে, স্ক্রিপ্ট ব্যবহারের জন্য বর্তমান ইয়াম আচরণটি বেশ বন্ধুত্বপূর্ণ।
Karata,

14

প্রতি বাগ 1274211 , এটি yum-3.4.3-133.el7 এ স্থির করা হয়েছে। তবে আপনাকে কঠোর মোড সক্ষম করতে হবে।

স্ক্রিপ্টিং উদ্দেশ্যে এটি করার সবচেয়ে সহজ উপায় হ'ল কমান্ড-লাইন সুইচ:

yum -y --setopt=skip_missing_names_on_install=False install another_package.x86_64 some_package.x86_64 && run_my_script

তবে আপনি এটিতে একটি কনফিগারেশন বিকল্প হিসাবে সেট করতে পারেন yum.conf:

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