Za każdym razem, gdy instaluję coś z yum, próbuje zainstalować zarówno wersję pakietu x86_64, jak i i386, jeśli oba są dostępne. Czy jest jakiś sposób, aby zabronić tego bez określania łuku paczki?
Za każdym razem, gdy instaluję coś z yum, próbuje zainstalować zarówno wersję pakietu x86_64, jak i i386, jeśli oba są dostępne. Czy jest jakiś sposób, aby zabronić tego bez określania łuku paczki?
Odpowiedzi:
Dodaj multilib_policy = best do swojego /etc/yum.conf
Yum spróbuje teraz zainstalować „najlepszy” pakiet.arch dla twojego systemu i zainstaluje tylko ten jeden (o ile jest dostępny).
Zakładając, że jesteś w systemie 64-bitowym, yum najpierw spróbuje zainstalować pakiet. X86_64, jeśli to nie istnieje, wróci do wersji i386 i noarch.
Domyślne ustawienie to multilib_policy = all , co oznacza zainstalowanie wszystkich możliwych łuków.
Od pewnego czasu korzystam z opcji exactarch = 1 w pliku /etc/yum.conf i zadziałało to dla mnie.
Nadal pozwala ręcznie określić arch, ale jeśli nie, instaluje tylko x86_64, a nie oba.
Zgodnie z instrukcją el6 , yum.conf (5) :
exactarch Either ‘1’ or ‘0’. Set to ‘1’ to make yum update only update the architectures of packages that you have installed. ie: with this enabled yum will not install an i686 package to update an i386 package. Default is ‘1’.
...
multilib_policy Can be set to ’all’ or ’best’. All means install all possible arches for any package you want to install. Therefore yum install foo will install foo.i386 and foo.x86_64 on x86_64, if it is available. Best means install the best arch for this platform, only.
BTW, zarówno multilib_policy = best, a exactarch = 1 wydają się być domyślnie przez jakiś czas.
Spróbuje zainstalować wersję i386, jeśli masz już zainstalowaną wersję x86_64.
Zwróć uwagę, że jeśli użyjesz wykluczenia w yum.conf, możesz wykluczyć pakiety dostępne tylko w i386 arch
Bezpieczniejszym sposobem może być jawne zażądanie arch w czasie instalacji :
yum install package.x86_64
-x, --exclude = pakiet Wyklucz konkretny pakiet według nazwy lub globu z aktualizacji we wszystkich repozytoriach. Opcja konfiguracji: wyklucz
--disableexcludes = [all | main | repoid] Wyłącz wykluczenia zdefiniowane w plikach konfiguracyjnych. Przyjmuje jedną z trzech opcji: all == wyłącz wszystkie wykluczenia main == wyłącz wykluczenia zdefiniowane w [main] w yum.conf repoid == wyłącz wykluczenia zdefiniowane dla tego repozytorium
powyżej od człowieka, którego możesz użyć lub możesz zainstalować yumex, który daje ci wybór rpmów, które musisz zainstalować.
To, co działa dla mnie, to usunięcie wszystkich pakietów ix86 z komputera. Teraz nigdy nie prosi mnie o zainstalowanie 32-bitowego oprogramowania.
Najpierw skonfiguruj .rpmmacros w następujący sposób:
cat ~/.rpmmacros
%_query_all_fmt %%{name}-%%{version}-%%{release}.%%{arch}
Następnie uruchom to (zakładam, że bash):
rpm -qa | egrep "i.86$"
To da ci listę aktualnie zainstalowanych RPM innych niż x86_64. Możesz usunąć je wszystkie w ten sposób:
rpm -e $(rpm -qa | egrep "i.x86$")
Teraz masz czysty system 64-bitowy.
-Dave