# problemas con EAPI

## entropia69

Al intentar actualizar portage (emerge portage) me dice que no puedo, porque necesito eapi 2

Por lo que leo, para actualizar a eapi 2, nececesito actualizar portage.

Estoy en lo cierto? Es la pescadilla que se come la cola?

Tambien he leido que puede tener que ver con un bug en compiz, pero no estoy seguro.

Adjunto unos cuantos mensajes...

```
servfitx htdocs # emerge portage

!!! /etc/make.profile is not a symlink and will probably prevent most merges.

!!! It should point into a profile within /usr/portage/profiles/

!!! (You can safely ignore this message when syncing. It's harmless.)

Calculating dependencies /

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

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

- sys-apps/portage-2.2_rc63 (masked by: EAPI 2)

- sys-apps/portage-2.2_rc62 (masked by: EAPI 2)

- sys-apps/portage-2.1.7.17 (masked by: EAPI 2)

- sys-apps/portage-2.1.7.16 (masked by: EAPI 2)

- sys-apps/portage-2.1.6.13 (masked by: missing keyword)

- sys-apps/portage-2.1.6.7 (masked by: missing keyword)

- sys-apps/portage-2.1.4.4 (masked by: )

The current version of portage supports EAPI '1'. You must upgrade to a

newer version of portage before EAPI masked packages can be installed.

```

y pensar que solo queria activar json en el php...

Gracias por la ayuda que me podais prestar.

Un saludo

----------

## Frostwarrior

Yo que vos le trato de dar mas bola a esto:

```
!!! /etc/make.profile is not a symlink and will probably prevent most merges.

!!! It should point into a profile within /usr/portage/profiles/

!!! (You can safely ignore this message when syncing. It's harmless.) 
```

Crea el symlink de make.profile y despues proba. La falta de profile podria convertirte la instalacion en un lio terrible.

----------

## entropia69

Gracias por tu ayuda,

ciertamente siguiendo las instrucciones en http://www.espaciolinux.com/foros/viewtopic.php?t=16678 no me fue muy complicado hacer ese link

despues tuve que hacer un 

```
eselect profile list
```

en mi caso luego puse 

```
eselect profile set 4
```

ya que no en mi caso es un servidor de apache y samba.

Aun así, el problema no está solucionado, me sigue diciendo que tengo problemas con la versión de EAPI a la hora de actualizar portage:

```
 # emerge portage

Calculating dependencies |

!!! All ebuilds that could satisfy "dev-perl/Locale-gettext" have been masked.

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

- dev-perl/Locale-gettext-1.05-r1 (masked by: EAPI 2)

The current version of portage supports EAPI '1'. You must upgrade to a

newer version of portage before EAPI masked packages can be installed.

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

refer to the Gentoo Handbook.

(dependency required by "sys-apps/help2man-1.36.4-r1" [ebuild])

```

Despues he tenido que añadir los parametros locales:

en /etc/make.conf añadir la linea 

LINGUAS="es en"

y en /etc/locale.gen

```
es_ES@euro ISO-8859-15

es_ES ISO-8859-1

es_ES@euro ISO-8859-15

```

