RHEL5: Zabronić instalacji pakietów i386 w systemach 64-bitowych?


13

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:


16

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.


1
+1 Tak, to najlepsza odpowiedź. Niestety większość ludzi nie ma teraz tej opcji.
knweiss

3

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.


2

Użyj funkcji wykluczenia w yum.conf:

exclude=*.i386 *.i686

Lub exclude=*.i?86(/etc/yum.conf). W ten sposób wyszukiwarka yum nie wyświetli nawet pakietów 32-bitowych.
basic6

1

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

0

-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ć.

http://www.yum-extender.org/blog/


Wiem o wykluczeniach, po prostu nie chcę ich pisać za każdym razem, nie chcę też tworzyć aliasów. Po prostu nie sądzę, aby domyślnie instalować i386 w systemie 64-bitowym.
Nikolai Prokoschenko

w takim przypadku wybieracie z GUI lepsze opcje
Rajat

0

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


-3

Lista i386

yum list installed | grep i386

A teraz możesz go usunąć lub zaktualizować do x86_64


1
To nie odpowiada na pytanie.
Sven

Chociaż może to być przydatne do naprawy sytuacji, nie jest to odpowiedź na pytanie, jak zapobiec ich instalacji w pierwszej kolejności ...
HBruijn
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.