2016-02-07 23 views
24

Sono in esecuzione sudo pacman -Syu sul mio Archlinux e sto ottenendo il seguente:Impossibile aggiornare Archlinux (pacman -Syu non funzionante)

[email protected]:~$ sudo pacman -Syu 
:: Synchronizing package databases... 
core is up to date 
extra is up to date 
community is up to date 
multilib is up to date 
xenlism-arch is up to date 
:: Starting full system upgrade... 
resolving dependencies... 
looking for conflicting packages... 
error: failed to prepare transaction (could not satisfy dependencies) 
:: package-query: requires pacman<4.3 

Quale sarà la soluzione per risolvere questo problema?

UPDATE

ho provato entrambe le soluzioni sugested da @jham. Ho rimosso completamente yaourt e query sui pacchetti. A pacman -Qi pacman a 'richiesto da' ho none. Ho anche commentato multilib e xenlism-arch da pacman.conf. Quando faccio pacman -Syu ottengo il seguente:

:: Proceed with installation? [Y/n] 
(244/244) checking keys in keyring        [###################################] 100% 
(244/244) checking package integrity       [###################################] 100% 
error: confuse: signature from "Thorsten Töpper <[email protected]>" is unknown trust 
:: File /var/cache/pacman/pkg/confuse-2.8-2-x86_64.pkg.tar.xz is corrupted (invalid or corrupted package (PGP signature)). 
Do you want to delete it? [Y/n] 
error: failed to commit transaction (invalid or corrupted package) 
Errors occurred, no packages were upgraded. 
+1

Avete package-query e yaourt installato? Se sì, probabilmente hai un conflitto con la query del pacchetto. Provare 'yaourt -S pacchetto-query' e quindi avviare di nuovo l'aggiornamento con pacman. Successivamente sarà necessario ricostruire la query del pacchetto, poiché probabilmente non sarà compatibile con il nuovo pacman. – jham

+1

Generalmente, sembra che ci sia un pacchetto installato localmente che non è gestito nel repository ufficiale di archlinux). È possibile verificare quali pacchetti richiedono la versione di pacman attualmente installata con 'pacman -Qi pacman' (cercare la sezione" Richiesto da "nell'output). Un buon inizio per vedere se uno qualsiasi dei pacchetti elencati si presenta nell'elenco dei pacchetti installati localmente (ad esempio over yaourt) con 'pacman -Qm'. Se ne trovi uno, rimuovi il pacchetto e prova di nuovo l'aggiornamento con pacman. Inoltre, è possibile che vi sia un conflitto con un pacchetto dal repository multilib o xenlism-arch che hai aggiunto. – jham

+0

Ho aggiornato la domanda iniziale con la situazione attuale dopo aver provato le tue soluzioni jham. Per favore controlla. Grazie. – Cristian

risposta

42

Ho appena avuto questo stesso errore. Il problema sembra essere che ci sono nuove chiavi nel pacchetto archlinux-keyring e nuovi pacchetti (confuse) firmati con quelle chiavi. Poiché entrambi i pacchetti vengono aggiornati nella stessa transazione, le nuove chiavi non possono essere utilizzate fino al completamento dell'aggiornamento, ma la transazione non verrà avviata fino a quando i pacchetti non verranno controllati ...

La soluzione sarebbe aggiornare il archlinux-keyring da stessa:

pacman -S archlinux-keyring 

E poi fare il resto:

pacman -Su 

Se non funziona, si potrebbe provare che attraversa le chiavi manualmente, con:

pacman-key --populate 

ma in genere, non è necessario.

+0

Grazie. Ha funzionato. – Cristian

+0

Ho rimosso '/ etc/pacman.la directory d/gnupg' per reimpostare tutte le chiavi, 'pacman-key --populate' ha salvato il giorno –

2

Per chiunque entri qui che non ha trovato la soluzione di rorido funzionante, prova gli utenti Bernhard Fürst's o Jham's answer del solo pacman -S package-query che ha funzionato per me senza problemi.

Inoltre, se si verificano ancora problemi come this con libalpm.so.8: cannot open shared object file: No such file or directory, è necessario reinstallare manualmente package-query e yaourt.

sudo pacman-db-upgrade 
yaourt -R package-query yaourt 

git clone https://aur.archlinux.org/package-query.git 
cd package-query 
makepkg -si 
cd .. 
git clone https://aur.archlinux.org/yaourt.git 
cd yaourt 
makepkg -si 
cd .. 
7

mi è capitato di avere lo stesso problema, e risolto nel modo seguente:

$ sudo pacman -Rdd package-query # Purge the conflicting package-query 
$ sudo pacman -Syu    # There it works 

# Now reinstall package-query 
$ git clone https://aur.archlinux.org/package-query.git 
$ cd package-query && makepkg -si 
Problemi correlati