# gentoo update nach 3 Jahren

## JoHo42

Hi Leute,

ich habe einen kleinen Server mit gentoo bei mir @home am laufen.

Nach 3 Jahren wuerde ich gerne ein Update machen,

allerdings kommt immer diese Meldung:

These are the packages that would be merged, 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:

- sys-apps/portage-2.1.6.7 (masked by: profile)

- sys-apps/portage-9999 (masked by: required EAPI 2, supported EAPI 0)

# Zac Medico <zmedico@gentoo.org> (05 Jan 2009)

# Portage 2.2 is masked due to known bugs in the

# package sets and preserve-libs features.

- sys-apps/portage-2.1.7.17 (masked by: required EAPI 2, supported EAPI 0)

- sys-apps/portage-2.2_rc62 (masked by: required EAPI 2, supported EAPI 0)

- sys-apps/portage-2.1.8.3 (masked by: required EAPI 2, supported EAPI 0)

- sys-apps/portage-2.2_rc67 (masked by: required EAPI 2, supported EAPI 0)

- sys-apps/portage-2.1.6.13 (masked by: required EAPI 1, supported EAPI 0)

For more information, see MASKED PACKAGES section in the emerge man page or

refer to the Gentoo Handbook.

Wie bekomme ich jetzt ein sauberes Update hin?

Irgendwie kommt diese Meldung bei den meisten Packeten.

Ein paar Packete wie consolekit und baselayouter gingen durch aber der Rest ist geblockt,

mit der Meldung von oben.

Das Profile steht geht ist mit eselect profile list ausgewählt worden.

Gruss joerg

----------

## Necoro

Um Portage zu installieren, brauchst du ein Portage, welches mindestens EAPI-1 unterstützt -- besser EAPI-2. Das tut dein altes aber nicht -- also würde ich sagen: Aktuelles Portage von Hand bauen http://www.gentoo.org/proj/en/portage/doc/manually-fixing-portage.xml

/edit: Das wird für die meisten anderen Pakete auch gelten ... gibt glaube ich nicht mehr soo viele, die noch mit EAPI-0 auskommen.

----------

## JoHo42

Hi,

danke fuer die schnelle Antwort.

Portage geht jetzt ohne Fehlermeldung allerdings bekomme ich jetzt eine neue Meldung:

/usr/portage/eclass/python.eclass: line 38: syntax error in conditional expression: unexpected token `('

/usr/portage/eclass/python.eclass: line 38: syntax error near `^(('

/usr/portage/eclass/python.eclass: line 38: `   if [[ "${version_components_groups}" =~ ^((\!)?[[:alnum:]_-]+\?\ )?${version_components_group_regex}(\ ${version_components_group_regex})?$ ]]; then'

 *

 * ERROR: dev-lang/python-2.6.4-r1 failed.

 * Call stack:

Irgendwie passt die Python Version nicht.

Gruss Joerg

----------

## Necoro

update mal deine bash

----------

## Klaus Meier

Ich würde sagen, komplett neu bauen. Geht schneller und macht weniger Stress. Weiß ja jetzt nicht, was du da drauf hast und wie schlimm es ist, wenn der Server mal für einen Tag off ist.

Aber ansonsten, länger als 6 Monate kein Update, der Stress geht los. Länger als ein Jahr kein Update, der Stress wird zu groß.

----------

## JoHo42

Hi,

noch was ganz dummes ich glaube mein world file ist korrupt.

Wie konnte man das nochmal neu generieren?

emerge --regen?

gruss Joerg

----------

## JoHo42

Hi Leute,

mit neuaufsetzen geht vielleicht etwas schneller, aber warum  nicht so versuchen.

Eigentlich brauche ich nur emerge -uva portage und dann noch 1 Stunde schauen was

ich an /etc/ Files erneuern muss.

Gruss Joerg

----------

## Josef.95

Hi

Also neu aufsetzen sollte idR nicht nötig sein, schließlich haben wir unter Gentoo doch den Luxus des  Rolling-release   :Wink: 

Ich würde zunächst dafür sorgen das python und portage aktuell ist und auch zusammenpasst.,

und dann zunächst erst nur das Grundsystem via "emerge -avuDN system" aktualisieren und in Ordnung bringen,

wenn das passt, dann erst um den Rest kümmern, sprich "emerge -avuDN world" "revdep-rebuild" usw

----------

## JoHo42

Hi Josef.95,

nette Theorie, aber in der Praxis geht nicht.

Habe jetzt aber fast mein System wieder auf 100% Consolekitt macht noch aerger.

Ne 3 Jahren kein Update und der aeger ist gross.

Gruss Joerg

----------

## Josef.95

Bei mir ging es auch in der Praxis... :Wink: 

Aber brauchst du auf einem Server wirklich consolekit Unterstützung?

----------

## networkorg

weil ich sowas auch grad mache (geht eigentlich sehr easy auch nach 3 Jahren) ... man muss nur ein bisschen die Reihenfolge beachten und etwas Plan von Gentoo haben was wo wie abhaengig ist ... aber hier mal die einfache Loesung fuer alle die Schwierigkeiten haben sollten nach 3 Jahren ein Update durchzubringen :

1.) emerge -v portage

     solange durchfuehren lassen bis der kompiler streikt (sollte bei libtool-2.2.6b sein

2.) emerge -v glibc

     bei mir wars von ururalt 2.5-r4 auf 2.10.1-r1

     vorher unbedingt /etc/locales.build loeschen

     dieser Schritt ist wichtig sonst geht libtool-2.2.6b nicht zum kompelieren

3.) emerge -v =automake-1.10.3 =automake-1.11.1

     hier unbedingt 1.10.* und 1.11.* nochmal kompelieren sonst motzt libtools nachher

4.) emerge -v libtools

     jetzt sollte libtools-2.2.6b ohne Fehler kompelieren

5.) emerge -v gcc 

     + gcc-config i686-pc-linux-gnu-4.3.4

     + source /etc/profile

     + fix_libtool_files.sh 4.1.2

     aktuell installiert war 4.1.2 --> NS mit 4.3.4

     WICHTIG den gcc-config, source, fix dannach nicht vergessen !!!

6.) emerge -v --nodep portage

     hier darf man sich aktuell nicht wundern warum NUR 2.1.6.13 und

     nicht 2.1.8.3 upgedated wird aber schoen nach der reihe. der NODEP

     ist notwendig da sonst python-2.5.4 wegen libffi streikt. Bitte auch

     nicht ueber etwaige fehler dannach wundern - portage wurde schon

     richtig installiert nur es fehlen noch ein paar Python sachen.

7.) emerge -v python

     hier wird gleich python 2.6.4-r1 installiert da die 2.5.4 wegen libffi

     troubles macht. aber reicht ja. wichtig ist python-updater dannach 

     zu starten sonst funktioniert der update von portage dann nicht.

     weiters wird hier gleich das alte portage 2.1.3.19 deinstalliert. 

8.) emerge -v portage oder gleich emerge -uNDv portage

     update auf aktuellen portage 2.1.8.3  :Wink:  Was noch wichtiges fehlt

     sind jetzt die aktuellen coreutils-8.4 (anstelle der alten 6.9-r1). Hierzu

     sind aber noch ein paar adaptierungen vorher zu machen auf die ich 

     nicht explizit eingehe weil jeder ein anderes system hat.

Aber meistens muss man emerge -C mysql (sofern 4.x), -C lzma-utils, -C mktemp, -C ss, -C com_err vorher machen, damit coreutils keine blocks mehr hat. ggf. vorher -C util-linux + -av util_linux ausfuehren damit hier der block von linux-utils auch weg ist fuer die coreutils.

Gruss

    Alex

----------

## 69719

Ach, manchmal ist es wirklich nervig. Ich hab jetzt auch so ein Problem... Portage verlangt nach python 2.6

```

gendevel ~ # emerge -1v portage

These are the packages that would be merged, in order:

Calculating dependencies           ... done!

[ebuild     U ] sys-apps/portage-2.1.8.3 [2.1.6.13] USE="-build -doc -epydoc (-python3) (-selinux)" LINGUAS="-pl" 0 kB

Total: 1 package (1 upgrade), Size of downloads: 0 kB

>>> Verifying ebuild manifests

>>> Emerging (1 of 1) sys-apps/portage-2.1.8.3

 * portage-2.1.8.tar.bz2 RMD160 SHA1 SHA256 size ;-) ...                                                                                                                                                                                                                [ ok ]

 * portage-2.1.8.3.patch.bz2 RMD160 SHA1 SHA256 size ;-) ...                                                                                                                                                                                                            [ ok ]

 * checking ebuild checksums ;-) ...                                                                                                                                                                                                                                    [ ok ]

 * checking auxfile checksums ;-) ...                                                                                                                                                                                                                                   [ ok ]

 * checking miscfile checksums ;-) ...                                                                                                                                                                                                                                  [ ok ]

 * Attempting to select a compatible default python interpreter

 * Unable to select a compatible default python interpreter!

 *

 * ERROR: sys-apps/portage-2.1.8.3 failed.

 * Call stack:

 *                ebuild.sh, line   49:  Called pkg_setup

 *   portage-2.1.8.3.ebuild, line   92:  Called die

 * The specific snippet of code:

 *                      die "This version of portage requires at least python-2.6 to be selected as the default python interpreter (see \`eselect python --help\`)."

 *  The die message:

 *   This version of portage requires at least python-2.6 to be selected as the default python interpreter (see `eselect python --help`).

 *

 * If you need support, post the topmost build error, and the call stack if relevant.

 * A complete build log is located at '/var/tmp/portage/sys-apps/portage-2.1.8.3/temp/build.log'.

 * The ebuild environment file is located at '/var/tmp/portage/sys-apps/portage-2.1.8.3/temp/die.env'.

 *

