# Actualizacion de servidores en produccion

## zeratull

Primero que nada quiero saludar y agradecer, realmente es completisimo el foro, pero aun asi tengo una serie de dudas.

Mi problema es que nunca habia usado gentoo para servidores lei todo la docu sobre actualizaciones de gentoo, uso de portage etc...,  debida a que recientemente cambie de trabajo y todos los servidores estan sobre gentoo. Mi experiencia en linux se basa en debian y centos, por lo cual este metodo es nuevo para mi.

Al ser servidores que estan en productivo es casi imposible "probar" o arriesgarse a actualizar mal y romper alguna configuracion, Por eso queria solicitar si alguno podria orientarme como hacer un proceso de aprendizaje y actualizacion sobre los mismo evitando que se borren o sobreescriban configuraciones y se instalen paquetes por error y se conviertan en futuros accesos a fallas de seguridad.

Desde ya muchas gracias!

----------

## Txema

Solución mágica: usa siempre --ask y --verbose (-av)  :Wink: 

Te dejo los scripts que tengo yo funcionando en el servidor:

upgrade (requiere eix, elogv y cfg-update)

```
#!/bin/bash

if [[ `cat /etc/eix-sync.conf` != "*" ]]

then

        echo "Archivo /etc/eix-sync.conf no encontrado, este archivo debe tener el siguiente contenido: *"

        echo ""

        echo "¿quiere crear este archivo ahora? [Y/n]"

        read LINK

        case "$LINK" in

        "" )

                echo "*" > /etc/eix-sync.conf

                echo ""

                echo "Archivo creado correctamente"

                echo ""

        ;;

        "*" )

                echo ""

                echo "No se ha creado el archivo, saliendo del programa"

                echo ""

        ;;

        esac

else

        eix-sync

        if [[ `eix -u --only-names gcc` != ""  ]]

        then

                echo "-----------------------------------------------------------------------"

                echo ""

                echo "Existe una versión nueva de gcc, se procede a su compilación"

                echo ""

                echo "-----------------------------------------------------------------------"

                emerge -a1u gcc

                echo "-----------------------------------------------------------------------"

                echo ""

                echo "Seleccione la nueva versión"

                echo ""

                gcc-config -l

                echo ""

                echo "-----------------------------------------------------------------------"

                read GCC

                gcc-config $GCC

                source /etc/profile

                emerge -1 libtool

        fi

        if [[ `eix -u --only-names xorg-server` != ""  ]]

        then

                Xorg_nuevo=`emerge -pvu xorg-server|grep ebuild|sed -e 's/.*-.\.//'|sed -e 's/\..*//'`

                Xorg_actual=`emerge -pvu xorg-server|grep ebuild|sed -e 's/.*\[.\.//'|sed -e 's/\..*//'`

        fi

        emerge -avuND --keep-going system

        env-update && source /etc/profile && cfg-update -u

        emerge -avuND --keep-going --with-bdeps=y  world

        if [[ $Xorg_nuevo > $Xorg_actual ]]

        then

                echo "::::::::: Nueva versión de Xorg-server, recompilando evdev :::::::::"

                emerge -1 x11-drivers/xf86-input-evdev

                echo "::::::::: evdev recompilado :::::::::"

        fi

        elogv

        env-update && source /etc/profile && cfg-update -u

        emerge -a --depclean

        revdep-rebuild -p  # En caso de que cante paquetes a recompilar vuelvo a ejecutarlo sin la opción -p

        eclean-dist -d

fi
```

Esto es lo que hace: 

·Crea /etc/eix-sync.conf para que eix-sync actualice también los repositorios de Layman si es que lo tienes instalado

·Comprueba si hay una versión nueva de gcc para instalarla antes que los demás paquetes (este es una manía mía xD)

·Ahora te muestra la lista con los paquetes de "Sistema" para instalar, puedes mirar paquetes, USEs y versiones para decidir si aceptas

·Actualiza archivos de configuración usando cfg-update este programa actualiza cualquier archivo que no hayas modificado tú y los que has modificado te pregunta si no es capaz de hacerlo solo

·Ahora hace la segunda "parte" de la actualización, los paquetes de World

