Ogni volta che installo qualcosa con yum, tenta di installare entrambe le versioni x86_64 e i386 del pacchetto, se entrambe sono disponibili. Esiste un modo per vietarlo senza specificare l'arco del pacchetto?
Ogni volta che installo qualcosa con yum, tenta di installare entrambe le versioni x86_64 e i386 del pacchetto, se entrambe sono disponibili. Esiste un modo per vietarlo senza specificare l'arco del pacchetto?
Risposte:
Aggiungi multilib_policy = best al tuo /etc/yum.conf
Yum ora proverà ad installare il pacchetto "migliore" per il tuo sistema e installerà solo quello (finché sarà disponibile).
Supponendo che tu sia su un sistema a 64 bit, yum proverà prima a installare package.x86_64, se ciò non esiste tornerà a i386 e noarch.
L'impostazione predefinita è multilib_policy = all , che significa installare tutti i possibili archi.
Sto usando l'opzione esattaarch = 1 in /etc/yum.conf per qualche tempo, e ha funzionato per me.
Ti consente comunque di specificare manualmente arch, ma se non lo fai, installa solo x86_64, non entrambi.
Secondo il manuale 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.
A proposito, sia multilib_policy = best che correctarch = 1 sembrano essere l'impostazione predefinita da qualche tempo.
Tenterebbe di installare la versione i386 se la versione x86_64 è già installata.
Fai attenzione che se usi exclude in yum.conf potresti escludere che i pacchetti siano disponibili solo in i386 arch
Un modo più sicuro potrebbe essere quello di richiedere esplicitamente l'arco al momento dell'installazione :
yum install package.x86_64
-x, --exclude = pacchetto Esclude un pacchetto specifico per nome o glob dagli aggiornamenti su tutti i repository. Opzione di configurazione: escludi
--disableexcludes = [all | main | repoid] Disabilita le esclusioni definite nei file di configurazione. Accetta una delle tre opzioni: all == disabilita tutto esclude main == disabilita esclude definito in [principale] in yum.conf repoid == disabilita esclude definito per quel repository
sopra dall'uomo puoi usare o puoi installare yumex che ti dà la possibilità di scegliere l'rpm che devi installare.
Quello che funziona per me è rimuovere tutti i pacchetti ix86 dalla macchina. Ora non mi chiede mai di installare nulla a 32 bit.
Per prima cosa configura i tuoi .rpmmacros in questo modo:
cat ~/.rpmmacros
%_query_all_fmt %%{name}-%%{version}-%%{release}.%%{arch}
Quindi esegui questo (presumo bash):
rpm -qa | egrep "i.86$"
Questo ti darà un elenco di rpms non x86_64 attualmente installati. Puoi rimuoverli tutti con questo:
rpm -e $(rpm -qa | egrep "i.x86$")
Ora hai un sistema a 64 bit puro.
-Dave