y ejecutar "locale-gen" (encontrado en: http://www.ivlabs.org/home/?p=731 )

emerjo glibc (... a esperar): 

```
emerge glibc
```

lo pruebo tambien con gcc

El problema sigue siendo el mismo

----------

## opotonil

Hecha un vistazo a este post:

https://forums.gentoo.org/viewtopic-t-815138-highlight-eapi.html

Parece que el problema es similar y la solucion parece ser desenmascarar "sys-apps/portage-2.1.7.17" e instalar "emerge -1 portage".

Salu2.

--- EDITADO ---

Perdona, lo mire a carreras y ahora que miro mejor parece que el problema que tratan es de EAPI 3.

----------

## entropia69

pero no suficiente.

desde entonces he tenido que re-emerger perl, y tambien compiz, al que tenia que aplicarle el parche...

tambien le he añadido a: /etc/portage/package.keywords la linea ~sys-apps/portage-2.1.7.17

pero el problema sigue siendo el mismo

```
# emerge portage

Calculating dependencies -

!!! All ebuilds that could satisfy "dev-perl/Locale-gettext" have been masked.

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

- dev-perl/Locale-gettext-1.05-r1 (masked by: EAPI 2)

The current version of portage supports EAPI '1'. You must upgrade to a

newer version of portage before EAPI masked packages can be installed.

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

refer to the Gentoo Handbook.

(dependency required by "sys-apps/help2man-1.36.4-r1" [ebuild])

```

a ver si alguien me da una pista, porque ya no se que mas hacer.

Hasta pronto

----------

## quilosaq

Creo que debes enmascarar sys-app/help2man para que no intente actualizarse. Ese paquete es el que está provocando que se actualice Locale-gettext.

Dinos que versión de help2man tienes instalada.

----------

## entropia69

no tengo ninguna:

```
 # emerge -s help2man

Searching...

[ Results for search key : help2man ]

[ Applications found : 1 ]

*  sys-apps/help2man

      Latest version available: 1.36.4-r1

      Latest version installed: [ Not Installed ]

      Size of files: 83 kB

      Homepage:      http://www.gnu.org/software/help2man

      Description:   GNU utility to convert program --help output to a man page

      License:       GPL-2

```

```
# emerge help2man

Calculating dependencies \

!!! All ebuilds that could satisfy "dev-perl/Locale-gettext" have been masked.

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

- dev-perl/Locale-gettext-1.05-r1 (masked by: EAPI 2)

The current version of portage supports EAPI '1'. You must upgrade to a

newer version of portage before EAPI masked packages can be installed.

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

refer to the Gentoo Handbook.

(dependency required by "sys-apps/help2man-1.36.4-r1" [ebuild])

```

adjunto los ficheros de configuración:

make.conf :

```
LINGUAS="es en"

CHOST="i686-pc-linux-gnu"

CFLAGS="-march=athlon -O2 -pipe -fomit-frame-pointer"

CXXFLAGS="${CFLAGS}"

GENTOO_MIRRORS="http://mirror.switch.ch/ftp/mirror/gentoo/ ftp://ftp.udc.es/gentoo/ ftp://ftp.snt.utwente.nl/pub/os/linux/gen$

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

USE="cli apache2 bash-completion calendar ctype imap ldap mysql oav pear php slang

     sml webdav xml gd jpeg curl pdo pdo-external tokenizer xmlrpc json nls"

```

package.keywords:

```
# cat /etc/portage/package.keywords

=app-admin/webmin-1.400-r1 ~x86

~sys-apps/portage-2.1.7.17

category/packagename ~* *

```

Gracias por vuestra ayuda

----------

## i92guboj

Parece que algo no está muy fino en tu árbol de portage. Yo, en tu lugar, iría directo a un mirror de Gentoo, descargaría el snapshot más reciente de portage, borraría /usr/portage y descomprimiría en su lugar el nuevo snapshot, luego emerge --sync, y vuelta a escoger el perfil con eselect. Tras eso asegúrate de que /etc/make.profile es correcto (con ls -l, por ejemplo) e intenta actualizar portage y el resto de tu sistema.

----------

## i92guboj

Por cierto, ¿qué versión de portage estás usando? Por favor, pega la salida de "emerge -V" ('v' mayúscula). EAPI1 es del año la pera, como se dice por aquí. ¿Has usado un CD antiguo para instalar Gentoo? Si tu instalación es muy muy antigua puedes tener serios problemas para actualizarla de golpe, y quizás no te convenga intentarlo y sea más fácil reinstalar.

----------

## entropia69

te adjunto la version:

```
# emerge -V

Portage 2.1.4.4 (default/linux/x86/10.0/server, gcc-4.1.2, glibc-2.10.1-r1, 2.6.24-gentoo-r4 i686)

```

Es un ordenador de producción, norma numero uno, si algo funciona, no lo toques.

ahora es cuando me estoy encontrando los problemas al tener necesidades específicas.

----------

## entropia69

Muy buenas,

como tu me has dicho me he descargado el ultimo snapshot i lo he descomprimido en /usr

```
usr # wget http://mirrors.kernel.org/gentoo/snapshots/portage-20100219.tar.bz2
```

lo descomprimi:

```
# tar xvjf portage-20100219.tar.bz2
```

sincronizo el arbol:

```
 # emerge --sync
```

vuelvo a usar el eselect:

```
# eselect profile set 4
```

pero al hacer el emerge portage, mismo problema

```
# emerge portage

Calculating dependencies \

!!! All ebuilds that could satisfy "dev-perl/Locale-gettext" have been masked.

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

- dev-perl/Locale-gettext-1.05-r1 (masked by: EAPI 2)

The current version of portage supports EAPI '1'. You must upgrade to a

newer version of portage before EAPI masked packages can be installed.

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

refer to the Gentoo Handbook.

(dependency required by "sys-apps/help2man-1.36.4-r1" [ebuild])

```

Gracias por la inestimable ayuda

----------

## codestation

 *entropia69 wrote:*   

> te adjunto la version:
> 
> ```
> # emerge -V
> 
> ...

 

Podrías actualizar primeramente a portage 2.1.6.13 (ese ebuild no requiere de EAPI=2), y luego a 2.1.7.16 que es el ultimo estable.

----------

## entropia69

No he sido capaz, al intentarlo pasa exactamente igual con sus dependencias

```
portage # emerge portage-2.1.6.13.ebuild

*** emerging by path is broken and may not always work!!!

Calculating dependencies -

!!! All ebuilds that could satisfy "dev-perl/Locale-gettext" have been masked.

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

- dev-perl/Locale-gettext-1.05-r1 (masked by: EAPI 2)

The current version of portage supports EAPI '1'. You must upgrade to a

newer version of portage before EAPI masked packages can be installed.

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

refer to the Gentoo Handbook.

(dependency required by "sys-apps/help2man-1.36.4-r1" [ebuild])

```

----------

## quilosaq

¿Puedes mostrar la salida de "eselect profile list"?

----------

## entropia69

```
 # eselect profile list

Available profile symlink targets:

  [1]   default/linux/x86/10.0

  [2]   default/linux/x86/10.0/desktop

  [3]   default/linux/x86/10.0/developer

  [4]   default/linux/x86/10.0/server *

  [5]   hardened/linux/x86/10.0

  [6]   selinux/2007.0/x86

  [7]   selinux/2007.0/x86/hardened

  [8]   selinux/v2refpolicy/x86

  [9]   selinux/v2refpolicy/x86/desktop

  [10]  selinux/v2refpolicy/x86/developer

  [11]  selinux/v2refpolicy/x86/hardened

  [12]  selinux/v2refpolicy/x86/server

```

----------

## quilosaq

Veamos tu "emerge --info" y "cat /etcr/make.profile/eapi"

----------

## codestation

 *entropia69 wrote:*   

> No he sido capaz, al intentarlo pasa exactamente igual con sus dependencias
> 
> ```
> portage # emerge portage-2.1.6.13.ebuild
> 
> ...

 

Realmente estás atrapado en un problema del tipo del huevo y la gallina   :Confused: 

A ver, help2man solo requiere dev-perl/Locale-gettext (del que solo existe un ebuild con EAPI=2) si help2man tiene la USE "nls" activada, Asi que podrias hacer un:

```

USE="-nls" emerge =sys-apps/portage-2.1.6.13 -1

```

para que help2man no se traiga Locale-gettext (y rezar para que no haya más blockers como este   :Razz:  ), una vez que tengas el portage con soporte de EAPI=2 puedes reemerger help2man con la USE quitada anteriormente.

Si llegases a un punto en el que no puedas continuar ya que necesitas un ebuild con EAPI=2 obligatoriamente, lo otro seria emerger portage saltándose la verificación de dependencias con --nodeps (aunque allí no sabria decirte si portage seguiria funcionando correctamente por necesitar esa versión especifica de las deps, así que es mejor no llegar a este punto)

----------

## entropia69

```
 # emerge --info

Portage 2.1.4.4 (default/linux/x86/10.0/server, gcc-4.1.2, glibc-2.10.1-r1, 2.6.24-gentoo-r4 i686)

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

System uname: 2.6.24-gentoo-r4 i686 AMD Athlon(tm) 64 X2 Dual Core Processor 4200+

Timestamp of tree: Sat, 27 Feb 2010 11:15:01 +0000

app-shells/bash:     3.2_p17-r1

dev-java/java-config: 1.3.7, 2.1.4

dev-lang/python:     2.4.3-r4

dev-python/pycrypto: 2.0.1-r6

sys-apps/baselayout: 1.12.9

sys-apps/sandbox:    1.2.18.1-r2

sys-devel/autoconf:  2.61

sys-devel/automake:  1.10

sys-devel/binutils:  2.18-r3

sys-devel/gcc:       4.1.2, 4.3.4

sys-devel/gcc-config: 1.4.1

sys-devel/libtool:   1.5.22

virtual/os-headers:  2.6.17-r2

ACCEPT_KEYWORDS="x86"

CBUILD="i686-pc-linux-gnu"

CFLAGS="-march=athlon -O2 -pipe -fomit-frame-pointer"

CHOST="i686-pc-linux-gnu"

CONFIG_PROTECT="/etc"

CONFIG_PROTECT_MASK="/etc/env.d /etc/env.d/java/ /etc/fonts/fonts.conf /etc/gconf /etc/php/apache2-php5/ext-active/ /etc/php/cgi-php5/ext-active/ /etc/php/cli-php5/ext-active/ /etc/revdep-rebuild /etc/terminfo"

CXXFLAGS="-march=athlon -O2 -pipe -fomit-frame-pointer"

DISTDIR="/usr/portage/distfiles"

FEATURES="distlocks metadata-transfer sandbox sfperms strict unmerge-orphans userfetch"

GENTOO_MIRRORS="http://mirror.switch.ch/ftp/mirror/gentoo/ ftp://ftp.udc.es/gentoo/ ftp://ftp.snt.utwente.nl/pub/os/linux/gentoo"

LDFLAGS="-Wl,-O1"

LINGUAS="es en"

PKGDIR="/usr/portage/packages"

PORTAGE_CONFIGROOT="/"

PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --compress --force --whole-file --delete --stats --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages"

PORTAGE_TMPDIR="/var/tmp"

PORTDIR="/usr/portage"

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

USE="acl apache2 bash-completion berkdb bzip2 calendar cli cracklib crypt ctype cups curl cxx dri fortran gd gdbm gpm iconv imap ipv6 jpeg json ldap modules mudflap mysql ncurses nls nptl nptlonly oav openmp pam pcre pdo pdo-external pear perl php pppd python readline reflection session slang sml snmp spl ssl sysfs tcpd tokenizer truetype unicode webdav x86 xml xmlrpc xorg zlib" ALSA_CARDS="ali5451 als4000 atiixp atiixp-modem bt87x ca0106 cmipci emu10k1 emu10k1x ens1370 ens1371 es1938 es1968 fm801 hda-intel intel8x0 intel8x0m maestro3 trident usb-audio via82xx via82xx-modem ymfpci" ALSA_PCM_PLUGINS="adpcm alaw asym copy dmix dshare dsnoop empty extplug file hooks iec958 ioplug ladspa lfloat linear meter mmap_emul mulaw multi null plug rate route share shm softvol" APACHE2_MODULES="actions alias auth_basic authn_alias authn_anon authn_dbm authn_default authn_file authz_dbm authz_default authz_groupfile authz_host authz_owner authz_user autoindex cache dav dav_fs dav_lock deflate dir disk_cache env expires ext_filter file_cache filter headers include info log_config logio mem_cache mime mime_magic negotiation rewrite setenvif speling status unique_id userdir usertrack vhost_alias" ELIBC="glibc" INPUT_DEVICES="keyboard mouse evdev" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LINGUAS="es en" RUBY_TARGETS="ruby18" USERLAND="GNU" VIDEO_CARDS="fbdev glint intel mach64 mga neomagic nv r128 radeon savage sis tdfx trident vesa via vmware"

Unset:  CPPFLAGS, CTARGET, EMERGE_DEFAULT_OPTS, FFLAGS, INSTALL_MASK, LANG, LC_ALL, MAKEOPTS, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS, PORTDIR_OVERLAY

```

```
 # cat /etc/make.profile/eapi

2

```

----------

## entropia69

dicho otra forma, pinta mas que mal... peor

me veo moviendo el servidor a otra maquina...

te adjunto lo que me sale:

```
 # USE="-nls" emerge =sys-apps/portage-2.1.6.13 -1

Calculating dependencies -

!!! All ebuilds that could satisfy "app-shells/bash-completion" have been masked.

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

- app-shells/bash-completion-1.1-r5 (masked by: EAPI 2)

- app-shells/bash-completion-1.0-r5 (masked by: EAPI 2)

The current version of portage supports EAPI '1'. You must upgrade to a

newer version of portage before EAPI masked packages can be installed.

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

refer to the Gentoo Handbook.

(dependency required by "app-admin/eselect-1.2.9" [ebuild])

```

me da mucho miedito saltarme las dependecias. Este servidor tiene raid por software, servidor de samba, apache, mysql y php. Todo ello basico para que no me den una patada en el culo la empresa en caso de parada.

Gracias por vuestra ayuda.

A ver si se nos ocurre algo más que no me ponga en peligro el funcionamiento del servidor y mi cuello.

----------

## codestation

 *entropia69 wrote:*   

> dicho otra forma, pinta mas que mal... peor
> 
> me veo moviendo el servidor a otra maquina...
> 
> te adjunto lo que me sale:
> ...

 

Mismo procedimiento, bash-completion (el cual tambien está solo disponible en EAPI=2) es opcional para eselect.

```

USE="-nls -bash-completion" emerge =sys-apps/portage-2.1.6.13 -1

```

Si te vuelve a salir otra dep que requiera EAPI=2 revisa en el ebuild si es opcional, y si lo es desactiva la USE temporalmente, así hasta que te deje emerger el portage.

Pues sí, quedarse sin portage en un server de producción seria de lo peor asi que será mejor no meterse con el --nodeps. De todas maneras continua desabilitando USE para las deps opcionales que requieran EAPI=2 a ver si hay suerte, si no es el caso y te topas con una dep que no sea opcional la mejor solución seria convertir el ebuild a EAPI=1 (la mayoria solo requiere unos pocos cambios) en un overlay local para emergerlo con tu versión actual de portage. Suerte.

----------

## quilosaq

Yo también creo que el camino mas corto es ir enmascarando paquetes -de los que necesitan EAPI 2- hasta que puedas emerger portage. Pero si este procedimiento se hace muy largo o llega a un punto en el que es inviable, deberías mirar esta página que creo que se ajusta tu caso.

----------

## entropia69

ahora si que me ha intentado emerger algunos paquetes. En concreto 15

eso si, da algunos avisos y errores, por ejemplo:

```
 * Messages for package sys-apps/help2man-1.36.4-r1:

 * This profile has not been tested thoroughly and is not considered to be

 * a supported server profile at this time.  For a supported server

 * profile, please check the Hardened project (http://hardened.gentoo.org).

 * This profile is merely a convenience for people who require a more

 * minimal profile, yet are unable to use hardened due to restrictions in

 * the software being used on the server. This profile should also be used

 * if you require GCC 4.1 or Glibc 2.4 support. If you don't know if this

 * applies to you, then it doesn't and you should probably be using

 * Hardened, instead.

```

y tambien:

```
 * Messages for package sys-devel/libtool-2.2.6b:

 * This profile has not been tested thoroughly and is not considered to be

 * a supported server profile at this time.  For a supported server

 * profile, please check the Hardened project (http://hardened.gentoo.org).

 * This profile is merely a convenience for people who require a more

 * minimal profile, yet are unable to use hardened due to restrictions in

 * the software being used on the server. This profile should also be used

 * if you require GCC 4.1 or Glibc 2.4 support. If you don't know if this

 * applies to you, then it doesn't and you should probably be using

 * Hardened, instead.

 * Failed Running automake !

 *

 * Include in your bugreport the contents of:

 *

 *   /var/tmp/portage/sys-devel/libtool-2.2.6b/temp/automake-11537.out

 *

 * ERROR: sys-devel/libtool-2.2.6b failed.

 * Call stack:

 *               ebuild.sh, line   49:  Called src_unpack

 *             environment, line 3141:  Called eautoreconf

 *             environment, line  952:  Called eautomake

 *             environment, line  921:  Called autotools_run_tool 'src_unpack' '                                              src_unpack' 'automake'

 *             environment, line  432:  Called die

 * The specific snippet of code:

 *           die "Failed Running $1 !";

 *  The die message:

 *   Failed Running automake !

 *

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

 * A complete build log is located at '/var/tmp/portage/sys-devel/libtool-2.2.6b                                              /temp/build.log'.

 * The ebuild environment file is located at '/var/tmp/portage/sys-devel/libtool                                              -2.2.6b/temp/environment'.

 *

 * Regenerating GNU info directory index...

 * Processed 117 info files.

```

tengo que preocuparme?

----------

## gringo

 *Quote:*   

>  * This profile has not been tested thoroughly and is not considered to be
> 
>  * a supported server profile at this time.  For a supported server
> 
>  * profile, please check the Hardened project (http://hardened.gentoo.org).
> ...

 

 *Quote:*   

> tengo que preocuparme?

 

si y no, si es un servidor lo que te están diciendo es que posiblemente deberías cambiar a un pefil hardened, porque están mas probados que tu perfil actual.

Cambiar a un perfil hardened tiene sus consecuencias, revisa la documentación por si es lo que te interesa.

Una cosa, que pasa si ejecutas algo como :

```
emerge -av1O portage
```

con este fuerzas la instalación de portage sin sus dependencias, lo que no sé si romperá algo, veo que tiene como dependencia >=bash-3.2_p17  (entre otras).

En caso de que cuele y portage funciones despues de esto te sugiero que hagas un emerge -av1 portage && emerge -ua1DN portage para dejar todo en su sitio.  Si no cuela me temo que la única solución es hacer lo que pone la guía que te han enlazao mas arriba e instalar portage a mano.

Despues de esto deberías poder proseguir con la actualizaación, pero vas a encontrar un huevo de blocks y demás historias que ralentizarán mucho el proceso de actualización del sistema, con lo que no sé si acabrás antes haciendo una instalación desde cero.

saluetes

----------

## entropia69

Bueno. Visto lo visto y que estoy entrando en un infierno de dependencias... Opto por aprovechar un servidor de vmware esxi y virtualizar un servidor LAMP de virtualappliances.

Facil, sencillo y para toda la familia.

Los experimentos con gaseosa. Este servidor en producción no puedo arriesgarme a tener problemas.

Un saludo y gacias a todos por vuestra ayuda

----------

