Dlaczego zawsze należy używać `rpm -U`, a nie` rpm -i`, aby zainstalować pakiet?


19

rpm ma opcję -i( --install) do zainstalowania pakietu
rpm ma opcję -U( --upgrade), która zainstaluje lub zaktualizuje pakiet

Dokumentacja red hat wskazuje, że rpm -ijest to całkowicie akceptowalne.

Jednak każda dokumentacja, jaką kiedykolwiek widziałem, zaleca używanie -U, nawet jeśli pakiet jest instalowany po raz pierwszy.

Dlaczego jest rpm -Upowszechnie preferowany rpm -i?

Odpowiedzi:


37

Większość dokumentacji sugeruje -Usię -i, ponieważ -imogą zawieść , jeśli pakiet został już zainstalowany, lub już zainstalowana wcześniejsza wersja; natomiast -Uzakończy się sukcesem, nawet jeśli „aktualizacja” z pakietu w ogóle nie zostanie zainstalowana. Podając instrukcje, podobnie jak w przypadku dokumentacji, ogólnie lepiej jest wydawać polecenia o niższym prawdopodobieństwie wystąpienia awarii.


1

Dokumentacja faktycznie nie mówi, że -ipowinna być używana do aktualizacji. Mówi, że należy go używać do aktualizacji jądra. Powodem jest to, że jeśli system nie uruchomi się z nowym jądrem, nadal masz dostępne stare jądro. Jest to jednak szczególny przypadek - pakiety jądra są prawie ortogonalne w tym sensie, że nie posiadają konfliktowych plików, ponieważ wszystko jest wersjonowane (moduły jądra, initrd i biblioteki z różnych pakietów jądra mogą żyć obok siebie).

Zwykłe pakiety przestrzeni użytkownika rzadko są tak niezależne. Jeśli rpm -iwykonasz aktualizację, prawdopodobnie skończy się to, że zainstalowane zostaną dwa pakiety o tej samej nazwie (i innej wersji) w tym samym czasie, a wcześniejsze zostaną zepsute (w połowie nadpisane). W rzeczywistości możliwe jest dwukrotne zainstalowanie tego samego pakietu - kiedy to nastąpi, niektóre narzędzia i / lub ludzie mogą się raczej pomylić.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.