# [SOLVED] Zepsute emerge (python)

## nbvcxz

Po instalacji ostatniej wersji python-2.4.3 przy próbie użycia emerge otrzymuję komunikat:

```
 >>>cfg-update-1.8.0-r3 : no new packages have been emerged, checksum index OK...

/usr/bin/emerge_with_indexing_for_cfg-update: line 7:  5098 Naruszenie ochrony pamięci   emerge $*
```

No i jako że całość portage jest oparta o python - więc całość leży. Czy macie jakieś rady?

----------

## Yatmai

Może rozpakuj gdzieś na boku stage i nadpisz pythona i/lub pliki sprawiające problemy :]

----------

## qermit

trochę mało informacji. Po piersze w którym miejscu się wykrzacza.

Próbowałeś revdep-rebuild -p?

PS pamiętaj, że python korzysta z innych bibliotek i portage nie korzysta tylko z pythona.

  Edit by Poe

ort

Edit: Wiedziałem, że coś jest nie tak

----------

## wuja

A po zmianie pythona było użyte:

```
/usr/sbin/python-updater
```

?

----------

## nbvcxz

 *Art.root wrote:*   

> Może rozpakuj gdzieś na boku stage i nadpisz pythona i/lub pliki sprawiające problemy :]

 

chętnie ale po pierwsze nie wiem które pliki mogą sprawiać problemy, a po drugie za bardzo wiem którego stage (chyba byłby to CONRAD) dla gcc-4.1 - chociaż spróbuję tego w ostateczności

 *qermit wrote:*   

> Próbowałeś revdep-rebuild -p? 

 

teraz spróbowałem   :Laughing:  i wszystko zgodnie z przewidywaniami:

1. chce zaktualizować jedynie openoffice-bin (co jest normalne)

2. ale nawet tego nie może zrobić :

```

All prepared. Starting rebuild...

emerge --oneshot -p =app-office/openoffice-bin-2.0.2 

/usr/bin/revdep-rebuild: line 652: 28786 Naruszenie ochrony pamięci   EMERGE_DEFAULT_OPTS="" emerge --oneshot $EMERGE_OPTIONS $REBUILD_LIST

```

co zresztą było do przewidzenia

 *wuja wrote:*   

> A po zmianie pythona było użyte: /usr/sbin/python-updater ?

 

było było - to pierwsze co znalazłem na forum i miałem nadzieję, że pomoże jednak wynik:

```
 * Can't determine any previous Python version(s)
```

nie pozostawia złudzeń - nie miałem innego Pythona oprócz 2.4.x (wcześniej 2.4.2-r1, obecnie 2.4.3) więc to nie upgrade z 'wcześniejszej' wersji 2.3.x i to niestety nie to

ale proszę o jeszcze jakieś wskazówki - mam nadzieję, że rozwiązanie jest tak proste, że cięzko na nie wpaść

----------

## Yatmai

 *nbvcxz wrote:*   

>  >>>cfg-update-1.8.0-r3 : no new packages have been emerged, checksum index OK...
> 
> /usr/bin/emerge_with_indexing_for_cfg-update: line 7:  5098 Naruszenie ochrony pamięci   emerge $*

 

Tu już masz pierwszego potentata :] A co do stage, to dorwij jakiś plik stage3, albo najnowszy, albo ten, z ktorego stawiałeś system; to i tak bez znaczenia, bo zaraz po tym zemergujesz sobie taką werję pythona jaką będziesz chciał =]

Poza tym, Kuroo, albo equery f python wyświetli Ci listę wszystkich plików pythona  :Smile: 

----------

## kfiaciarka

 *wuja wrote:*   

> A po zmianie pythona było użyte:
> 
> ```
> /usr/sbin/python-updater
> ```
> ...

 

Jak ci usunie starsza wersje to tylko pokaże :Wink: 

```
 * Can't determine any previous Python version(s).

```