·Lo siguiente debe comparar en teoría si la versión de xorg-server es superior a la actual para recompilar los drivers (antes de poner esto me quedé alguna vez sin teclado y ratón por esto)

·En este punto, con elogv te muestra los paquetes que acabas de compilar y si necesitas hacer algo tras la instalación, normalmente los que tienen el puntito naranja o morado, en verde los que no necesitan nada y en rojo los errores

·Vuelve a actualizar configuraciones

·Y ahora hace algo que a la gente le da mucho miedo, borar paquetes "desvinculados" o con versiones repetidas, es decir --depclean (siempre con --ask y tú decides)

·Luego un revdep-rebuild para comprobar que todo esté en orden pero con un --pretend para que luego puedas decidir si compilas los paquetes o no

·Y finalmente elimina paquetes descargados innecesarios con eclean-dist -d de /usr/portage/distfiles

Y este para instalar un nuevo kernel

KernelInstall

```
#!/bin/bash

echo "Selecciona el kernel a compilar:"

echo "-------------------------------------"

echo "`eselect kernel list`"

echo "-------------------------------------"

echo "[Indique el número o presione enter para seleccionar el actual]"

echo ""

read LINK

case "$LINK" in

        "" )

                echo "Kernel ya seleccionado, se continúa el proceso"

                echo ""

        ;;

        * )

                echo "Nuevo kernel seleccionado, se continúa el proceso"

                echo ""

                eselect kernel set $LINK

        ;;

esac

cd /usr/src/linux/

if [ -s .config ]

then

        echo "Encontrado archivo de configuración .config"

        echo ""

else

        echo " ------ Archivo .config copiado del kernel anterior ------ "

        cp /usr/src/linux-`uname -r`/.config /usr/src/linux/

        echo ""

fi

echo ""

echo " ------ Configurando Kernel... ------ "

echo ""

make oldconfig

make menuconfig

echo ""

echo " ------ Compilando Kernel... ------ "

echo ""

make && make modules_install

KERNEL=`ls -l /usr/src/linux|sed 's/^.*linux-//'`

ACTUAL1=`grep -m 1 /kernel /boot/grub/grub.conf|sed 's/^.*\/boot\/kernel-//g'|sed 's/ root.*//g'`

ACTUAL2=`grep /kernel /boot/grub/grub.conf|sed 's/^.*\/boot\/kernel-//g'|sed 's/ root.*//g'|sed 's/ root.*//g'|sed -e '1d'`

echo ""

echo " ------ Recompilando drivers ------ "

echo ""

module-rebuild -X rebuild

echo ""

echo " ------ Copiando nueva imagen a /boot ------ "

echo ""

cp /usr/src/linux/arch/x86/boot/bzImage /boot/kernel-${KERNEL}

echo "          Imagen copiada"

echo ""

echo " ---------- Modificando grub ---------- "

echo ""

if [[ $KERNEL != $ACTUAL1 && $KERNEL != $ACTUAL2  ]]

then

        echo "Versión nueva añadida en primer lugar"

        sed -i "s/${ACTUAL1}/borrado/" /boot/grub/grub.conf

        sed -i "s/${ACTUAL2}/${ACTUAL1}/" /boot/grub/grub.conf

        sed -i "s/borrado/${KERNEL}/" /boot/grub/grub.conf

        BORRAR=`ls /boot/kernel*|sed 's/  /\n/g'|sed 's/\/boot\/kernel-//g'`

        for i in $BORRAR

        do

                if [[ $i != $KERNEL && $i != $ACTUAL1 ]]

                then

                        rm /boot/kernel-$i

                fi

        done

elif [[ $KERNEL = $ACTUAL1 ]]

then

        # No se hace nada

        echo "Versión idéntica de kernel, grub.conf no modificado."

elif [[ $KERNEL = $ACTUAL2 ]]

then

        echo "Versión idéntica de kernel, Entrada antigua colocada en primer lugar"

        sed -i "s/${ACTUAL1}/borrado/" /boot/grub/grub.conf

        sed -i "s/${ACTUAL2}/${ACTUAL1}/" /boot/grub/grub.conf

        sed -i "s/borrado/${KERNEL}/" /boot/grub/grub.conf

fi

echo ""

echo "--------------------- FIN ---------------------"

echo ""
```