>>> Failed to emerge sys-apps/portage-2.1.8.3, Log file:

>>>  '/var/tmp/portage/sys-apps/portage-2.1.8.3/temp/build.log'

 * Messages for package sys-apps/portage-2.1.8.3:

 * Attempting to select a compatible default python interpreter

 * Unable to select a compatible default python interpreter!

 *

 * ERROR: sys-apps/portage-2.1.8.3 failed.

 * Call stack:

 *                ebuild.sh, line   49:  Called pkg_setup

 *   portage-2.1.8.3.ebuild, line   92:  Called die

 * The specific snippet of code:

 *                      die "This version of portage requires at least python-2.6 to be selected as the default python interpreter (see \`eselect python --help\`)."

 *  The die message:

 *   This version of portage requires at least python-2.6 to be selected as the default python interpreter (see `eselect python --help`).

 *

 * If you need support, post the topmost build error, and the call stack if relevant.

 * A complete build log is located at '/var/tmp/portage/sys-apps/portage-2.1.8.3/temp/build.log'.

 * The ebuild environment file is located at '/var/tmp/portage/sys-apps/portage-2.1.8.3/temp/die.env'.

 *

```

Und beim installieren von python 2.6 compiliert er rein gar nix  :Sad: 

```

gendevel ~ # emerge -1v dev-lang/python

These are the packages that would be merged, in order:

Calculating dependencies         ... done!

[ebuild   R   ] dev-lang/python-2.6.4-r1  USE="berkdb%* gdbm%* ipv6%* ncurses%* readline%* sqlite%* ssl%* threads%* (wide-unicode%*) xml%* -build% -doc% -examples% -tk% -wininst%" 0 kB

Total: 1 package (1 reinstall), Size of downloads: 0 kB

>>> Verifying ebuild manifests

>>> Emerging (1 of 1) dev-lang/python-2.6.4-r1

 * python-gentoo-patches-2.6.4-r1.tar.bz2 RMD160 SHA1 SHA256 size ;-) ...                                                                                                                                                                                               [ ok ]

 * Python-2.6.4.tar.bz2 RMD160 SHA1 SHA256 size ;-) ...                                                                                                                                                                                                                 [ ok ]

 * checking ebuild checksums ;-) ...                                                                                                                                                                                                                                    [ ok ]

 * checking auxfile checksums ;-) ...                                                                                                                                                                                                                                   [ ok ]

 * checking miscfile checksums ;-) ...                                                                                                                                                                                                                                  [ ok ]

 * "bsddb" module is out-of-date and no longer maintained inside dev-lang/python. It has                                                                                                                                                                                      

 * been additionally removed in Python 3. You should use external, still maintained "bsddb3"                                                                                                                                                                                  

 * module provided by dev-python/bsddb3 which supports both Python 2 and Python 3.                                                                                                                                                                                            