Ja teraz tez updatowałem pythona ale zrobiłem equery d python i emergnałem to co wyswietlił :Very Happy:  na razie nie ma problemów. jak będą to napiszę.

 Edit by Poe

może go nie pokarze a wynagrodzi - ort  :Wink:  

----------

## nbvcxz

 *Art.root wrote:*   

>  *nbvcxz wrote:*    >>>cfg-update-1.8.0-r3 : no new packages have been emerged, checksum index OK...
> 
> /usr/bin/emerge_with_indexing_for_cfg-update: line 7:  5098 Naruszenie ochrony pamięci   emerge $* 
> 
> Tu już masz pierwszego potentata :] A co do stage, to dorwij jakiś plik stage3, albo najnowszy, albo ten, z ktorego stawiałeś system; to i tak bez znaczenia, bo zaraz po tym zemergujesz sobie taką werję pythona jaką będziesz chciał =]
> ...

 

1. emerge_with_indexing_for_cfg-update to przecież zwykły skrypt uruchamiający cfg-update --index przed wykonaniem właściwego emerge

2. uruchomienie samego /usr/lib/portage/bin/emerge powoduje właśnie wspomnianie  Naruszenie ochrony pamięci 

3. wiem jak wylistować pliki przynależne do danego ebuilda ale nie mam pojęcia który z plików Pythona może się 'wykrzaczać' i sam listing plików niewiele mi tu rozjaśnia

4. a co do sposobu kfiaciarka - jak najbardziej słuszny ale u mnie jest już 'after_birds' więc mróczę sobie takie nieprzyzwoite słówka, że nie wykonałem wcześniej quickpkg

jeszcze chwilę się pogłowie i spróbuję wycisnąć poprzednią wersję Pythona z ISO Conrada (chociaż przykro się poddawać)

----------

## nelchael

Dwie uwagi: strace i gdb.

----------

## nbvcxz

 *nelchael wrote:*   

> Dwie uwagi: strace i gdb.

 

 :Evil or Very Mad:  niezainstalowane qrna oba, a teraz by się mogły przydać

----------

## Yatmai

 *nbvcxz wrote:*   

> wiem jak wylistować pliki przynależne do danego ebuilda ale nie mam pojęcia który z plików Pythona może się 'wykrzaczać' i sam listing plików niewiele mi tu rozjaśnia

 

Dlatego ja bym podmienił wszystkie... I tak jak podmienisz tylko część, to masz niebezpieczeństwo, że nie będą ze sobą kompatybilne :]

----------

## kfiaciarka

@nbvcxz a może prelinka używasz?

----------

## qermit

stwórz sobie chrootowalne środowisko. tam zaktualizuj biblioteczki do odpowiednich wersji ...

mam pytanko, czy możesz odpalić pythona (interpreter). jeżeli tak, to spróbuj zakomentować inkludowane moduły w skrypcie emerge. Być może winne są prekompilowane moduły... (a wtedy wystarczy je na nowo wygenerować)

----------

## nbvcxz

 *qermit wrote:*   

> stwórz sobie chrootowalne środowisko. tam zaktualizuj biblioteczki do odpowiednich wersji ...
> 
> mam pytanko, czy możesz odpalić pythona (interpreter). jeżeli tak, to spróbuj zakomentować inkludowane moduły w skrypcie emerge. Być może winne są prekompilowane moduły... (a wtedy wystarczy je na nowo wygenerować)

 

oki trochę nie nadążam (nie chodzi o chrootowanie, ale nie wiem o jakie biblioteczki biega)

interpreter mogę odpalić i wygląda ok:

```

# installing zipimport hook

import zipimport # builtin

# installed zipimport hook

# /usr/lib/python2.4/site.pyc matches /usr/lib/python2.4/site.py

import site # precompiled from /usr/lib/python2.4/site.pyc

# /usr/lib/python2.4/os.pyc matches /usr/lib/python2.4/os.py

import os # precompiled from /usr/lib/python2.4/os.pyc

import posix # builtin

# /usr/lib/python2.4/posixpath.pyc matches /usr/lib/python2.4/posixpath.py

import posixpath # precompiled from /usr/lib/python2.4/posixpath.pyc

# /usr/lib/python2.4/stat.pyc matches /usr/lib/python2.4/stat.py

import stat # precompiled from /usr/lib/python2.4/stat.pyc

# /usr/lib/python2.4/UserDict.pyc matches /usr/lib/python2.4/UserDict.py

import UserDict # precompiled from /usr/lib/python2.4/UserDict.pyc

# /usr/lib/python2.4/copy_reg.pyc matches /usr/lib/python2.4/copy_reg.py

import copy_reg # precompiled from /usr/lib/python2.4/copy_reg.pyc

# /usr/lib/python2.4/types.pyc matches /usr/lib/python2.4/types.py

import types # precompiled from /usr/lib/python2.4/types.pyc

# /usr/lib/python2.4/warnings.pyc matches /usr/lib/python2.4/warnings.py

import warnings # precompiled from /usr/lib/python2.4/warnings.pyc

# /usr/lib/python2.4/linecache.pyc matches /usr/lib/python2.4/linecache.py

import linecache # precompiled from /usr/lib/python2.4/linecache.pyc

import encodings # directory /usr/lib/python2.4/encodings

# /usr/lib/python2.4/encodings/__init__.pyc matches /usr/lib/python2.4/encodings/__init__.py

import encodings # precompiled from /usr/lib/python2.4/encodings/__init__.pyc

# /usr/lib/python2.4/codecs.pyc matches /usr/lib/python2.4/codecs.py

import codecs # precompiled from /usr/lib/python2.4/codecs.pyc

import _codecs # builtin

# /usr/lib/python2.4/encodings/aliases.pyc matches /usr/lib/python2.4/encodings/aliases.py

import encodings.aliases # precompiled from /usr/lib/python2.4/encodings/aliases.pyc

# /usr/lib/python2.4/encodings/utf_8.pyc matches /usr/lib/python2.4/encodings/utf_8.py

import encodings.utf_8 # precompiled from /usr/lib/python2.4/encodings/utf_8.pyc

Python 2.4.3 (#1, Apr 30 2006, 09:46:10) 

[GCC 4.1.0 (Gentoo 4.1.0)] on linux2

Type "help", "copyright", "credits" or "license" for more information.

dlopen("/usr/lib/python2.4/lib-dynload/readline.so", 2);

import readline # dynamically loaded from /usr/lib/python2.4/lib-dynload/readline.so

```

pygtk-demo również chodzi bez zarzutu więc znowu zaczynam się zastanawiać czy to Python czy inne licho

może ktoś pomógłby mi jednak w najprostszy sposób: zrobił quickpkg python na gcc-4.1.0 i udostępnił mi do zassania - może wtedy będę miał pewnośćco u mnie nawala

BTW możecie wyobrazić sobie moje wqr....nie - mam pakiety skompilowanych wersji całego toolchain, xorg i innych potencjalnie wrażliwych części systemu - a o Pythonie nie pomyślałem i teraz boli

----------

## qermit

co dadzą polecenia:

```
cd /usr/lib/portage/pym

 for i in *.py ; do echo $i; python -c "import $(basename $i .py)"; done

 for i in *.py ; do echo $i; python -m $(basename $i .py); done
```

----------

## nbvcxz

Qrcze qermit strasznie mądry z ciebie człowiek (żabcia   :Razz:  )

wyniki to :

