z mniam, jak możesz usunąć pakiet, ale nie usunąć jednocześnie jego zależności?

13

Dzisiaj, jeśli to zrobię $ yum remove packageA, przywitają mnie:

Removing:
packageA                        noarch                 3.5.1.b37-15                                 @yumFS                 293 k
Removing for dependencies:
 packageB                      noarch                 3.5.1.b125-7                                 @yumFS                  87 M
..
Is this ok?

Chciałbym usunąć pakiet A bez usuwania pakietu B (itp.) Czy jest to możliwe?

rogerdpack
źródło
1
Możliwe ? Tak. Ale głównym celem menedżerów pakietów jest właśnie temu zapobiec. Google szuka „RPM Hell”, aby uzyskać dobry pomysł na to, co sam konfigurujesz, robiąc coś takiego.
DopeGhoti

Odpowiedzi:

18

Wydaje się możliwe przy użyciu rpm:

$ rpm -e --nodeps packageA

ale oczywiście bądź bardzo ostrożny, ponieważ jeśli usuniesz pakiet zależności i nie odłożysz go z powrotem, może to prowadzić do nieoczekiwanych wyników dla pakietów, które nadal od niego zależą ...

rogerdpack
źródło
Pytanie o to. Miałem problem z wersją zależności, ostrzeżenie było Application built with libpng-1.6.16 but running with 1.5.13. Myślałem, że po prostu go wymienię, ale yumchciałem usunąć mnóstwo rzeczy, jeśli najpierw je usunę libpng. Użyłem więc podejście pokazać tutaj, aby usunąć zarówno libpnga libpng-devel, a następnie zbudowany i zainstalowany libpng-1.6.1ze źródła, a mój problem odszedł. Chociaż działało w przypadku oprogramowania, którego od razu potrzebowałem (Mapnik), czy mogę ufać, że nie zepsułem czegoś innego z powrotem, np. Czegoś, co yumpoczątkowo chciałem usunąć razem libpng?
elrobis
Więc nie było opcji pakietu, aby zainstalować 1.6? Hmm, mam przeczucie, że używają bibliotek współdzielonych i jesteś dobry, ale też nie zostali przetestowani przez menedżerów pakietów, więc ... Nie wiem, jak działa system zarządzania pakietami.
rogerdpack,
1

Odkryłem, że można to zrobić z mniam tak:

sudo yum remove --noautoremove <package name>
Jaime
źródło
2
Hmm ... Wypróbowałem to na CentOS 6 i 7 i dostałem „brak takiej opcji: - noautoremove” jakieś pomysły?
rogerdpack,
3
Miałem Fedorę 29, kiedy testowałem nowy pakiet, który właśnie utworzyłem. Hmm .. zastanawiam się, czy to tylko fedora.
Jaime