Wyklucz konkretne repozytorium z aktualizacji YUM

13

Robię aktualizację całego systemu na RHEL 5.5, a repozytorium IUS EPEL zgłasza brakujący błąd zależności:

php53-mcrypt-5.3.3-4.ius.el5.x86_64 from installed has depsolving problems
--> Missing Dependency: php53-common = 5.3.3-4.ius.el5 is needed by package php53-mcrypt-   5.3.3-4.ius.el5.x86_64 (installed)
Error: Missing Dependency: php53-common = 5.3.3-4.ius.el5 is needed by package php53-mcrypt-5.3.3-4.ius.el5.x86_64 (installed)

Czy istnieje sposób na uruchomienie aktualizacji YUM dla wszystkich innych repozytoriów, ignorując repozytorium IUS EPEL, aby pominąć ten problem zależności?

Wyjaśnienie

Próbuję zainstalować aktualizacje tylko z sieci Redhat. Nie mogę znaleźć nazwy repozytorium, więc nie jestem w stanie zrobić czegoś takiego, sudo yum --disablerepo=* --enablerepo=rhel updateponieważ używana przeze mnie wersja nie obsługuje wielu repozytoriów wymienionych później --disablerepo.

Aktualizacja

Moim tymczasowym obejściem jest uruchomienie sudo yum --exclude=php53* update. Jestem przekonany, że istnieje lepszy sposób. Ten lepszy sposób obejmuje naprawienie rzeczywistego problemu, więc zgłosiłem błąd również do projektu społeczności IUS .

Aktualizacja nr 2

Wygląda na to, że znalazłem problem z zależnością . Nadal uważam, że powinno być możliwe obejście tego problemu.

Dzięki!

Rudzik
źródło
Zaktualizowałem swoją odpowiedź, aby uwzględnić twoje wyjaśnienie.
plazmid87

Odpowiedzi:

21

Spróbuj wyłączyć przełącznik repo:

--disablerepo=REPONAME

AKTUALIZACJA

Aby znaleźć wszystkie obecnie znane repozytoria (włączone i wyłączone):

yum repolist all

Następnie, aby dowiedzieć się, które repozytorium wywołuje żal z powodu powyższego pakietu, spróbuj:

yum list php53-mcrypt-5.3.3-4.ius.el5.x86_64 --showduplicates

To pokaże, które z twoich repozytoriów dostarcza powyższy pakiet (zobaczysz też „zainstalowany” na liście, aby pokazać pakiety zainstalowane lokalnie).

Spróbuj ponownie wyłączyć przełącznik, gdy poznasz repozytorium, używając przełącznika wyłączania repozytorium.

yum update --disablerepo=[from above]

Jeśli powyższe kroki nie pozwalają wyodrębnić repozytorium, które chcesz pominąć, spróbuj przejrzeć plik /etc/yum.repos.d/ , który jest domyślną lokalizacją RHEL dla definicji repozytorium. W tym katalogu zlokalizuj wszystkie niestandardowe pliki bazowe i aktualizacje repozytorium RHEL i włącz włączone = 0 , np.

[repo]
enabled=0

Mam nadzieję że to pomoże.

plazmid87
źródło
Może to działać, gdybym mógł określić wiele repozytoriów. Próbowałem --disablerepo=epel --disablerepo=iusi --disablerepo=epel,ius.
Robin
yum repolist allpokazuje, że włączone są tylko następujące repozytoria: epel, ius i rhel-x86_64-server-5. Twoje --showduplicatespolecenie pokazuje, że pakiet został zainstalowany z ius repo. Więc wypróbowałem następujące sudo yum --disablerepo=* --enablerepo=rhel-x86_64-server-5 updatei nadal zgłasza błąd zależności w tym samym pakiecie. Próbowałem też wyłączyć repozytorium, zmieniając enabled=0ustawienie w /etc/yum.repos.d/
Robin
Wyobrażam sobie, że po zainstalowaniu repozytorium IUS było ono skonfigurowane tak, aby było domyślnie włączone. Spróbuj zamiast tego: sudo yum update --disablerepo=iuszakładając, że wszystkie inne repo są domyślnie włączone. W przeciwnym razie spróbuj po prostu sudo yum update --exclude=php53-mcrypt-5.3.3-4.ius.el5.x86_64całkowicie pominąć ten pakiet.
plazmid87
Żadna z tych opcji nie działa. Coś mi brakuje.
Robin
Mogę sobie tylko wyobrazić, że coś innego wymaga uaktualnienia tego pakietu w ramach procesu aktualizacji. Jeśli uruchomisz sudo yum deplist php53-mcrypt-5.3.3-4.ius.el5.x86_64, pokaże wszystkie zależności i dostawców dla tego konkretnego pakietu. Z mojego doświadczenia z pakietami PHP i RHEL jest to powszechny problem. Nie chcę odchodzić od omawianego problemu, ale znalazłem Remi, który zapewnia najlepsze pakiety dla PHP, nigdy nie miałem problemu z zależnością od PHP po przejściu na ich repozytorium.
plazmid87
1

najłatwiej to zrobić, komentując Linuksa przy pomocy niechcianego repozytorium w /etc/yum.repos.d/

fromnaboo
źródło
1

Możesz wyłączyć wiele repozytoriów w wierszu poleceń yum:

yum update --disablerepo=myrepo1 --disablerepo=myrepo2 --disablerepo=myrepo3

Jednak jeśli to zrobisz, musisz jawnie włączyć repozytorium, które chcesz:

yum update --disablerepo=myrepo1 --disablerepo=myrepo2 \
           --disablerepo=myrepo3 --enablerepo=TheRepoIWant
LukeInDC
źródło