>>> Unpacking source...                                                                                                                                                                                                                                                       

>>> Unpacking python-gentoo-patches-2.6.4-r1.tar.bz2 to /var/tmp/portage/dev-lang/python-2.6.4-r1/work                                                                                                                                                                        

>>> Unpacking Python-2.6.4.tar.bz2 to /var/tmp/portage/dev-lang/python-2.6.4-r1/work                                                                                                                                                                                          

>>> Source unpacked in /var/tmp/portage/dev-lang/python-2.6.4-r1/work                                                                                                                                                                                                         

>>> Preparing source in /var/tmp/portage/dev-lang/python-2.6.4-r1/work ...                                                                                                                                                                                                    

>>> Source prepared.                                                                                                                                                                                                                                                          

>>> Configuring source in /var/tmp/portage/dev-lang/python-2.6.4-r1/work ...                                                                                                                                                                                                  

>>> Source configured.                                                                                                                                                                                                                                                        

>>> Compiling source in /var/tmp/portage/dev-lang/python-2.6.4-r1/work ...                                                                                                                                                                                                    

>>> Source compiled.                                                                                                                                                                                                                                                          

>>> Test phase [not enabled]: dev-lang/python-2.6.4-r1                                                                                                                                                                                                                        

>>> Install python-2.6.4-r1 into /var/tmp/portage/dev-lang/python-2.6.4-r1/image/ category dev-lang

>>> Completed installing python-2.6.4-r1 into /var/tmp/portage/dev-lang/python-2.6.4-r1/image/     

./

>>> Done.

!!! Invalid binary package: '/usr/portage/packages/dev-lang/python-2.6.4-r1.tbz2.11136'

>>> Installing (1 of 1) dev-lang/python-2.6.4-r1

 * QA Notice: Expected SLOT='2.6', got ''

 * checking 0 files for package collisions

>>> Safely unmerging already-installed instance...

No package files given... Grabbing a set.

>>> Original instance of package unmerged safely.

 * Messages for package dev-lang/python-2.6.4-r1:

 * "bsddb" module is out-of-date and no longer maintained inside dev-lang/python. It has

 * been additionally removed in Python 3. You should use external, still maintained "bsddb3"

 * module provided by dev-python/bsddb3 which supports both Python 2 and Python 3.

>>> Auto-cleaning packages...

>>> No outdated packages were found on your system.

 * GNU info directory index is up-to-date.

```

Hat eventuell jemand eine Lösung wie ich python durchbringen könnte?

----------

## Josef.95

@escor

 *Quote:*   

> [ebuild   R   ] dev-lang/python-2.6.4-r1  USE="berkdb%* gdbm%* ipv6%* ncurses%* readline%* sqlite%* ssl%* threads%* (wide-unicode%*) xml%* -build% -doc% -examples% -tk% -wininst%" 0 kB 

 

 *Quote:*   

> !!! Invalid binary package: '/usr/portage/packages/dev-lang/python-2.6.4-r1.tbz2.11136'

 Du scheinst da ja ein "binary package" installieren zu wollen..?

könntest du dieses "Invalid binary package" nicht mal entfernen (löschen) und python:2.6 dann neu bauen?!

----------

## networkorg

 *escor wrote:*   

> Ach, manchmal ist es wirklich nervig. Ich hab jetzt auch so ein Problem... Portage verlangt nach python 2.6 Und beim installieren von python 2.6 compiliert er rein gar nix  Hat eventuell jemand eine Lösung wie ich python durchbringen könnte?

 

schaut verdammt nach einem kaputten portage aus  :Sad:  Also Loesung ist zwar etwas rustikal aber in dem Status wahrscheinlich (lass mich aber gern etwas besseren belehren) die einzige Moeglichkeit folgende (bei DAMAGE keine GARANTIE aber ich habs schon 3x so gemacht auf alten Kunden-Kisten  :Very Happy: )

Lade Dir das notwendige File (python 2.6 tar) 

     x86 = http://www.speednic.us/download/x86_python-2.6.4-r1.tar.gz

     amd64 (multilib) = http://www.speednic.us/download/amd64_multilib_python-2.6.5-r2.tar.gz

     amd64 (no-multilib) = http://www.speednic.us/download/amd64_NOmultilib_python-2.6.5-r2.tar.gz

runter von meinen funktionierenden Servern.

Entpacke das ganze direkt im / Verzeichnis :

```

