Gentoo Logo

Riparare manualmente installazioni di portage non funzionanti

1.  Riparare manualmente portage

Scopo

Questo documento suggerirà come aggiornare/riparare l'installazione di portage nel caso in cui non sia possibile lanciare emerge sys-apps/portage. Sebbene non sia un procedimento difficile, è necessario eseguirlo comunque con molta attenzione, seguendo i passi indicati così come compaiono in questo documento (usando se necessario un po' di buonsenso).

Ottenere un tarball di portage

Il primo passo da eseguire è ottenere il tarball (archivio tar) di una versione corrente di portage. Nel testo seguente verrà usato portage-2.1.10.49 come esempio (questa è la versione stabile al momento della scrittura); sostituire questa versione con una di quelle presenti nel tree (insieme dei pacchetti) se possibile.

Versione Python Versione Portage
<= Python 2.5 portage-2.1.6.tar.bz2
>= Python 2.6 portage-2.1.10.49.tar.bz2

Avvertenza: Se la propria corrente versione installata di python riportata da python -V è minore di 2.6 allora bisogna scegliere una versione di portage compatibile con esso. Se si possiede almeno la versione 2.6 di python allora usare portage-2.1.10.49.tar.bz2. Se si ha python 2.4 o 2.5 allora usare portage-2.1.6.tar.bz2.

A seconda della ragione per cui portage non funziona più potrebbe essere comunque possibile usarlo per recuperare il pacchetto di cui sopra: come primo passo provare ad eseguire emerge --fetchonly sys-apps/portage; se ciò non dovesse funzionare, è necessario scaricare manualmente il pacchetto con:

Codice 1.1: Recuperare il pacchetto di portage con wget

# wget -P /usr/portage/distfiles http://distfiles.gentoo.org/distfiles/portage-2.1.10.49.tar.bz2

Concluso questo passaggio si dovrebbe avere a disposizione il pacchetto in /usr/portage/distfiles/portage-2.1.10.49.tar.bz2.

Sostituire la versione installata

Il passaggio seguente consiste nell'estrarre il pacchetto in una directory temporanea; usando /root/portage-recover i comandi per eseguire l'estrazione sono:

Codice 1.2: Estrazione del pacchetto di portage

# cd /root
# mkdir portage-recover
# cd portage-recover
# tar xfj /usr/portage/distfiles/portage-2.1.10.49.tar.bz2

Dopo aver eseguito questo passo, è solamente questione di sostituire i file di python e bash della precedente installazione di portage con quelli dal pacchetto (almeno nella maggior parte dei casi). Per farlo, eseguire:

Codice 1.3: Sostituzione dei file installati

# cd /root/portage-recover/portage-2.1.10.49
# rm -rf /usr/lib/portage/*
# cp -R pym bin /usr/lib/portage/

Se non si sta usando Gentoo su FreeBSD allora è consigliabile rimuovere lo script wrapper per sed poichè non è necessario e causa problemi con vecchie versioni di bash:

Codice 1.4: Rimuovere lo script wrapper per sed

# rm -f /usr/lib/portage/bin/sed

Nota: Se portage è stato accidentalmente disinstallato prima di questo momento o è stato perso il file /etc/make.globals per altre ragioni, è necessario copiare cnf/make.globals in /etc, altrimenti portage potrebbe comportarsi in maniera strana.

Nota: Se la versione precedente di portage era inferiore alla 2.1 allora bisognerebbe eseguire immediatamente emerge --metadata prima di continuare con il passaggio successivo. Questa operazione è necessaria per poter convertire i metadati degli ebuild al nuovo formato usato da portage 2.1 e successivi. Si può comunque eseguire senza problemi tale comando anche se non si ha la sicurezza su quale fosse la versione precedente di portage.

Ora si dovrebbe avere nuovamente un portage funzionante. Per assicurarsi di avere un sistema coerente è necessario eseguire immediatamente emerge sys-apps/portage.

Se si ottiene un messaggio di errore command not found con il precedente emerge, è necessario ricreare il link simbolico:

Codice 1.5: Ricreare il link simbolico emerge

# ln -sf ../lib/portage/bin/emerge /usr/bin/emerge

Se questo procedimento non funziona, probabilmente portage non è guasto ma c'è qualche altro problema la cui risoluzione è al di fuori dello scopo del presente documento. Ricontrollare la Lista dei problemi comuni di portage (ndT: in lingua inglese) e inoltre cercare in bugzilla se il problema è già stato segnalato.



Stampa

Aggiornato il 31 maggio 2007

Oggetto: Il presente documento si propone di aiutare gli utenti a riparare manualmente un'installazione non funzionante di sys-apps/portage.

Marius Mauch
Autore

Emiliano G. Vavassori
Traduzione

Donate to support our development efforts.

Copyright 2001-2014 Gentoo Foundation, Inc. Questions, Comments? Contact us.