Este es bastante auto explicativo, compila un kernel nuevo usando el archivo .config del anterior, copia la imagen a /boot/ y luego modifica el grub.conf para dejarlo en primer lugar (está limitado a dos versiones que es lo que tengo yo normalmente)

Si tienes alguna duda pregunta  :Wink: 

Un saludo y el mejor consejo es leer, siempre leer lo que vas a hacer antes de hacerlo y para eso: --ask --verbose  :Wink: 

----------

## zeratull

Muchas gracias por la info voy a ir mirando el script y leyendo cada cosa asi aprendo y no solo depende de un script.

Mira encontre esto que ejecuto el administrador anterior el creador de estos servers:

   59  2010-12-28 13:43:42 time emerge --sync

   60  2010-12-28 13:49:02 emerge -upvND portage

   63  2010-12-28 13:49:46 emerge -upvND portage

   64  2010-12-28 13:50:58 emerge -uvND portage

   73  2010-12-28 14:50:50 emerge -pv glib

   74  2010-12-28 14:51:06 emerge --depclean -p =dev-util/gtk-doc-1.13

   75  2010-12-28 14:51:16 emerge --depclean -p dev-util/gtk-doc

   76  2010-12-28 14:51:35 emerge --depclean dev-util/gtk-doc

   77  2010-12-28 14:52:10 emerge -v --depclean dev-util/gtk-doc

   78  2010-12-28 14:52:42 emerge -pv gtk-doc

  105  2010-12-28 18:09:45 emerge -upvND system

  106  2010-12-28 18:10:54 emerge -uvND system

  121  2010-12-29 12:28:27 emerge -pv logrotate

  126  2010-12-29 12:30:15 emerge --oneshot libtool

  145  2010-12-29 12:35:08 emerge -upvND world

  148  2010-12-29 12:37:16 emerge -pv spamassassin

  149  2010-12-29 12:37:27 emerge -s dkim

  150  2010-12-29 12:38:19 emerge -pv dev-perl/Mail-DKIM

  155  2010-12-29 12:39:08 emerge -pv dev-perl/Mail-DKIM

  169  2010-12-29 12:46:39 emerge -upvND world

  170  2010-12-29 12:46:54 emerge -uvND world

  203  2010-12-29 15:43:39 emerge -upvND world system

No entendi mucho que hizo, digamos el sync lo que haria seria atualizar a nivel local lo que hay en el repositorio?

Luego con esto:  emerge -upvND portage. El trae esos paquetes pero no los instala verdad? yo lo ejecute y me muestra un monton de cosas, pero temo seguir adelante sin antes entender bien como es esto.

Agradeceria mucho si me explicas a raiz de esa info como viene la mano con este servidor.

Saludos!

----------

## agdg

Usa rsync para clonar el equipo, lleva-lo a una máquina física o virtual y trabaja sobre él equipo clonado. De hecho hace unos días escribí un post sobre ello (Realizar una copia de seguridad del sistema) En él explico como usar rsync para sincronizar dos particiones, en el post lo hice en mi máquina de casa sobre la misma máquina. Tal vez en tu caso sea mejor usar rsync a través de ssh para "clonar" hacia otro equipo. O a las malas incluso conectar el disco por usb.

Normalmente los servidores tienen /var alojada en otra partición, por tanto si precisas los datos de /var (http ...) recuerda llevarte-los en una segunda pasada con rsync.

Una vez tengas el otro equipo listo. Como decían en el Un, dos tres... Aaaa jugarrrr...

----------

## Txema

emerge --sync es lo mismo que eix-sync (de hecho lo que hace eix-sync es hacer un emerge --sync) y sirve para actualizar tu copia local de portage que tienes en /usr/portage con cualquier servidor.

Una vez actualizado portage ya puedes empezar a actualizar.

Los comandos que ha usado llevan -p (--pretend) lo que hacen es mostrarte lo que haría sin llegar a hacerlo, para que cuando estés seguro repitas el comando pero quitándole la opción -p personalmente ese método no me gusta nada, prefiero --ask que es más corto porque si lo que te muestra está correcto puedes darle directamente a Yes y comienza a descargar/compilar

