# [RISOLTO] Portage corrotto

## fbcyborg

Ho fatto un bel 

```
emerge -uDNav world
```

 sulla mia gentoo per x86.

Il sistema è stabile, o meglio, i pacchetti che lo costituiscono. Infatti durante la compilazione con emerge dopo che è avvenuto l'aggiornamento di portage alla versione 2.1 (questo aggiornamento mi sta veramente sulle scatole poichè crea solo casini, dio solo lo sa che rivoluzione sta creando questo portage) quando sono arrivato alla compilazione di autoconf-wrapper, il primo messaggio che ho avuto era:

```
line 21: newexe: command not found
```

newexe appartiene a portage 2.1 pare... 

Ok... visto che non c'era niente da fare per andare avanti mi sono deciso a downgradare portage alla 2.0.54-r2. Ebbene adesso ho altri problemi...

Se tento di fare un emerge -uDN world ecco cosa accade:

```
These are the packages that I would merge, in order:

Calculating world dependencies

!!! Packages for the following atoms are either all

!!! masked or don't exist:

media-libs/aalib net-wireless/bluez-libs x11-themes/gdeskcal-skins app-mobilephone/obexftp app-text/acroread net-www/netscape-flash media-video/vlc app-arch/unrar app-antivirus/klamav x11-misc/gtkdiff x11-drivers/synaptics app-portage/profuse media-gfx/splash-themes-gentoo net-wireless/bluetooth-alsa-kernel www-client/mozilla-firefox media-video/mplayer sys-process/vixie-cron media-video/ogle-gui net-irc/xchat-systray app-portage/eix media-gfx/splash-themes-livecd sys-apps/usermode-utilities app-office/openoffice-bin net-wireless/bluetooth-alsa-utils dev-libs/openobex sys-fs/reiserfsprogs x11-misc/gdeskcal sys-apps/slocate media-gfx/splashutils media-sound/alsa-utils x11-base/xorg-x11 net-misc/dhcpcd net-im/skype sys-libs/libutempter sys-apps/pciutils net-wireless/bluez-utils app-admin/syslog-ng sys-boot/grub media-video/kplayer dev-util/ccache sys-libs/glibc dev-util/debootstrap media-gfx/bootsplash-themes app-editors/nano sys-power/acpid media-video/xine-ui app-arch/gzip sys-kernel/gentoo-sources net-misc/bridge-utils net-fs/nfs-utils net-im/gaim app-mobilephone/kmobiletools dev-java/java-sdk-docs net-misc/dhcp kde-base/kde kde-misc/yakuake sys-devel/gettext net-firewall/iptables app-portage/gentoolkit net-irc/xchat app-antivirus/clamav net-wireless/kdebluetooth sys-apps/hotplug sys-fs/dazuko app-mobilephone/gnokii

!!! All ebuilds that could satisfy "sys-apps/man-pages" have been masked.

!!! One of the following masked packages is required to complete your request:

Traceback (most recent call last):

  File "/usr/bin/emerge", line 3117, in ?

    if not mydepgraph.xcreate(myaction):

  File "/usr/bin/emerge", line 1426, in xcreate

    if not self.select_dep(portage.root, mydep):

  File "/usr/bin/emerge", line 1269, in select_dep

    mreasons = portage.getmaskingstatus(p)

  File "/usr/lib/portage/pym/portage.py", line 3960, in getmaskingstatus

    mygroups, eapi = portdb.aux_get(mycpv, ["KEYWORDS", "EAPI"])

  File "/usr/lib/portage/pym/portage.py", line 5321, in aux_get

    self.auxdb[mylocation][cat] = self.auxdbmodule(self.depcachedir+"/"+mylocation,cat,auxdbkeys,uid,portage_gid)

  File "/usr/lib/portage/pym/cache/metadata_overlay.py", line 20, in __init__

TypeError: 'int' object is not callable

```

Portage è letteralmente impazzito.. e adesso? Ho cercato dappertutto, google, forum, bugs.gentoo.org .. non so più dove sbattere la testa.

Devo buttare la mia gentoo?

----------

