paket mevcut olmadığında yum hata vermelidir


14

Son zamanlarda bir komut dosyasında bir hata ile karşılaştım burada aşağıdakileri yapmaya çalıştım:

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

Komut dosyası daha yeni bir CentOS üzerinde iyi çalıştı, ancak Cent OS 5'te çalıştırmayı denediğimde some_package.x86_64mevcut değildi. Ancak hata vermek ve durdurmak yerine yumsadece mesajı yazdırdı:

No package some_package.x86_64 available.

yumKomut dosyalarımı daha sağlam hale getirmek için bu gibi durumlarda (varsayılan olarak hangi IMO olması gerekir) hataya nasıl zorlayabilirim ?


Senaryonuzu daha fazla isyan oluşturun ve devam etmeden önce yum'un dönüş değerini kontrol edin.
frlan

1
@frlan Sorun bu. bu durumda yummutlulukla geri döner 0. Betiğim, devam etmeden önce dönüş değerini zaten kontrol ediyor. Dikkat edin &&?
pmr

Yanıtlar:


11

Bulduğunuz gibi, bu davranış RHEL 5 ile 6 arasında değişti ( bazı tartışmalar için https://bugzilla.redhat.com/show_bug.cgi?id=736694 adresine bakın ). Bu bağlantıdan, dönüş kodunun kontrol edilmesi yum info <pkg>komut dosyanızı gerektiği gibi iptal etmenize izin vermelidir. Gibi bir şey:

# 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
Tamam, bu yardımcı olur ve bunun varsayılan olması gerektiğini düşünmek için deli olmadığımı doğrular.
pmr

2
yardımcı olur, mevcut yum davranış komut dosyası kullanımı için oldukça düşmanca.
Karata

14

Başına Bug 1274211 , bu yum-3.4.3-133.el7 giderilmiştir. Ancak, katı modu etkinleştirmeniz gerekir.

Komut dosyası oluşturma amacıyla bunu yapmanın en kolay yolu komut satırı anahtarıdır:

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

Ancak, bunu aşağıdakilerinde bir yapılandırma seçeneği olarak da ayarlayabilirsiniz yum.conf:

[main]
skip_missing_names_on_install=0
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.