También ha usado el comando --oneshot(o -1) que es muy bueno para cuando quieras REcompilar un paquete, porque si no portage te lo añadirá a la lista World en lugar de dejarlo como dependencia y esto puede hacer que se vuelva lento al calcular qué paquetes necesitas actualizar y si es una dependencia de un programa que luego puede ser que borres, esta dependencia no la borrará la opción --depclean y se quedará en tu sistema ocupando espacio para nada.

La opción -s es para buscar, yo prefiero usar eix NOMBREPAQUETE porque es mucho más rápido y a mi gusto da más y mejor información

El último comando es redundante, ya que world si no me equivoco ya incluye a system así que con emerge -avuND world es suficiente para actualizar todo el sistema

Otra opción muy útil es --keep-going para que la compilación continúe aunque falle un paquete

Mírate el man de emerge si tienes más dudas y ve probando  :Wink: 

Un saludo.

P.D: se me olvidaba, nunca uses la opción -e (o como yo la llamo, eva) porque considerará que no tienes nada instalado y te reinstalará TODO el sistema, solo es para casos muy puntuales y no creo que la necesites.

----------

## zeratull

 *Txema wrote:*   

> emerge --sync es lo mismo que eix-sync (de hecho lo que hace eix-sync es hacer un emerge --sync) y sirve para actualizar tu copia local de portage que tienes en /usr/portage con cualquier servidor.
> 
> Una vez actualizado portage ya puedes empezar a actualizar.
> 
> Los comandos que ha usado llevan -p (--pretend) lo que hacen es mostrarte lo que haría sin llegar a hacerlo, para que cuando estés seguro repitas el comando pero quitándole la opción -p personalmente ese método no me gusta nada, prefiero --ask que es más corto porque si lo que te muestra está correcto puedes darle directamente a Yes y comienza a descargar/compilar
> ...

 

Te doy mil gracias muy completa la info, me ayudo a comprender un poco mas este lio.

Ahora, cual serian los posibles riesgos o que tips me podes dar para tener en cuenta la hora de actualizar? corro riesgo de romper algo? o instalar paquetes de mas?

----------

## Txema

Siempre hay riesgo, el riesgo cero no existe ni en esta vida ni en la siguiente xDD

De todas formas se puede reducir muchísimo con una simple acción, usar el perfil estable, es decir, en tu /etc/make.conf (uno de los archivos más importantes en esta "metadistribución") tienes que poner tu arquitectura SIN el símbolo ~ para indicar que no te instale paquetes que están marcados como inestables o "en pruebas"

```
ACCEPT_KEYWORDS="amd64"
```

Yo tengo un core i5 en 64 bits, pero si tienes tu sistema en 32 bits simplemente pon x86 en lugar de amd64

Un saludo.

----------

## zeratull

Bueno estuve probando en server de test, no rompi nada y ahora llego la hora de hacerlo en servers productivos.

Primero ejecute emerge -pvuND world, y no habia nada para actulizar ni nada de nada, me parecio raro ya que hace 200 dias segun el server q no se hacia emerge.

Corri emerge --sync, y luego emerge -pvuND world nuevamente, esto fue lo que salio:

```
xhill ~ # emerge -pvuND world

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

Calculating dependencies... done!

[ebuild     U ] sys-apps/portage-2.1.9.42 [2.1.9.25] USE="(ipc) less%* -build -doc -epydoc -python2% -python3 (-selinux)" LINGUAS="-pl" 747 kB

[ebuild  N    ] virtual/os-headers-0  0 kB

[ebuild  N    ] virtual/libc-0  0 kB

[ebuild     U ] sys-libs/zlib-1.2.5-r2 [1.2.3-r1] 475 kB

[ebuild     U ] app-arch/xz-utils-5.0.1 [4.999.9_beta] USE="nls threads -static-libs" 1,208 kB

[ebuild     U ] sys-devel/gcc-config-1.4.1-r1 [1.4.1] 0 kB

[ebuild     U ] app-misc/pax-utils-0.2.2 [0.2.1] USE="-caps" 80 kB

[ebuild     U ] sys-libs/timezone-data-2011g [2010o] USE="nls" 382 kB

[ebuild     U ] dev-libs/libffi-3.0.9-r2 [3.0.9] USE="-debug -static-libs -test" 0 kB

[ebuild  N    ] virtual/package-manager-0  0 kB

[ebuild     U ] sys-apps/hdparm-9.36 [9.28] 119 kB

[ebuild     U ] sys-libs/ncurses-5.7-r7 [5.7-r3] USE="cxx gpm unicode -ada -debug -doc -minimal -profile -static-libs% -trace" 0 kB

[ebuild     U ] sys-kernel/linux-headers-2.6.36.1 [2.6.30-r1] 4,383 kB

[ebuild     U ] dev-libs/mpfr-3.0.0_p3 [2.4.2_p3] 1,112 kB

[ebuild     U ] sys-apps/net-tools-1.60_p20110409135728 [1.60_p20090728014017-r1] USE="nls -static" 222 kB

[ebuild     U ] sys-apps/pciutils-3.1.7 [3.1.4] USE="zlib -network-cron" 314 kB

[ebuild     U ] app-shells/bash-4.1_p9 [4.1_p7] USE="net nls -afs -bashlogger -examples -mem-scramble -plugins -vanilla" 3 kB

[ebuild     U ] sys-apps/less-441 [436] USE="unicode" 300 kB

[ebuild     U ] sys-devel/binutils-config-2-r1 [1.9-r4] 0 kB

[ebuild     U ] sys-process/procps-3.2.8-r2 [3.2.8] USE="unicode (-n32)" 0 kB

[ebuild     U ] sys-apps/baselayout-2.0.2 [1.12.14-r1] USE="-build (-bootstrap%) (-static%) (-unicode%*)" 40 kB

[ebuild  N    ] sys-apps/openrc-0.8.2-r1  USE="ncurses pam unicode -debug (-selinux)" 158 kB

[ebuild     U ] sys-apps/module-init-tools-3.12-r1 [3.5] USE="-static% (-old-linux%)" 917 kB

[ebuild     U ] sys-apps/debianutils-3.4.4 [3.2.3] USE="-static" 152 kB

[ebuild     U ] dev-lang/perl-5.12.3-r1 [5.12.2-r4] USE="berkdb gdbm -build -debug -doc -ithreads" 11,768 kB

[ebuild     U ] virtual/perl-digest-base-1.160.0 [1.16] 0 kB

[ebuild     U ] perl-core/Scalar-List-Utils-1.230.0 [1.23] 0 kB

[ebuild     U ] virtual/perl-libnet-1.220.0 [1.22] 0 kB

[ebuild     U ] net-misc/whois-5.0.8 [5.0.5] USE="iconv%* nls -idn%" 80 kB

[ebuild     U ] virtual/perl-Scalar-List-Utils-1.230.0 [1.23] 0 kB

[ebuild     U ] sys-libs/readline-6.1_p2 [6.1] 3 kB

[ebuild     U ] sys-apps/groff-1.21 [1.20.1-r3] USE="-X -examples" LINGUAS="-ja" 3,774 kB

[ebuild     U ] dev-libs/libmix-2.05-r5 [2.05] USE="-static-libs% (-no-net2%)" 0 kB

[ebuild     U ] net-analyzer/fping-2.4_beta2_p161-r1 [2.4_beta2-r2] USE="-ipv6%" 71 kB

[ebuild     U ] dev-perl/Error-0.170.160 [0.17.016] USE="-test" 0 kB

[ebuild  N    ] virtual/man-0  0 kB

[ebuild     U ] dev-libs/popt-1.16-r1 [1.16] USE="nls -static-libs%" 0 kB

[ebuild     U ] sys-devel/bison-2.4.3 [2.4.2] USE="nls -static" 1,614 kB

[ebuild     U ] sys-apps/util-linux-2.19.1 [2.17.2] USE="cramfs%* crypt ncurses%* nls perl unicode -old-linux (-selinux) -slang (-uclibc) (-loop-aes%)" 4,294 kB

[ebuild     U ] sys-devel/make-3.82 [3.81-r2] USE="nls -static" 1,214 kB

[ebuild     U ] sys-apps/diffutils-3.0 [2.8.7-r2] USE="nls -static" 1,782 kB

[ebuild     U ] app-editors/nano-2.2.5 [2.2.4] USE="ncurses nls unicode -debug -justify -minimal -slang -spell" 1,519 kB

[ebuild     U ] net-misc/rsync-3.0.8 [3.0.7] USE="acl iconv -ipv6 -static -xattr" 773 kB

[ebuild     U ] app-admin/logrotate-3.7.9-r1 [3.7.8] USE="(-selinux)" 45 kB

[ebuild     U ] dev-libs/libpcre-8.12 [8.02] USE="bzip2 cxx recursion-limit%* (unicode) zlib -static-libs" 970 kB

[ebuild     U ] dev-libs/openssl-1.0.0d [1.0.0c] USE="zlib -bindist -gmp -kerberos -rfc3779 -sse2 -test" 3,932 kB

[ebuild     U ] net-dns/bind-tools-9.7.3 [9.7.2_p2-r2] USE="ssl -doc -idn -ipv6 -urandom -xml" 7,475 kB

[ebuild     U ] net-ftp/lftp-4.2.3 [4.1.1] USE="nls ssl -gnutls -socks5" 1,296 kB

[ebuild     U ] net-misc/ntp-4.2.6_p3 [4.2.4_p7-r1] USE="ssl -caps -debug -ipv6 -openntpd -parse-clocks (-selinux) -snmp% -vim-syntax -zeroconf" 4,217 kB

[ebuild  NS   ] dev-lang/python-2.7.1-r1 [2.5.4-r4, 2.6.6-r1, 3.1.2-r4] USE="gdbm ncurses readline ssl threads (wide-unicode) xml -berkdb -build -doc -examples -ipv6 -sqlite -tk -wininst" 11,461 kB

[ebuild     U ] dev-libs/libxml2-2.7.8-r1 [2.7.7] USE="python readline -debug -doc -examples -icu% -ipv6 -test" 4,768 kB

[ebuild     U ] net-analyzer/nmap-5.51 [5.21-r1] USE="ssl -gtk -lua" 16,474 kB

[ebuild     U ] dev-lang/python-3.1.3-r1 [3.1.2-r4] USE="gdbm ncurses readline ssl threads (wide-unicode) xml -build -doc -examples -ipv6 -sqlite -tk -wininst" 9,658 kB

[ebuild     U ] app-admin/python-updater-0.8-r1 [0.8] 0 kB

[ebuild     U ] sys-apps/file-5.05 [5.04] USE="python -static-libs%" 583 kB

[ebuild     U ] app-admin/eselect-1.2.15 [1.2.11] USE="bash-completion -doc" 166 kB

[ebuild     U ] app-shells/bash-completion-1.3 [1.2] 207 kB

[ebuild     U ] app-shells/gentoo-bashcomp-20101217 [20100613] 23 kB

[ebuild     U ] app-editors/vim-core-7.3.135 [7.3.50] USE="acl bash-completion nls -livecd" 104 kB

[ebuild     U ] app-editors/vim-7.3.135 [7.3.50] USE="acl bash-completion gpm nls perl python -X -cscope -debug -minimal -ruby -vim-pager" 0 kB

[ebuild     U ] app-vim/gentoo-syntax-20101212 [20100215] USE="-ignore-glep31" 19 kB

[ebuild     U ] app-misc/screen-4.0.3-r4 [4.0.3] USE="pam -debug -multiuser -nethack (-selinux)" 0 kB

[ebuild     U ] sys-apps/shadow-4.1.4.3 [4.1.4.2-r6] USE="cracklib nls pam -audit (-selinux) -skey" 1,762 kB

[ebuild     U ] mail-mta/postfix-2.7.4 [2.7.1] USE="hardened pam ssl -cdb -doc% -dovecot-sasl -examples% -ipv6 -ldap -mbox -mysql -nis -postgres -sasl (-selinux) -vda" 3,344 kB

[ebuild     U ] net-misc/openssh-5.8_p1-r1 [5.6_p1-r2] USE="hpn pam tcpd -X -X509 -kerberos -ldap -libedit (-selinux) -skey -static" 1,108 kB

[ebuild  N    ] virtual/mta-0  0 kB

[ebuild  N    ] virtual/ssh-0  USE="-minimal" 0 kB

[ebuild     U ] app-admin/sudo-1.7.4_p5 [1.7.4_p4] USE="pam -ldap -offensive (-selinux) -skey" 944 kB

[ebuild     U ] sys-apps/smartmontools-5.40 [5.39.1] USE="-caps% -minimal -static" 690 kB

[ebuild  N    ] virtual/dev-manager-0  0 kB

[ebuild  NS   ] sys-kernel/gentoo-sources-2.6.38-r6 [2.6.29-r5, 2.6.30-r6, 2.6.30-r7, 2.6.31-r6, 2.6.32-r7, 2.6.34-r12, 2.6.35-r4, 2.6.36-r5] USE="symlink -build -deblob" 73,155 kB

[ebuild     U ] net-dns/bind-9.7.3_p1 [9.7.2_p3-r1] USE="berkdb idn ssl threads -dlz -doc -geoip -gssapi -ipv6 -ldap -mysql -odbc -postgres -resolvconf -sdb-ldap% (-selinux) -urandom -xml" 7,409 kB

[ebuild     U ] sys-libs/glibc-2.12.2 [2.11.2-r3] USE="nls -debug -gd -glibc-omitfp (-hardened) (-multilib) -profile (-selinux) -vanilla" 16,009 kB

[ebuild     U ] sys-devel/gcc-4.4.5 [4.4.4-r2] USE="fortran mudflap nls nptl openmp (-altivec) -bootstrap -build -doc (-fixed-point) -gcj -graphite -gtk (-hardened) (-libffi) (-multilib) -multislot (-n32) (-n64) -nocxx -nopie -nossp -objc -objc++ -objc-gc -test -vanilla" 61,645 kB

[ebuild     U ] sys-fs/udev-164-r2 [151-r4] USE="-extras (-selinux) -test (-devfs-compat%) (-old-hd-rules%)" 554 kB

Total: 75 packages (65 upgrades, 8 new, 2 in new slots), Size of downloads: 265,496 kB

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

 * Use eselect news to read news items.

```