```

michal michal # cd /usr/lib/portage/pym

michal pym # for i in *.py ; do echo $i; python -c "import $(basename $i .py)"; done

cvstree.py

dispatch_conf.py

Naruszenie ochrony pami?ci

eclass_cache.py

emergehelp.py

getbinpkg.py

output.py

portage_checksum.py

portage_const.py

portage_data.py

portage_debug.py

portage_dep.py

portage_exception.py

portage_exec.py

portage_file.py

portage_gpg.py

Naruszenie ochrony pami?ci

portage_localization.py

portage_locks.py

portage_manifest.py

Naruszenie ochrony pami?ci

portage.py

portage_update.py

portage_util.py

portage_versions.py

xpak.py

```

```

michal pym #for i in *.py ; do echo $i; python -m $(basename $i .py); done

cvstree.py

dispatch_conf.py

Naruszenie ochrony pami?ci

eclass_cache.py

emergehelp.py

getbinpkg.py

output.py

portage_checksum.py

Naruszenie ochrony pami?ci

portage_const.py

portage_data.py

portage_debug.py

portage_dep.py

portage_exception.py

portage_exec.py

portage_file.py

portage_gpg.py

Naruszenie ochrony pami?ci

portage_localization.py

portage_locks.py

portage_manifest.py

Naruszenie ochrony pami?ci

portage.py

Naruszenie ochrony pami?ci

portage_update.py

portage_util.py

portage_versions.py

xpak.py

```

to chyba pozwoli zdiagnozować pełniej problem - jeżeli możesz oświecić co może być przyczyną o proszę daj znać

Edit by Poe

dodano znaczniki [ code ]   

----------

## qermit

Kurde mol.

Nie jest za wesoło. Być może wynika to z tego iż używasz gcc-4.x . Niedawno miałem kłopot z programami, które skompilowane przez gcc-3.x działały jak marzenie, natomiast w gcc-4.x generował się kod który zawsze się wysypywał.

Niestety nie mam pewności, ale u ciebie programy wysypują raczej się losowo. Przyczyn może być kilka:

1. kod źródłowy nie dostosowany do gcc4 (w to raczej wątpię)

2. kod wygenerowany przez pythona jest niekompatybilny z nową wersją pythona (też w to wątpię)

3. może to jakaś biblioteka jest rozwalona

Wybierz jedną z proponowanych:

1. przeinstalować system

2. znaleźć jakąś inną wersję pythona (np z openoffice) i potestować

3. wykasować wszystkie pliki .pyo i .pyc  i wygenerować je jeszcze raz (strzelam w ciemno)

```
rm *.py[oc];

for i in *.py; do mod=`basename $i .py` ; echo -n "Generuję: $mod "; python -c "import $mod"  && (echo OK ; cp ${mod}.pyc ${mod}.pyo); done
```

naprawdę ciężko mi jest powiedzieć bo nie siedzę przy maszynce i nie mam z nią interakcji

----------

## nbvcxz

qermit szacunek za wiedzę

problem rozwiązany - wadliwy był na pewno python - skompilowałem go ręcznie (z opcją ./configure --prefix=/usr) a następnie zainstalowałem (make install) i portage ruszyło jak od kopa

w głowie świta mi również potencjalny sprawca problemu - gdy się upewnie dam znać co to było

----------

## nbvcxz

END OF TOPIC

no i chyba znalazłem przyczynę - po zemergowaniu dev-python/pycrypto z -ftree-vectorize i -ffast-math dostałem ten sam błąd; rozwiązanie trywialnie proste i skuteczne:

usunąć odpowiednie pliki z /usr/lib/python-2.4/site-packages/ i zemergować ponownie z właściwymi flagami   :Twisted Evil: 

et voila

----------

## Raku

 *nbvcxz wrote:*   

> no i chyba znalazłem przyczynę - po zemergowaniu dev-python/pycrypto z -ftree-vectorize i -ffast-math 

 

-ffast-math psuje dużo rzeczy z gcc-4.1. Opisywany był na forum z segfaultującym Openoffice-bin pod KDE. Problemem była właśnie ta flaga podczas kompilacji kdelibs. CHyba coś jeszcze się chrzaniło przez -ffast-math, ale już nie pamiętam co.

----------