## gamberetto

Ciao, non sono molto competente ma forse è un problema di cache di portage che cambia passando alla versione 2.1: prova a dare 

```
emerge --metadata
```

 per rigenerare la cache. Magari prova prima con la versione 2.1 e poi ridai il comando per l'aggiornamento. E se proprio non ti funziona, non credo che la soluzione migliore sia fare il downgrade di portage...

----------

## .:chrome:.

esperimento

rinomina /usr/portage e /etc/portage, poi rifai il sync

----------

## otaku

Non è che usi il bashrc di fonderia?

Se si, prova ad usare questo: http://portage-bashrc.sourceforge.net/

è abbastanza comodo e aggiunge qualche feature in più  :Wink: 

Il post in cui se ne parla è https://forums.gentoo.org/viewtopic-t-472111-highlight-command+not+found.html

 :Wink: 

----------

## fbcyborg

Dunque, mi sa che ho fatto un po' troppo casino:

uso il bashrc di fonderia, ma l'avevo disabilitato appunto perché sapevo che con l'aggiornamento si verificassero dei problemi. Ho eliminato anche /etc/bashrc. Sto usando anche il Tool "Portatile felice" per compilare i pacchetti del mio portatile (ma comunque i problemi si presentano anche se provo direttamente dal portatile).

Il fatto è che il downgrade di portage è già stato effettuato. Ma come dicevo, non ne ho beneficiato.

In ogni caso non riesco a dare il comando 

```
portage --metadata
```

 perchè non ho un comando "portage" da poter eseguire.

 *k.gothmog wrote:*   

> esperimento
> 
> rinomina /usr/portage e /etc/portage, poi rifai il sync
> 
> 

 

Ti prego di scusarmi ma questa non l'ho capita!    :Confused: 

Quindi dovrei usare questo: https://forums.gentoo.org/viewtopic-t-469501.html ?

In ogni caso 

 *otaku wrote:*   

> Il post in cui se ne parla è https://forums.gentoo.org/viewtopic-t-472111-highlight-command+not+found.html 

 

avevo già dato uno sguardo a quel post, ma anche cancellando /etc/bashrc, come dicevo prima, non risolvo nulla... adesso se provo a fare 

```
emerge -av portage
```

ecco cosa viene fuori:

```

These are the packages that I would merge, in order:

Calculating dependencies

!!! All ebuilds that could satisfy "portage" have been masked.

!!! One of the following masked packages is required to complete your request:

!!! Problem in sys-apps/portage dependencies.

!!! 'int' object is not callable exceptions

```

L'ultimo messaggio penso sia il più indicativo! NON ho mascherato nulla, potete scommetterci.

----------

## Onip

il comando da dare è

```
# emerge --metadata
```

Il consiglio di k.gothmog è quello di farti un bel backup delle dir fondamentali di portage (rinominarle va più che bene) e poi rifare un --sync, così da partire da un portage sicuramente pulito.

----------

## fbcyborg

Ok! allora tanto vale eliminare tutto il contenuto  della dir di portage.. tanto con il sync si ripristina...

ok, ma facendo 