Mi pregunta es: Algun sysadmin experto, podria decirme si esto esta trayendo cosas de mas? digamos no quiero tener mas de lo necesario para que funcione el server, segundo: Es seguro? Me refiero a, no se pisara ninguna config o alterar el funcionamiento del server?

Este es un servidor de DNS primario, si les sirve de ayuda en algo.

Saludo, y muchas gracias!

----------

## codestation

 *zeratull wrote:*   

> 
> 
> podria decirme si esto esta trayendo cosas de mas? digamos no quiero tener mas de lo necesario para que funcione el server,
> 
> 

 

No veo nada que esté de mas.

 *zeratull wrote:*   

> 
> 
> segundo: Es seguro? Me refiero a, no se pisara ninguna config o alterar el funcionamiento del server?
> 
> Este es un servidor de DNS primario, si les sirve de ayuda en algo.
> ...

 

Portage no sobreescribe ninguna config, sigo que al finalizar el emerge te avisará que debes ejecutar etc-update para actualizar la config, alli ya quedará de tu parte y mirando el diff de la herramienta si es mejor no aceptar la config actualizada y dejar al actual tal como está o hacer un merge interactivo.

Y antes que se me olvide, algo importantisimo:

```

[ebuild     U ] sys-apps/baselayout-2.0.2 [1.12.14-r1] USE="-build (-bootstrap%) (-static%) (-unicode%*)" 40 kB

[ebuild  N    ] sys-apps/openrc-0.8.2-r1  USE="ncurses pam unicode -debug (-selinux)" 158 kB

```

Te recomiendo encarecidamente que actualices esos paquetes primero (y portage incluido) y sigas la guia de migración a openrc http://www.gentoo.org/doc/es/openrc-migration.xml . En resumen te digo que de no actualizar la config luego de instalar esos 2 paquetes te puede dejar el server inutilizable. También es posible que llegues a necesitar un reinicio ya que probablemente los scripts de arranque de servicios te dejen de funcionar. No me refiero que los servicios vayan a fallar, sino que no podrás hacer más start/stop/reload/etc hasta que openrc esté activo. La migración no es tan fea como la pintan, yo la hice hace un par de años, y aparte de convertir mis scripts de networking al nuevo sistema a mano (en ese tiempo portage no te hacia la migración completa) no tuve mayor inconveniente.

Saludos y suerte.

----------