cd /

tar xvzf *_python-2.6.*.tar.gz

env-update

```

Theoretisch solltest Du jetzt mit 

```
eselect python list
```

zu Deinem python 2.4 auch das python2.6 finden. Wenn nicht dann hats etwas mehr sag ich mal. Theoretisch sollte hier ein neukompelieren von portage 2.1.6.13 erfolg verleiten aber kann auch den portage komplett zernieten was dann unweigerlich in ein Portage-Rescue geht aber dann kann man gleich das 2.1.8.3 verwenden (WICHTIG lade dir mit --fetchonly aber vorher etwaige python/portage distfiles runter sonst wirds fad). 

Wenns vorhanden ist dann einfach einen

```
eselect python set N
```

und N mit der ID ersetzen und dann sollte portage 2.1.8.3 auch zum updaten gehn. Wenn nicht dann hlft auch hier ein Portage-Rescue auch wenns nicht sauber ist um den portage raufzuspielen.

Wichtig ist nach beiden Varianten - sofern mit rescue gemacht - dass Du auf jedenfall dann den portage nochmal komplett neu kompelierst damit der richtig im system verankert ist. wichtig ist auch das ganze python (also alle installierten versionen) dann nochmal neu kompelieren zu lassen damit etwaige Abhaenigkeiten richtig im system verankert sind. Und zu guter letzt dann noch einen python-updater drauf laufen lassen damit er den richtigen switch von python 2.4 auf 2.6 macht. dannach kann man python 2.4 getrosst deinstallieren sofern man es nicht irgendwo braucht.

fuer etwaige fragen oder Hilfe einfach eine PM

[/code]

----------

## networkorg

 *Josef.95 wrote:*   

> @escor
> 
>  *Quote:*   [ebuild   R   ] dev-lang/python-2.6.4-r1  USE="berkdb%* gdbm%* ipv6%* ncurses%* readline%* sqlite%* ssl%* threads%* (wide-unicode%*) xml%* -build% -doc% -examples% -tk% -wininst%" 0 kB  
> 
>  *Quote:*   !!! Invalid binary package: '/usr/portage/packages/dev-lang/python-2.6.4-r1.tbz2.11136' Du scheinst da ja ein "binary package" installieren zu wollen..?
> ...

 

wenn ihm das ebuild vorher nichts kompeliert hat kann dann auch schwer ein package (egal in welcher Art) installiert werden  :Smile:  Aber das Problem liegt nicth am "binary package" sondern einfach an zu einschneidigen Aenderungen im Portage/Python was oft massive Troubles verursacht. Ich kenn das von Kunden - streng nach dem Motto "do not touch/update a running system" bis halt dann irgendwas brauchen was leider nicht mehr ohne neue Versionen auskommt.

----------

## 69719

Habe einen sauberen Weg gefunden es zu aktualisieren, da ich nicht einfach etwas ins System entpacken will, wass man eventuell nicht so einfach heraus bekommt.

```

# fetching sources

emerge -vf =dev-lang/python-2.6.4-r1

# extract sources

tar xfvjp /usr/portage/distfiles/Python-2.6.4.tar.bz2

# change directory

cd Python-2.6.4

# configure python

./configure --prefix=/tmp/python-2.6.4

# compiling and install

make all install

# create symlink, so portage can find python2.6

ln -sf /tmp/python-2.6.4/bin/python2.6 /usr/bin

# set python version

eselect python set python2.6

# install new portage

emerge -1v portage

# install the python package

emerge -1v python

# remove temp

rm -rf /tmp/python-2.6.4

# set python version

eselect python set python2.6

```

----------