```
emerge --metadata
```

 (cosa che mi pare di capire venga fatta anche con l'emerge --sync)

fallisce l'aggiornamento della cache.

ci sono una marea di messaggi come questo:

```
Failed cache update: xfce-extra/xfwm4-themes-4.2.2-r1 'int' object is not callable
```

----------

## Scen

Non è che per caso stai utilizzando il "trucchetto" per la velocizzazione della cache di Portage tramite CDB?

----------

## fbcyborg

 *Scen wrote:*   

> Non è che per caso stai utilizzando il "trucchetto" per la velocizzazione della cache di Portage tramite CDB?

 

no

----------

## gamberetto

Tanto per avere una visione d'insieme prova a dare l'output di 

```
# emerge --info
```

 Non so se potrebbe essere python che ha bisogno di un 

```
# python-updater
```

 Potrebbe essere la RAM o il filesystem?

Forse ho messo un po' troppa carne al fuoco...  :Wink: 

----------

## randomaze

 *fbcyborg wrote:*   

> fallisce l'aggiornamento della cache.

 

Hai provato a rimuovere manualmente la cache? (magari non cancellarla ma spostala in un altra directory...)

----------

## fbcyborg

Ecco cosa accade se do un python-updater:

```
# python-updater

 * Logging disabled due to permissions

Traceback (most recent call last):

  File "<string>", line 1, in ?

  File "/usr/lib/portage/pym/portage.py", line 7231, in ?

    portdb=portdbapi(settings["PORTDIR"])

  File "/usr/lib/portage/pym/portage.py", line 5191, in __init__

    self.auxdbmodule  = self.mysettings.load_best_module("portdbapi.auxdbmodule")

  File "/usr/lib/portage/pym/portage.py", line 1232, in load_best_module

    return load_mod(best_mod)

  File "/usr/lib/portage/pym/portage.py", line 139, in load_mod

    mod = __import__(modname)

  File "/usr/lib/portage/pym/cache/metadata_overlay.py", line 10, in ?

  File "/usr/lib/portage/pym/cache/metadata.py", line 9, in ?

ImportError: No module named eclass_cache

Traceback (most recent call last):

  File "<string>", line 1, in ?

  File "/usr/lib/portage/pym/portage.py", line 7231, in ?

    portdb=portdbapi(settings["PORTDIR"])

  File "/usr/lib/portage/pym/portage.py", line 5191, in __init__

    self.auxdbmodule  = self.mysettings.load_best_module("portdbapi.auxdbmodule")

  File "/usr/lib/portage/pym/portage.py", line 1232, in load_best_module

    return load_mod(best_mod)

  File "/usr/lib/portage/pym/portage.py", line 139, in load_mod

    mod = __import__(modname)

ImportError: Bad magic number in /usr/lib/portage/pym/cache/__init__.pyc

Traceback (most recent call last):

  File "<string>", line 1, in ?

  File "/usr/lib/portage/pym/portage.py", line 7231, in ?

    portdb=portdbapi(settings["PORTDIR"])

  File "/usr/lib/portage/pym/portage.py", line 5191, in __init__

    self.auxdbmodule  = self.mysettings.load_best_module("portdbapi.auxdbmodule")

  File "/usr/lib/portage/pym/portage.py", line 1232, in load_best_module

    return load_mod(best_mod)

  File "/usr/lib/portage/pym/portage.py", line 139, in load_mod

    mod = __import__(modname)

  File "/usr/lib/portage/pym/cache/metadata_overlay.py", line 10, in ?

  File "/usr/lib/portage/pym/cache/metadata.py", line 9, in ?

ImportError: No module named eclass_cache

 * Starting Python Updater from 2.3 to 2.4 :

 * Searching for packages with files in /usr/lib/python2.3 /usr/lib32/python2.3 /usr/lib64/python2.3 ..

 * Calculating Upgrade Package List ..

 * Re-ordering packages to merge ..

Traceback (most recent call last):

  File "/usr/portage/dev-lang/python/files/depreorder-topsort.py", line 6, in ?

    import portage

  File "/usr/lib/portage/pym/portage.py", line 7231, in ?

    portdb=portdbapi(settings["PORTDIR"])

  File "/usr/lib/portage/pym/portage.py", line 5191, in __init__

    self.auxdbmodule  = self.mysettings.load_best_module("portdbapi.auxdbmodule")

  File "/usr/lib/portage/pym/portage.py", line 1232, in load_best_module

    return load_mod(best_mod)

  File "/usr/lib/portage/pym/portage.py", line 139, in load_mod

    mod = __import__(modname)

  File "/usr/lib/portage/pym/cache/metadata_overlay.py", line 10, in ?

  File "/usr/lib/portage/pym/cache/metadata.py", line 9, in ?

ImportError: No module named eclass_cache

 * Preparing to merge these packages in this order:

 * Python update completed successfully.

```

Parte di quei messaggi me li dava anche in altre occasioni... 

Successivmente se do un emerge -uDN world:

```
These are the packages that I would merge, in order:

Calculating world dependencies

!!! Packages for the following atoms are either all

!!! masked or don't exist:

media-libs/aalib net-wireless/bluez-libs x11-themes/gdeskcal-skins app-mobilephone/obexftp app-text/acroread net-www/netscape-flash media-video/vlc app-arch/unrar app-antivirus/klamav x11-misc/gtkdiff x11-drivers/synaptics app-portage/profuse media-gfx/splash-themes-gentoo net-wireless/bluetooth-alsa-kernel www-client/mozilla-firefox media-video/mplayer sys-process/vixie-cron media-video/ogle-gui net-irc/xchat-systray app-portage/eix media-gfx/splash-themes-livecd sys-apps/usermode-utilities app-office/openoffice-bin net-wireless/bluetooth-alsa-utils dev-libs/openobex sys-fs/reiserfsprogs x11-misc/gdeskcal sys-apps/slocate media-gfx/splashutils media-sound/alsa-utils x11-base/xorg-x11 net-misc/dhcpcd net-im/skype sys-libs/libutempter sys-apps/pciutils net-wireless/bluez-utils app-admin/syslog-ng sys-boot/grub media-video/kplayer dev-util/ccache sys-libs/glibc dev-util/debootstrap media-gfx/bootsplash-themes app-editors/nano sys-power/acpid media-video/xine-ui app-arch/gzip sys-kernel/gentoo-sources net-misc/bridge-utils net-fs/nfs-utils net-im/gaim app-mobilephone/kmobiletools dev-java/java-sdk-docs net-misc/dhcp kde-base/kde kde-misc/yakuake sys-devel/gettext net-firewall/iptables app-portage/gentoolkit net-irc/xchat app-antivirus/clamav net-wireless/kdebluetooth sys-apps/hotplug sys-fs/dazuko app-mobilephone/gnokii

!!! All ebuilds that could satisfy "sys-apps/man-pages" have been masked.

!!! One of the following masked packages is required to complete your request:

Traceback (most recent call last):

  File "/usr/bin/emerge", line 3117, in ?

    if not mydepgraph.xcreate(myaction):

  File "/usr/bin/emerge", line 1426, in xcreate

    if not self.select_dep(portage.root, mydep):

  File "/usr/bin/emerge", line 1269, in select_dep

    mreasons = portage.getmaskingstatus(p)

  File "/usr/lib/portage/pym/portage.py", line 3960, in getmaskingstatus

    mygroups, eapi = portdb.aux_get(mycpv, ["KEYWORDS", "EAPI"])

  File "/usr/lib/portage/pym/portage.py", line 5321, in aux_get

    self.auxdb[mylocation][cat] = self.auxdbmodule(self.depcachedir+"/"+mylocation,cat,auxdbkeys,uid,portage_gid)

  File "/usr/lib/portage/pym/cache/metadata_overlay.py", line 20, in __init__

TypeError: 'int' object is not callable

```

emerge --info:

```
Portage 2.0.54-r2 (default-linux/x86/2006.0, gcc-3.4.6, glibc-2.3.6-r4, 2.6.17-gentoo-r2-skas3-v9-pre9 i686)

=================================================================

System uname: 2.6.17-gentoo-r2-skas3-v9-pre9 i686 AMD Athlon(tm) 64 Processor 3000+

Gentoo Base System version 1.6.14

ccache version 2.3 [disabled]

app-admin/eselect-compiler: [Not Present]

dev-lang/python:     2.3.5, 2.4.3-r1

dev-python/pycrypto: 2.0.1-r5

dev-util/ccache:     2.3

dev-util/confcache:  [Not Present]

sys-apps/sandbox:    1.2.17

sys-devel/autoconf:  2.13, 2.59-r7

sys-devel/automake:  1.4_p6, 1.5, 1.6.3, 1.7.9-r1, 1.8.5-r3, 1.9.6-r1

sys-devel/binutils:  2.16.1-r3

sys-devel/gcc-config: 1.3.13-r3

sys-devel/libtool:   1.5.22

virtual/os-headers:  2.6.11-r5

ACCEPT_KEYWORDS="x86"

AUTOCLEAN="yes"

CBUILD="i686-pc-linux-gnu"

CFLAGS="-march=athlon-tbird -O2 -pipe"

CHOST="i686-pc-linux-gnu"

CONFIG_PROTECT="/etc /usr/kde/3.5/env /usr/kde/3.5/share/config /usr/kde/3.5/shutdown /usr/share/X11/xkb /usr/share/config"

CONFIG_PROTECT_MASK="/etc/gconf /etc/revdep-rebuild /etc/splash /etc/terminfo /etc/env.d"

CXXFLAGS="-march=athlon-tbird -O2 -pipe"

DISTDIR="/usr/portage/distfiles"

FEATURES="autoconfig distlocks sandbox sfperms strict"

GENTOO_MIRRORS="http://www.die.unipd.it/pub/Linux/distributions/gentoo-sources/  #http://mir.zyrianes.net/gentoo/"

LANG="it_IT@euro"

LC_ALL="it_IT@euro"

PKGDIR="/usr/portage/packages"

PORTAGE_TMPDIR="/var/tmp"

PORTDIR="/usr/portage"

PORTDIR_OVERLAY="/usr/local/portage"

SYNC="rsync://rsync.europe.gentoo.org/gentoo-portage"

USE="x86 3dnow S3TC X a52 aac aalib acpi alsa apache2 apm arts audiofile avi berkdb bitmap-fonts bluetooth bzip2 cdr clamav cli crypt cups curl dlloader dri dv dvd dvdr dvdread eds emboss encode esd expat extensions fam fat fbcon fbsplash ffmpeg foomaticdb fortran gd gdbm gif gimp gimpprint glut gmp gpm gstreamer gtk gtk2 idn imlib ipv6 isdnlog ithreads java jfs john jpeg kde lcms libg++ libwww mad mikmod mmx mng motif mp3 mpeg mpeg2 mpeg4 mplayer ncurses nfs nls nptl nptlonly nsplugin ntfs ntlm nvidia ogg opengl oss pam pcre pdflib perl png ppds pppd python qt qt3 qt4 quicktime rar readline real reflection samba sdl sensord session spell spl ssl stream svga tcpd threads tiff toolbar truetype truetype-fonts type1-fonts udev usb vorbis wifi win32codecs xchatdccserver xine xml xml2 xmms xorg xprint xv xvid zlib input_devices_keyboard input_devices_mouse input_devices_evdev userland_GNU kernel_linux elibc_glibc"

Unset:  CTARGET, INSTALL_MASK, LDFLAGS, LINGUAS, MAKEOPTS, PORTAGE_RSYNC_EXTRA_OPTS, PORTAGE_RSYNC_OPTS

```

----------

## gamberetto

Ciao,

beh, se ci riesci ti consiglio di passare di nuovo a portage 2.1

Poi un'altra cosa che mi viene in mente e` etc-update.

Tra le mie FEATURES c'e` anche "metadata-transfer" impostata di default, ma forse viene impostata automaticamente all'aggiornamento al portage 2.1 quindi  naturale che tu non ce l'abbia.

Ma intanto prova etc-update...

----------

## fbcyborg

Avevo già provato l'etc-update.. comunque:

```
# etc-update

Traceback (most recent call last):

  File "<string>", line 1, in ?

  File "/usr/lib/portage/pym/portage.py", line 7231, in ?

    portdb=portdbapi(settings["PORTDIR"])

  File "/usr/lib/portage/pym/portage.py", line 5191, in __init__

    self.auxdbmodule  = self.mysettings.load_best_module("portdbapi.auxdbmodule")

  File "/usr/lib/portage/pym/portage.py", line 1232, in load_best_module

    return load_mod(best_mod)

  File "/usr/lib/portage/pym/portage.py", line 139, in load_mod

    mod = __import__(modname)

  File "/usr/lib/portage/pym/cache/metadata_overlay.py", line 10, in ?

  File "/usr/lib/portage/pym/cache/metadata.py", line 9, in ?

ImportError: No module named eclass_cache

Scanning Configuration files...

Exiting: Nothing left to do; exiting. :)

```

i soliti messaggi... qualsiasi cosa faccio escono quei messaggi idioti...

----------

## gamberetto

Ehm... non ci vedo nulla di buono in tutto questo.

Quello che potrei fare e` l'upload sul mio sito di portage-2.1-r1.tbz2 e python-2.4.3-r1.tbz2 di modo che tu possa ripristinare portage.

Ma prima di fare qualsiasi cosa attenderei l'opinione di qualcuno che ne sa piu` di me...

Forse basterebbe scaricarsi uno stage3 e decomprimerlo (dopo un backup  :Wink:  )

----------

## comio

 *gamberetto wrote:*   

> Ehm... non ci vedo nulla di buono in tutto questo.
> 
> Quello che potrei fare e` l'upload sul mio sito di portage-2.1-r1.tbz2 e python-2.4.3-r1.tbz2 di modo che tu possa ripristinare portage.
> 
> Ma prima di fare qualsiasi cosa attenderei l'opinione di qualcuno che ne sa piu` di me...
> ...

 

Io penso che abbia proprio fatto fuori le librerie python...

ciao

----------

## fbcyborg

mmh.. bene    :Sad: 

formattone???

----------

## Scen

Fermo là!

La speranza è l'ultima a morire  :Smile: 

Prova con questa soluzione: http://www.gentoo.org/proj/en/portage/doc/manually-fixing-portage.xml

----------

## comio

 *fbcyborg wrote:*   

> mmh.. bene   
> 
> formattone???

 

no! zippone

ciao

----------

## gamberetto

Per la cronaca: una volta ho dato un 

```
emerge -C python
```

 :Rolling Eyes: 

E ho risolto con un tar xjvf python-versione.tbz2   :Wink: 

http://spiro.fisica.unipd.it/~menegolo/python-2.4.3-r1.tbz2

http://spiro.fisica.unipd.it/~menegolo/portage-2.1-r1.tbz2

in teoria bastano 2 comandi da root

```
# cd /

# wget http://spiro.fisica.unipd.it/~menegolo/python-2.4.3-r1.tbz2

# wget http://spiro.fisica.unipd.it/~menegolo/portage-2.1-r1.tbz2

# tar xjvf portage-2.1-r1.tbz2

# tar xjvf python-2.4.3-r1.tbz2
```

è tutto compilato con -march=i686 quindi dovrebbero funzionarti senza problemi

Togli il mask di portage-2.1!!!

EDIT: poi credo che un python-updater, etc-update siano d'obbligo

----------

## fbcyborg

 *Scen wrote:*   

> Fermo là!
> 
> La speranza è l'ultima a morire 
> 
> Prova con questa soluzione: http://www.gentoo.org/proj/en/portage/doc/manually-fixing-portage.xml

 

MA LoooLL!

Io l'ho detto a posta per scaramanzia la parola "formattone" !!!!  :Very Happy: 

Dunque, portage sembra ripristinato ma l'unico messaggio che mi incuriosisce adesso è:

```
!!! PORTAGE_WORKDIR_MODE is unset, using 0700
```

Forse c'è da aggiustare qualcosa.. ho fatto

```
etc-update && python-updater
```

adesso pare sia tutto tranquillo.. ha ripreso ad emergere!

GRAZIE

PS: dato che fino a poco fa utilizzavo questo tool, adesso che dite, è ora di "installare" questo?? funziona?? è tutto OK??? parlo per un AMD64.

----------

## comio

 *fbcyborg wrote:*   

>  *Scen wrote:*   Fermo là!
> 
> La speranza è l'ultima a morire 
> 
> Prova con questa soluzione: http://www.gentoo.org/proj/en/portage/doc/manually-fixing-portage.xml 
> ...

 

Sì funzia.

Aspetta un po' prima di installare: devono essere messe alcune cose (tipo --preserve-root  :Wink: ).

ciao

----------

## fbcyborg

OK! spero di accorgermi di quando sarà il momento!  :Very Happy:  intanto lo faccio manualmente questo trucchetto di montare in ram

----------

