# emerge defekt

## Tinitus

Hallo,

nachdem ich einen emerge Vorgang unterbrochen habe kann ich nichts mehr installieren.

Fehler:

```

emerge portage

 * IMPORTANT: 8 news items need reading for repository 'gentoo'.

 * Use eselect news to read news items.

Calculating dependencies... done!

Traceback (most recent call last):

  File "/usr/bin/emerge", line 43, in <module>

    retval = emerge_main()

  File "/usr/lib64/portage/pym/_emerge/main.py", line 1906, in emerge_main

    myopts, myaction, myfiles, spinner)

  File "/usr/lib64/portage/pym/_emerge/actions.py", line 292, in action_build

    settings, trees, myopts, myparams, myaction, myfiles, spinner)

  File "/usr/lib64/portage/pym/_emerge/depgraph.py", line 6744, in backtrack_depgraph

    myaction, myfiles, spinner)

  File "/usr/lib64/portage/pym/_emerge/depgraph.py", line 6776, in _backtrack_depgraph

    success, favorites = mydepgraph.select_files(myfiles)

  File "/usr/lib64/portage/pym/_emerge/depgraph.py", line 1920, in select_files

    self._load_vdb()

  File "/usr/lib64/portage/pym/_emerge/depgraph.py", line 561, in _load_vdb

    vardb.aux_get(pkg.cpv, [])

  File "/usr/lib64/portage/pym/_emerge/FakeVartree.py", line 96, in _aux_get_wrapper

    self._portdb.aux_get(pkg, self._portdb_keys, myrepo=repo)))

  File "/usr/lib64/portage/pym/portage/dbapi/porttree.py", line 502, in aux_get

    proc.start()

  File "/usr/lib64/portage/pym/_emerge/AsynchronousTask.py", line 24, in start

    self._start()

  File "/usr/lib64/portage/pym/_emerge/EbuildMetadataPhase.py", line 94, in _start

    fd_pipes=fd_pipes, returnpid=True)

  File "/usr/lib64/portage/pym/portage/package/ebuild/doebuild.py", line 514, in doebuild

    mf.checkFileHashes("EBUILD", os.path.basename(myebuild))

  File "/usr/lib64/portage/pym/portage/manifest.py", line 430, in checkFileHashes

    ok,reason = verify_all(self._getAbsname(ftype, fname), self.fhashdict[ftype][fname])

  File "/usr/lib64/portage/pym/portage/checksum.py", line 200, in verify_all

    myhash = perform_checksum(filename, x, calc_prelink=calc_prelink)[0]

  File "/usr/lib64/portage/pym/portage/checksum.py", line 256, in perform_checksum

    myhash, mysize = hashfunc_map[hashname](myfilename)

  File "/usr/lib64/portage/pym/portage/checksum.py", line 42, in pyhash

    data = f.read(blocksize)

```

Was kann man da noch machen?

G. Roland

----------

## franzf

Kannst du mal ins emerge.log schauen, was dieses Paket war, dessen Installation du abgewürgt hast?

Außerdem fehlt mir in der geposteten Ausgabe die eigentliche Fehlermeldung (Kann mich da aber auch irren, hab zu selten mit python zu tun).

Kannst du noch eselect verwenden? Hilft es, wenn du du die python-Version änderst? (eselect python) (Geht wohl nur, wenn das passende python[2,3]-USE-Flag in portage gesetzt wurde)

----------

## blice

ich hatte öfters "emerge" abstürze, in 90% der fälle hilft das löschen des trees [ rm -rf /usr/portage/]  und ein anschliessendes emerge --sync

----------

## Josef.95

 *blice wrote:*   

> ich hatte öfters "emerge" abstürze, in 90% der fälle hilft das löschen des trees [ rm -rf /usr/portage/]  und ein anschliessendes emerge --sync

 

Ein defektes /usr/portage ist in den allermeisten fällen auf beschädigte Dateisysteme zurückzuführen, wie sie zb bei Stromausfällen, hardresets, sterbende Festplatten usw entstehen können (--> bitte fsck nutzen).

Und wenn es tatsächlich mal nötig sein sollte /usr/portage zu ersetzen, dann sollte man hierfür am besten einen Portage-Snapshot runterladen und entpacken, das ist wesentlich schneller und ressourcenschonender erledigt anstatt den kompletten Tree mit einem --sync zu erneuern.

----------

## Randy Andy

Hi Leute,

dererlei Probleme hatte ich auch schon einige mal, z.B. wenn beim fetchen der Pakete der Plattenplatz ausging, oder eben der emerge-Vorgang von Hand gekillt wurde.

In diesen Fällen verblieb in einem der Portage-Verzeichnisse eine Lock Datei mit Bytelänge 0 übrig. Diese brauchte dann nur gelöscht werden, ggf dann noch für genügend Plattenplatz sorgen, und weiter kann's gehen.

Weiß aber nicht mehr genau wo das war, eventuell im:  /usr/portage/distfiles-Verzeichnis ?

Welche Portage version verwendest du, bzw. auch welche wolltest du upgraden?

Bei mir gab's vor einigen releases mal eine Bug, der Portage am Arbeiten hinderte, die Fehler sahen damals so aus wie bei dir jetzt, AFAIR.

Hab's mir dann mühselig selbst wiederhergestellt und erst später diese Beschreibung gefunden, mit der es noch einfacher geht:

http://www.gentoo.org/proj/en/portage/doc/manually-fixing-portage.xml

Schätze es wird bei dir darauf hinaus laufen...

Viel Erfolg dabei,

Andy.

----------

## Josef.95

Hmm.., schade das es hier kein feedback vom Thread Autor gibt, so bleibt es vermutlich wieder mal ein ungelöster Thread der im Nirwana verschwindet...

----------

## doedel

Noch eine Anmerkung, wenn der lokale Portage Tree hinüber ist, meckert Portage (z.B. "masked by corruption"). Ein emerge --sync ohne den Portage-Tree zu löschen sollte reichen. Wenn die defekten Daten nicht ersetzt werden wollen, die noch von Hand löschen. Aber den kompletten braucht es selten.

"emerge-webrsync" um per Paket zu syncen.

----------

## Josef.95

 *Tinitus wrote:*   

> nachdem ich einen emerge Vorgang unterbrochen habe kann ich nichts mehr installieren. 
> 
> ...

 

Darf man mal fragen ob und wie du es beheben konntest?

Oder verzichtest du nun einfach auf portage?  :Wink: 

----------

## arfe

 *Josef.95 wrote:*   

>  *Tinitus wrote:*   nachdem ich einen emerge Vorgang unterbrochen habe kann ich nichts mehr installieren. 
> 
> ... 
> 
> Darf man mal fragen ob und wie du es beheben konntest?
> ...

 

Das stand doch weiter oben!

Hier: http://www.gentoo.org/proj/en/portage/doc/manually-fixing-portage.xml

----------

## Randy Andy

 *arfe wrote:*   

>  *Josef.95 wrote:*    *Tinitus wrote:*   nachdem ich einen emerge Vorgang unterbrochen habe kann ich nichts mehr installieren. 
> 
> ... 
> 
> Darf man mal fragen ob und wie du es beheben konntest?
> ...

 

Schon, aber wir wollen es doch vom Autor dieses Threads lesen.

Falls er's gelöst hat, könnte er auch gleich den Thread als erledigt markieren.

Aber vielleicht hört er uns ja nicht, wegen seinem Tinitus   :Laughing: 

Humorvollen Gruß,

Andy.

----------

