Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
[Guia] Actualizar gentoo 'en diferido'
View unanswered posts
View posts from last 24 hours

Goto page 1, 2  Next  
Reply to topic    Gentoo Forums Forum Index Spanish
View previous topic :: View next topic  
Author Message
RadikalQ3
Apprentice
Apprentice


Joined: 26 Oct 2003
Posts: 172
Location: Planeta Tierra

PostPosted: Sat Oct 02, 2004 1:45 pm    Post subject: [Guia] Actualizar gentoo 'en diferido' Reply with quote

Guia para actualizar Gentoo 'en diferido' (o cómo no morirse de lentitud mientras tu chisme está compilando cosas)

Actualización del 30/01/2005 (Version 3.0)

  • Eliminado el uso de -newuse (mejor lo haces a mano...)
  • Añadido colorines a la salida del programa
  • Añadidas opciones para saber los programas compilados y sin compilar
  • Añadida opcion para que no realice el emerge sync
  • Añadida ayuda mediante la opcion -h
  • Añadida purga del directorio temporal de compilaciones del portage (sino se llena de ficheros gigas y gigas)

Actualización del 18/01/2005 (Version 2.0)

  • Añadido el flag -newuse para que se compilen los paquetes que hayan sido afectados por un cambio de tus variables USE
  • Añadido un nuevo parámetro de configuración: HORA_LIMITE para poder poner freno a las compilaciones en una hora determinada.

De vez en cuando nos toca actualizar nuestra Gentoo (cada cual escoge la frecuencia, yo lo suelo hacer a diario, porque dispongo de ancho de banda)
Aqui propongo una forma de actualizar nuestros equipos, sin tener que andar compilando paquetes precisamente cuando nos sentamos ante nuestro equipo.
Ya me fastidia llegar a casa y ponerme a compilar todo mientras estoy viendo una peli, revisando mi correo o cualquier otra tarea, mientras la CPU consume recursos a montones y hace rascar el disco duro.
¿Como es esto?... pues muy fácil.
Alguno ha tenido la tentación (incluso alguno hasta lo hace) de realizar un emerge sync y un emerge -uD world de manera automática, mediante un evento en el cron, por ejemplo.
El emerge sync... no hay problema, pero el compilar algo de manera desatendida es una práctica que conlleva muchos riesgos, dado que si hay algún problema de compilación, éste nos pasará inadvertido. Además, habrá ciertas configuraciones que necesitarán ser revisadas (mediante etc-update, dispatch-conf o como sea).
En este post, propongo un script que llevo utilizando con éxito desde hace ya varios meses en todos los servidores Gentoo que me toca mantener.

La idea es la siguiente:
Se trata de, mediante un evento cron, realizar un emerge sync, y luego, crear paquetes compilados pero SIN INSTALARLOS, de tal forma que, en cuanto tengamos un rato, podamos efectuar un
Code:
emerge -uDk world

y realizar la actualización del sistema sin tener que compilar paquetes (dado que ya estarán instalados) y pudiendo observar el proceso, revisar configuraciones, etc.

Aqui está el script que lo hace posible:

Code:

#! /bin/sh

# ----------------------------------------------------------------------------
# pupdate
# Script para actualizar el portage mediante un evento desatendido
# Se trata de realizar el quivalente a:
#   emerge sync ; emerge -uDp world
# y tras esto, compilar las novedades pero SIN INSTALARLAS, es decir,
# se crean los paquetes compilados en $PKGDIR para tenerlos ahí
# ya compilados, y, a la hora de actualizar el sitema, poder hacerlo
# mediante un:
#   emerge -uDk world
# en un periodo breve de tiempo, mientras se supervisa la operacion,
# utilizando los paquetes binarios creados de antemano por el script.
#
#El script puede enviar por email un reporte con el resultado
#y tambien tiene en cuenta a los usuarios del MLDonkey
#frenando su consumo de ancho de banda mientras dure la actualizacion.
#
#               Por RadikalQ3 para todos los colegas de Gentoo
#
# Version 3.0      30/01/2005
# - Eliminado el '--newuse' incorporado en la version 2.0
# - Añadidos colores a la salida del programa
# - Añadida opcion para que no realice el emerge sync
# - Añadida opcion para ver los paquetes que faltan por compilar
# - Añadida opcion para ver los paquetes ya compilados listos para instalar
# - Añadida purga del directorio temporal de compilaciones del portage
# - Añadida opcion para que no realice la purga
# ----------------------------------------------------------------------------


#**************************************************************
#      Configuración inicial:
#******************************

#Fichero temporal para crear el informe de la actualizacion (se borrará al terminar):
TMP_REPORT='/tmp/pupdate-report'

#Fichero temporal conteniendo la lista de los paquetes nuevos a actualizar:
TMP_NUEVOS_PAKETES='/tmp/pupdate-nuevos'

#Fichero temporal para albergar la lista de paquetes ya compilados
TMP_COMPILADOS='/tmp/pupdate-c'

#Fichero temporal para albergar la lista de paquetes sin compilar
TMP_NO_COMPILADOS='/tmp/pupdate-sc'

#Hacer emerge sync y bajar fuentes de golpe al principio:
HACER_SYNC='si'

#Hacer purga final de temporales de compilacion:
HACER_PURGA='si'

#Si queremos frenar el MLDonkey antes de sincronizar el portage
#  Posibles valores: si ó no
MLDONKEY_SLOW='no'

#Si queremos que nos envie un email con un reporte de lo realizado
#  Posibles valores: si ó no
EMAIL_REPORT='si'
#Dirección de email a la que enviar el reporte
#NOTA: Debe funcionar el comando 'mail' en tu sistema (emerge mailx te ayudara)
EMAIL_DIR='root'

#Hora límite para terminar la compilacion
#Despues de esta hora, el script deja de compilar hasta la próxima ejecución
#Usar formato de 24 horas, por ejemplo, 21:30 para las nueve y media de la noche
#Si no se quiere limite, poner 99:99
HORA_LIMITE='99:99'

#Una vez configurado el script, poner CONFIGURADO='si'
CONFIGURADO='no'
#**************<Fin de la configuracion inicial>******************



#Datos de esta versión del script
PROG="pupdate"
TAG="Compila, si, pero no me molestes..."
DESC="Portage Update. Para compilar Gentoo en diferido. - RadikalQ3 - "
VERSION="3.0"

#Defición de colores
NO=$'\x1b[0;0m'
NE=$'\x1b[0;01m'
RO=$'\x1b[31;01m'
VE=$'\x1b[00;32m'
AZ=$'\x1b[34;01m'

#**************************************************************
#      Funciones del script:
#******************************

function colorea_ayuda() {
#Colorea el texto de ayuda del script
   sed -r "
   s/^[^[:space:]].*:/$VE\\0$NO/
   s/[[:space:]]-[][[:alpha:]?-]+/${AZ}\\0${NO}/g
   s/\\(default\\)/${BR}\\0${NO}/
   "
}

function muestra_ayuda {
#Muestra la ayuda del script
   cat <<END | colorea_ayuda

${NE}${PROG} ${NO}v. ${RO}${VERSION} ${AZ}"${TAG}"
 ${RO}${DESC}
${NO}
Utilización: ${PROG} [OPCION]

Actualiza el árbol de paquetes de Portage, creando paquetes compilados
de manera desatendida, que después podrán ser instalados mediante:
      ${AZ}portage -k${NO}
El script por defecto efectua todas las operaciones (si estan activadas
dentro de la configuracion del propio script), que son

- emerge sync
- emerge -uDf world
- Compila todo creando paketes binarios pero sin instalarlos
- Crea un reporte y lo envia por email
- Purga los directorios temporales de compilacion de portage

a no ser que usemos algunas de las siguientes opciones:

Opciones disponibles:
 
  -h, --help         Muestra esta ayuda
  -s, --nosync         No hacer el emerge sync
  -p, --nopurge         No hacer la purga final
  -c, --vercompilados      Ver los paquetes compilados listos para instalar
  -n, --vernocompilados    Ver los paquetes que faltan por compilar

Configuración:

El script ha de configurarse antes de ser utilizado, editando las variables situadas
en su interior.

Una vez configurado, debes poner CONFIGURADO='si' (dentro del script) para comenzar
a utilizarlo sin ver este texto de ayuda.

Ejemplos de uso:

- Saber lo que falta por compilar (sin hacer emerge sync) > pupdate -sn
- Saber lo que ya está compilado  (sin hacer emerge sync) > pupdate -sc
- Operación habitual completa                   > pupdate
 
END
}

function baja_todo {
#Frena el edonkey, hace emerge sync, baja los paquetes necesarios
#con emerge -uDf world y vuelve a acelerar el mldonkey

   #Si utilizamos MLDonkey, lo ponemos a 'Slow' para que no chupe todo el ancho de banda
   if [ ${MLDONKEY_SLOW} = 'si' ]
   then echo " ${VE}*${NO} Reduciendo el consumo de ancho de banda de MLDonkey"; /etc/init.d/mldonkey slow
   fi
   
   #Actualizamos arbol del portage:
   echo " ${VE}*${NO} Sinconizando portage (${AZ}emerge sync${NO})"
   emerge sync
   
   #Hacemos Download de los paquetes necesarios:
   echo " ${VE}*${NO} Descargando los paquetes necesarios (${AZ}emerge -uDf world${NO})"
   emerge -uDf world
   
   #Aceleramos el MLDonkey
   if [ ${MLDONKEY_SLOW} = 'si' ]
   then echo " ${VE}*${NO} Acelerando MLDonkey"; /etc/init.d/mldonkey fast
   fi
}

function compila_todo {
#Compila los paquetes que faltan por compilar.
#Deja de compilar si se llega a la hora límite (configurable)

   echo " ${VE}*${NO} Compilando los paquetes que falten por compilar:"
   #Compilamos los que no estén ya compilados:
   for i in ` cat ${TMP_NUEVOS_PAKETES} ` ;
   do
      if [ ! -f ${PKGDIR}/All/$i.tbz2 ]
      then
         if [ $(date +"%H:%M") \< $HORA_LIMITE ]
         then echo "   Compilando: $i";  /usr/bin/nice -n +19 /usr/bin/emerge -B =$i
         else echo "   NO Compilando, por Hora Límite: $i"
         fi   
      fi
   done
}

function crea_reporte {
#Crea un reporte que muestra los paquetes compilados y no instalados
#y los paquetes no compilados
   echo " ${VE}*${NO} Creando reporte"
   
   rm -f ${TMP_COMPILADOS}
   
   #Creamos un reporte con lo realizado:
   echo " " > ${TMP_REPORT}
   echo "     _______________________________________________________" >> ${TMP_REPORT}
   echo "          Reporte de actualización del equipo: "$HOSTNAME >> ${TMP_REPORT}
   echo "     _______________________________________________________" >> ${TMP_REPORT}
   echo " " >> ${TMP_REPORT}
   echo " * Nuevos paquetes YA COMPILADOS y listos para instalar con emerge -uDk :" >> ${TMP_REPORT}
   echo " " >> ${TMP_REPORT}
   
   for i in ` cat ${TMP_NUEVOS_PAKETES} ` ;
   do
      if [ -f ${PKGDIR}/All/$i.tbz2 ]
      then echo "  - $i" >> ${TMP_COMPILADOS}
      fi
   done
   
   if [ -f ${TMP_COMPILADOS} ]
   then cat ${TMP_COMPILADOS} >> ${TMP_REPORT}
   else echo "    - No hay ningún paquete ya compilado pendiente de instalar" >> ${TMP_REPORT}
   fi
   
   rm -f ${TMP_COMPILADOS}
   
   echo " " >> ${TMP_REPORT}
   echo " " >> ${TMP_REPORT}
   echo " * Nuevos paquetes que NO HAN SIDO COMPILADOS. (Se recomienda compilación manual) :" >> ${TMP_REPORT}
   echo " " >> ${TMP_REPORT}
   
   for i in ` cat ${TMP_NUEVOS_PAKETES} ` ;
   do
      if [ ! -f ${PKGDIR}/All/$i.tbz2 ]
      then  echo "  - $i" >> ${TMP_NO_COMPILADOS}
      fi
   done
   
   if [ -f ${TMP_NO_COMPILADOS} ]
   then cat ${TMP_NO_COMPILADOS} >> ${TMP_REPORT}
   else echo "    - No hay ningún paquete nuevo sin compilar" >> ${TMP_REPORT}
   fi
   
   echo " " >> ${TMP_REPORT}
   
   cat ${TMP_REPORT}
}

function purga_compilaciones {
#Si el emerge no está siendo ejecutado, borra el directorio temporal
#de compilaciones usado por portage, definido en el fichero /etc/make.conf
#en la variable PORTAGE_TMPDIR   
   echo " ${VE}*${NO} Borrando directorio temporal compilación emerge si este no se esta ejecutando"
      
   ps -a | grep emerge > /dev/null
   if [ $? -eq 1 ]; then
   rm -rf ${PORTAGE_TMPDIR}/*
   fi
}


#**************************************************************
#      Entrada del script:
#******************************

#Hasta que sea configurado el script, mostramos la ayuda y salimos
#Asi, por lo menos te lees las opciones una vez...
if [ $CONFIGURADO != 'si' ]
then
   muestra_ayuda;
   echo "${RO}NOTA:${NO} Debes poner CONFIGURADO='si' en el script para que el script funcione...";
   exit 0
fi

#Actualizamos las variables de directorios del portage:
# En concreto, nos interesa PKGDIR y PORTAGE_TMPDIR
source /etc/make.conf

#Si no está definida la variable PKGDIR, no continuamos
if [ ${PKGDIR}NORL = 'NORL' ]
then
  echo "${RO}ERROR:${NO} Debes setear la variable PKDGIR en el fichero /etc/make.conf"
  echo "       Su valor por defecto es /usr/portage/packages"
  echo "       Es decir, añade en tu /etc/make.conf una linea con: PKDGIR=/usr/portage/packages"
  exit 1
fi

#Si no está definida la variable PORTAGE_TMPDIR, no continuamos
if [ ${PORTAGE_TMPDIR}NORL = 'NORL' ]
then
  echo "${RO}ERROR:${NO} Debes setear la variable PORTAGE_TMPDIR en el fichero /etc/make.conf"
  echo "       Su valor por defecto es /var/tmp/portage"
  echo "       Es decir, añade en tu /etc/make.conf una linea con: PORTAGE_TMPDIR=/var/tmp/portage"
  exit 1
fi


#Por defecto, no queremos ver las listas, queremos compilar...
VER_COMPILADOS="no"
VER_NO_COMPILADOS="no"

#Capturamos las opciones de linea de comandos:
while getopts ":hspcn-" OPT; do
   case $OPT in
      h ) muestra_ayuda; exit 0;;
      s ) HACER_SYNC='no';;
      p ) HACER_PURGA='no';;
      c ) VER_COMPILADOS='si';;
      n ) VER_NO_COMPILADOS='si';;
      - ) break;;
   esac
done

for ((i=$OPTIND; i<=$#; ++i)); do
   case ${!i} in
      --help )       muestra_ayuda; exit 0;;
      --nosync )       HACER_SYNC='no';;
      --nopurge )       HACER_PURGA='no';;
      --vercompilados )    VER_COMPILADOS='si';;
      --vernocompilados )    VER_NO_COMPILADOS='si';;
      * ) OPTIND=$i; break;;
   esac
done


echo "${NE}${PROG} ${NO}v. ${RO}${VERSION}${NO}"
echo "Actualización automática de paquetes del equipo ${NE}$HOSTNAME${NO}"
echo " "

#Emerge sync y bajar los fuentes (frenando el mldonkey)
if [ ${HACER_SYNC} = 'si' ]
then
  baja_todo
fi


#Creamos la lista de los nuevos paquetes a actualizar:
echo " ${VE}*${NO} Creando lista de paquetes a actualizar (${AZ}emerge -uDp world${NO})"
emerge -uDp world | grep ebuild | cut -f 2- -d "/" | cut -f 1 -d " " > ${TMP_NUEVOS_PAKETES}

#Si queremos ver la lista de programas compilados:
if [ ${VER_COMPILADOS} = 'si' ]; then
   rm -f ${TMP_COMPILADOS}
   
   for i in ` cat ${TMP_NUEVOS_PAKETES} ` ;
   do
      if [ -f ${PKGDIR}/All/$i.tbz2 ]
      then echo "   - $i" >> ${TMP_COMPILADOS}
      fi
   done
   
   echo " "
   echo "   ${AZ}Nuevos paquetes YA COMPILADOS y listos para instalar con ${VE}emerge -uDk ${NO}:"
   echo " "
   
   if [ -f ${TMP_COMPILADOS} ]
   then cat ${TMP_COMPILADOS}
   else echo "    - No hay ningún paquete ya compilado pendiente de instalar"
   fi
fi

#Si queremos ver la lista de programas NO compilados:
if [ ${VER_NO_COMPILADOS} = 'si' ]
then
   rm -f ${TMP_NO_COMPILADOS}
   
   for i in ` cat ${TMP_NUEVOS_PAKETES} ` ;
   do
      if [ ! -f ${PKGDIR}/All/$i.tbz2 ]
      then echo "   - $i" >> ${TMP_NO_COMPILADOS}
      fi
   done
   
   echo " "
   echo "   ${AZ}Nuevos paquetes NO COMPILADOS aún:${NO}"
   echo " "
   
   if [ -f ${TMP_NO_COMPILADOS} ]
   then cat ${TMP_NO_COMPILADOS}
   else echo "    - No hay ningún paquete nuevo sin compilar"
   fi
fi

#Compilamos los paquetes que faltan por compilar, sólo si
#no hemos pedido alguna de las listas de paquetes
if [ ! ${VER_COMPILADOS} = 'si' ] && [ ! ${VER_NO_COMPILADOS} = 'si' ]; then
   compila_todo
   crea_reporte
   
   #Enviamos el reporte por email   
   if [ ${EMAIL_REPORT} = 'si' ]; then
      echo " ${VE}*${NO} Enviando reporte por email a: ${EMAIL_DIR}";
      cat ${TMP_REPORT} | mail -s "Informe de Actualizacion de portage del equipo: ${HOSTNAME}" ${EMAIL_DIR}
   fi   
   
   #Purgamos temporales de compilacion del portage:
   if [ ${HACER_PURGA} = 'si' ]; then
      purga_compilaciones   
   fi
   
   echo " ${VE}*${NO} Actualizacion completada"
   echo " "
fi

#Borramos ficheros temporales:
rm -f ${TMP_REPORT}
rm -f ${TMP_NUEVOS_PAKETES}
rm -f ${TMP_COMPILADOS}
rm -f ${TMP_NO_COMPILADOS}


El script, realiza las siguientes tareas, de forma desatendida:

- Hace un emerge sync
- Frena el MLDonkey (opcional, configurable)
- Calcula la lista de los paquetes nuevos a actualizar mediante emerge -uDp world
- Downloadea los paquetes necesarios para realizar la actualizacion, mediante un emerge -uDf world
- Acelera el MLDonkey (opcional, configurable)
- Compila uno a uno los paquetes necesarios para la actualizacion, creando paquetes, pero no instalándolos, usando un proceso de baja prioridad para no molestar el funcionamiento del servidor, mediante emerge -B
- Genera un reporte que muestra los paquetes nuevos creados y los paquetes que no han podido ser compilados (por algun fallo de compilación, por ejemplo).
- El reporte es enviado por email (opcional, configurable)

Para utilizarlo, simplemente modifica la definición de las variables del script, de tal forma que lo adecúes a tu sistema.
Las lineas de configuración son las siguientes:
Code:

#**************************************************************
#      Configuración inicial:
#******************************

#Fichero temporal para crear el informe de la actualizacion (se borrará al terminar):
TMP_REPORT='/tmp/pupdate-report'

#Fichero temporal conteniendo la lista de los paquetes nuevos a actualizar:
TMP_NUEVOS_PAKETES='/tmp/pupdate-nuevos'

#Fichero temporal para albergar la lista de paquetes ya compilados
TMP_COMPILADOS='/tmp/pupdate-c'

#Fichero temporal para albergar la lista de paquetes sin compilar
TMP_NO_COMPILADOS='/tmp/pupdate-sc'

#Hacer emerge sync y bajar fuentes de golpe al principio:
HACER_SYNC='si'

#Hacer purga final de temporales de compilacion:
HACER_PURGA='si'

#Si queremos frenar el MLDonkey antes de sincronizar el portage
#  Posibles valores: si ó no
MLDONKEY_SLOW='no'

#Si queremos que nos envie un email con un reporte de lo realizado
#  Posibles valores: si ó no
EMAIL_REPORT='si'
#Dirección de email a la que enviar el reporte
#NOTA: Debe funcionar el comando 'mail' en tu sistema (emerge mailx te ayudara)
EMAIL_DIR='root'

#Hora límite para terminar la compilacion
#Despues de esta hora, el script deja de compilar hasta la próxima ejecución
#Usar formato de 24 horas, por ejemplo, 21:30 para las nueve y media de la noche
#Si no se quiere limite, poner 99:99
HORA_LIMITE='99:99'

#Una vez configurado el script, poner CONFIGURADO='si'
CONFIGURADO='si'
#**************<Fin de la configuracion inicial>******************

Como ves, puedes configurar si quieres que se frene o no el MLDonkey antes de hacer el emerge sync y de bajar los paquetes y tambien si quieres que el script te envíe un email con el reporte generado en la operación de actualización, y claro, la dirección email a la que se enviará (por defecto, se enviará a root).

Variables de entorno del Portage
En el fichero /etc/make.conf se definen los directorios que usara el portage para su funcionamiento.
Este script necesita saber dónde residen los paquetes binarios que cree el portage y dónde irán a parar los ficheros temporales que el portage crea cuando realiza compilaciones de paquetes.
En concreto se tratan de las variables PKDGIR y PORTAGE_TMPDIR
Si no las defines en ningún lugar, el portage usa los siguientes valores por defecto:
Code:
PKDGIR=/usr/portage/packages
PORTAGE_TMPDIR=/var/tmp/portage

Yo por seguridad, prefiero no suponer nada, dado que una de las operaciones consiste en borrar todo lo que hay en uno de los directorios para realizar la purga, asi que, si no las tienes definidas en tu fichero /etc/make.conf tendrás que hacerlo para que éste script te funcione correctamente.

Saber que me falta por compilar
Ahora, podemos saber en cualquier momento qué paquetes tenemos ya compilados y listos para instalar y qué paquetes nos falta aún por compilar, mediante las opciones: pupdate --vercompilados ó pupdate --versincompilar
aunque es más prćtico usar: pupdate -sc ú pupdate -sn para evitarnos hacer el emerge sync de nuevo.

Hora límite para realizar compilaciones:
Si por ejemplo, sólo disponemos de 1 hora libre en nuestro servidor para hacer compilaciones, ahora podemos definir una hora tras la cual, el script no empezara a compilar ningún paquete más, dejándolo para la siguiente vez que se ejecute el script.

Consideraciones para los usuarios de MLDonkey:
El cambio de velocidad (o 'frenado') del MLDonkey se realiza mediante su script de inicio:
Code:
/etc/init.d/mldonkey slow

Ésta es una característica que tiene el script de inicio del MLDonkey, siempre y cuando lo hayas instalado mediante el portage, es decir, si tienes un MLDonkey instalado 'a mano' a partir de las fuentes... igual no tendrás el mismo tipo de script de arranque.
El ancho de banda que se colocará para 'slow' (lento) y 'fast' (rápido) deben definirse en el fichero: /etc/conf.d/mldonkey
En concreto, en las lineas:

Code:
# bandwidth control, values in kb/s
LOW_DOWN="8"
LOW_UP="2"
HIGH_DOWN="0"
HIGH_UP="25"


En este ejemplo, yo uso para Slow: 8KBytes de bajada o download, 2 de subida o upload y para Fast: sin limitación de bajada y 25 KBytes de subida o upload.


Consideraciones para el envio del reporte por email:

El script usa el comando mail (que yo tengo en /bin/mail) para enviar un email con el reporte de la actualización.
Para que el comando mail funcione, tienes que tener tu equipo configurado de tal forma que sea capaz de enviar emails.
Esto significa que, o bien tienes instalado y configurado un MTA (Mail Transport Agent) como puede ser qmail, postfix o sendmail, o bien, has instalado el paquete ssmtp que es un simple comando que permite enviar un email por smtp sin las complicaciones de tener que configurar monstruos como postfix y demás.
Para hacerlo funcionar, simplemente emerge el paquete ssmtp y el mailx.
Luego editas el fichero /etc/ssmtp/smtp.conf y añades la direccion del servidor de correo smtp que utices habitualmente y añades un alias para 'root' en el fichero /etc/ssmtp/revaliases
Aqui tienes un ejemplo de mi fichero /etc/ssmtp/smtp.conf en el que mi servidor de correo smtp utilizado es 'q3.nu'
Code:
#
# /etc/ssmtp.conf -- a config file for sSMTP sendmail.
#

# The person who gets all mail for userids < 1000
root=postmaster

# The place where the mail goes. The actual machine name is required
# no MX records are consulted. Commonly mailhosts are named mail.domain.com
# The example will fit if you are in domain.com and your mailhub is so named.
mailhub=q3.nu

# Example for SMTP port number 2525
# mailhub=mail.your.domain:2525
# Example for SMTP port number 25 (Standard/RFC)
mailhub=q3.nu       
# Example for SSL encrypted connection
# mailhub=mail.your.domain:465

# Where will the mail seem to come from?
rewriteDomain=

# The full hostname
hostname=q3.nu

# Set this to never rewrite the "From:" line (unless not given) and to
# use that address in the "from line" of the envelope.
#FromLineOverride=YES

# Use SSL/TLS to send secure messages to server.
#UseTLS=YES

# Use SSL/TLS certificate to authenticate against smtp host.
#UseTLSCert=YES

# Use this RSA certificate.
#TLSCert=/etc/ssl/certs/ssmtp.pem



en este caso, no necesito autentificarme a la hora de enviar el email, si vosotros necesitaseis hacerlo... pues os toca pelearos con el man ssmtp y su configuración.

El script está pensado para ser llamado desde una tarea cron, (por eso genera un reporte y lo envia por email, aunque puede ser ejecutado a mano tranquilamente), asi que os toca añadir dicha tarea en el /etc/crontab
Yo utilizo el vixie-cron, y la linea que define mi tarea del cron es la siguiente (todo mascadito os lo doy :) ):
Code:
# Actualizar Portage
0 3 * * *   root   /usr/todo/bin/portageupdate 2>&1 > /dev/null

Es decir, salta todos los dias a las 3 de la mañana.
El
Code:
2>&1 > /dev/null
del final es para que el cron no nos envie un email con la salida del script, dado que el propio script genera un reporte más cómodo de ver por email.
Los usuarios de Kde tambien pueden usar el KCron para definir esta tarea periódica.

Cada día, recibireis un email conteniendo un reporte con el resultado de la actualización.
Este es un ejemplo de uno de estos informes:

Code:
     _______________________________________________________
          Reporte de actualización del equipo: gentil
     _______________________________________________________
 
 * Nuevos paquetes YA COMPILADOS y listos para instalar con emerge -uDk :
 
  - swig-1.3.21
  - lablgtk-1.2.7
  - readline-5.0-r1
  - a52dec-0.7.4-r2
  - giflib-4.1.3
  - libogg-1.1.2
  - libungif-4.1.3
  - libsdl-1.2.7-r3
  - gnu-gs-fonts-std-8.11
  - ghostscript-7.07.1-r6
  - dietlibc-0.27
  - flac-1.1.1
  - c-client-2004a
  - mozilla-launcher-1.21
  - sharutils-4.2.1-r10
  - xpdf-3.00-r2
  - netkit-telnetd-0.17-r4
  - unrar-3.4.3
  - Archive-Zip-1.12
  - MIME-tools-5.413
 
 * Nuevos paquetes que NO HAN SIDO COMPILADOS. (Se recomienda compilación manual) :
 
  - mldonkey-2.5.16-r8
  - xmltv-0.5.35


En este ejemplo, hay dos paquetes que no han podido ser compilados, y que me tocará tratar 'manualmente'.
El resto de paquetes, con hacer un emerge -uDk world serán instalados en el sistema peeeero SIN TENER QUE ESPERAR A QUE COMPILEN, dado que ya han sido compilados.

Ah!, se me olvidaba... para los muy novatos, para hacer funcionar este script, no teneis mas que copiar el texto del script de este mensaje, grabarlo en un fichero, por ejemplo /bin/pupdate y luego, hacerlo ejecutable, por ejemplo, con la orden:
Code:
chmod 700 /bin/pupdate


Espero que lo disfruteis ;)
_________________
Radikal Trucomania


Last edited by RadikalQ3 on Mon Feb 07, 2005 7:30 am; edited 4 times in total
Back to top
View user's profile Send private message
focahclero
Guru
Guru


Joined: 02 Jan 2004
Posts: 554

PostPosted: Sat Oct 02, 2004 2:18 pm    Post subject: Reply with quote

Muy interesante, gracias :)
_________________
focahclero
Registered Linux User #352648. Get Counted! http://counter.li.org
[TEMA] Descripción problema (estado)
Back to top
View user's profile Send private message
RadikalQ3
Apprentice
Apprentice


Joined: 26 Oct 2003
Posts: 172
Location: Planeta Tierra

PostPosted: Sat Oct 02, 2004 5:36 pm    Post subject: Reply with quote

De nada ;)
_________________
Radikal Trucomania
Back to top
View user's profile Send private message
lunatc
Guru
Guru


Joined: 18 Apr 2002
Posts: 409
Location: Canary Islands. Spain

PostPosted: Sat Oct 02, 2004 6:35 pm    Post subject: Reply with quote

Hablando en plata: cojonudo!! :D
Back to top
View user's profile Send private message
MaROtO
Tux's lil' helper
Tux's lil' helper


Joined: 12 May 2004
Posts: 135
Location: /dev/Bilbao

PostPosted: Mon Oct 04, 2004 2:53 pm    Post subject: Reply with quote

Muy interesante!
Ademas de servirme para conocer cut (ni idea de que existiese :roll: ), y de conocer algo mas del portage-emerge: hora ya se como usar los paquetes precompilados!
_________________
http://counter.li.org/cgi-bin/certificate.cgi/278383
2.6.9-gentoo-r4 :: xfree-4.3.0-r5 :( :: fluxbox-0.9.8-r1
Back to top
View user's profile Send private message
alexlm78
Veteran
Veteran


Joined: 08 Dec 2003
Posts: 1265
Location: Guatemala,Guatemala

PostPosted: Tue Oct 05, 2004 11:15 pm    Post subject: Reply with quote

Por demas interesante, lo pondremos en practica.

gracias por el dato.
_________________
"This is a different kind of world, you need a different kind of software"

Linux User# 315201
www.alexlm78.org
www.dcforfans.org
100% Chapin hecho en Guatemala
Back to top
View user's profile Send private message
N0V4K
Tux's lil' helper
Tux's lil' helper


Joined: 23 Jul 2004
Posts: 86
Location: .es

PostPosted: Wed Oct 06, 2004 11:39 am    Post subject: Reply with quote

RadikalQ3 muy muy bueno :D me a gusto bastante
_________________
_______________oOo-(0-0)-oOo___________________
AMD Athlon XP 1800+@1533Mhz|512 Mb DDR|
SB Audigy 2 | Nvidia Geforce4 MX 420 |
Kernel 2.6.8.1-nitro6
_______________OoO-(o-0)-OoO__________________
Back to top
View user's profile Send private message
RadikalQ3
Apprentice
Apprentice


Joined: 26 Oct 2003
Posts: 172
Location: Planeta Tierra

PostPosted: Wed Oct 06, 2004 12:12 pm    Post subject: Reply with quote

Que lo disfruteis! :)

Estoy con la nueva versión... no me gusta que cuando no haya paquetes salga en el reporte el encabezado.
Y a ver si le pongo colorines, como el emerge :)
Por cierto... con una versión adaptada de este script se puede hacer cómodamente un emerge -ek world ... :)
_________________
Radikal Trucomania
Back to top
View user's profile Send private message
djemili
n00b
n00b


Joined: 15 Jan 2005
Posts: 3

PostPosted: Sat Jan 15, 2005 9:32 pm    Post subject: Reply with quote

Hola

he tenido la suerte de encontrar este post ya que era un script asi justo lo que estaba buscando. Aunque me gustaria hacer algun cambio y no se del todo como hacerlo ya que los scripts en sh no se me dan muy bien.

El caso es que tengo un servidor web y se trata de un ordenador algo viejo (un pentium 1) y al tener bastantes visitas se me satura tanto la conexion como el servidor en el momento que quiero hacer un emerge. Se agrava el caso al haber estado fuera un buen tiempo. Al volver, me di cuenta que hacer una actualizacion significaba tener el servidor saturado durante, posiblemente, algunos dias y se me han ido acumulando las actualizaciones de mala manera.

Por todo eso, me gustaria modificar el script de manera que solo se bajara o compilara actualizaciones entre las 2 am y las 9 am que son las horas en que la web tiene menos visitas. Que el cron active el script a las 2 no creo que me suponga muchos dolores de cabeza pero no se como hacer que el script pare a las 9.

He pensado en cambiar el bucle for en el que se compilan los paquetes
Code:
for i in ` cat $TMP_NUEVOS_PAKETES ` ;

por un while que se pare si se cumple alguna de las 2 condiciones, es decir, si la variable i alcanza el num de paquetes o si son mas de las 9am. Como podria hacer ese while??
_________________
Todo Moviles: mandar sms gratis por Internet y liberar moviles por IMEI. djemili
Back to top
View user's profile Send private message
ackward
Apprentice
Apprentice


Joined: 06 Sep 2002
Posts: 192

PostPosted: Sun Jan 16, 2005 12:12 am    Post subject: Reply with quote

Como mejora para que fuera la caña, que compilase los paquetes en otras arquitecturas.

Por ejemplo, tengo un amd64 que se ventila las compilaciones de ebuilds mas rapido que lo que tarda en bajarse un paquete y al lado tengo un athlon a 700 Mhz que cada vez que le tocaba compilar las X tardaba 4h y el record lo tiene con OO que se tiro 18. Lo ideal seria compilar los paquetes en el equipo rapido e instalarlos en el lento. (De hecho esta con debian porque no aguanto no poder actualizarlo diariamente)
Back to top
View user's profile Send private message
Büldden
Tux's lil' helper
Tux's lil' helper


Joined: 13 Jan 2005
Posts: 97
Location: #gentoo-es

PostPosted: Sun Jan 16, 2005 11:33 am    Post subject: Reply with quote

Hola, gracias por el script

La verdad es que estoy muy muy interesado en usar este script, pero tengo una serie de dudas/problemillas, los planteo:

1- Dices que esta hecho para ejecutarse con cron, en mi caso esto no mi interesa, pq me gustaria ejecutarlo manualmente cuando a mi me interese, por lo que supongo q tambien se prodra ejecutar manualmente, si no es asi, avisad.


2- Ya que no consigo informacion sobre como usar SMTP con autentificacion y SSL, pues me gustaria si alguien sabe me lo dijese, en este caso seria para usar el smtp de gmail, o en su defecto algun smtp "publico" q no necesite autentificacion y que los mails lleguen, claro.

3- Lo ultimo seria, si hecho a andar el script y por cualquier motivo tengo que pararlo a medio de la compilacion, por ejemplo, tiene q compilar 15 paquetes, y cuando va por el 10 tengo q pararlo forzozamente, ¿que debo hacer?, ¿en que estado quedaria?, ¿que tendria que hacer luego? y por ultimo, ¿igualmente tendria el informe?


Estas son mis dudas, espero que me puedan ayudar, gracias. :wink:
Back to top
View user's profile Send private message
RadikalQ3
Apprentice
Apprentice


Joined: 26 Oct 2003
Posts: 172
Location: Planeta Tierra

PostPosted: Sun Jan 16, 2005 3:12 pm    Post subject: Reply with quote

Büldden wrote:

1- me gustaria ejecutarlo manualmente cuando a mi me interese, por lo que supongo q tambien se prodra ejecutar manualmente, si no es asi, avisad.

Si, sin problemas.
Yo lo uso con cron porque lo ejecuto en servidores, cuando tienen poca carga.
La ventaja es que cuando quiero actualizarlos, los paquetes (la gran mayoria) ya están compilados, y así no resulta una operación tan tediosa.
Büldden wrote:

3- Lo ultimo seria, si hecho a andar el script y por cualquier motivo tengo que pararlo a medio de la compilacion, por ejemplo, tiene q compilar 15 paquetes, y cuando va por el 10 tengo q pararlo forzozamente, ¿que debo hacer?

No hay ningun problema en parar el script y luego retomarlo.
Bueno, solo hay un problema, y es el siguiente: si el script intenta compilar un paquete, y éste falla en su compilacion por cualquier causa, al parar el script y volverlo a ejecutar, volvera a intentar compilar el paquete de nuevo, es decir, hara dos veces el mismo trabajo.
Quitando este comportamiento molesto, el script lo puedes ejecutar cuantas veces quieras, y el informe final será fiel... es decir, te mostrara tanto los paquetes que se han compilado correctamente como los que no, dando igual si lo has parado o no.
_________________
Radikal Trucomania
Back to top
View user's profile Send private message
Büldden
Tux's lil' helper
Tux's lil' helper


Joined: 13 Jan 2005
Posts: 97
Location: #gentoo-es

PostPosted: Mon Jan 17, 2005 1:10 am    Post subject: Reply with quote

he probado el script, habiendo modificado unas cosas en el, las cosas q modifique fueron las siguientes:

- Desactive la opcion sobre el mldonkey, lo demas de la configuracion lo deje tal cual.

- cambié, cuando descarga los paquetes, quedando el comando asi:
Code:
#Hacemos Download de los paquetes necesarios:
echo " * Descargando los paquetes necesarios ( emerge -uDf world)"
emerge -uDf --newuse world


- Luego tambien cambio esto: añadiendo tb el --newuse
Code:
#Creamos la lista de los nuevos paquetes a actualizar:
echo " * Creando lista de paquetes a actualizar (emerge -uDp world)"
emerge -uDp --newuse world | grep ebuild | cut -f 2- -d "/" | cut -f 1 -d " " > $TMP_NUEVOS_PAKETES



- Tambien quitando la opcion para q compile "en segundo plano" quedaria asi:
Code:
        then echo "   Compilando: $i"; /usr/bin/emerge -B =$i



- Y por ultimo, cambiando las opciones del mail, ya que uso gmail como smtp y necesita SSL y autentificacion:
Code:
then echo " * Enviando reporte por email a: $EMAIL_DIR"; cat $TMP_REPORT | ssmtp -auUSUARIO@gmail.com -apPASSWD DESTINO@gmail.com


en este caso, el usuario y el destino no son los mismo, (esto debiera de funcionar, lo probe a usar por linea de comando y si no mandaba sino un echo "algo" me enviaba el mail vacio, pero si lo hacia con cat (un archivo) lo enviaba bien, bueno lo probe con el archivo de este script y me lo envio bien.

Ahora, los problemas q tengo tras esjetucar el script (como root) son,

1- Compila todo lo que puede, en este caso de cuarenta y pico paquetes creo q no compilo sino dos, pero en el informe final, salen todos como no compilados.

2- El informe final se me envia vacio a la cuenta de mail.

Creo q no me da mas problemas, aun asi, informare si veo algo mas.
Espero q me puedan ayudar, pq realmente esto me quita la preocupacion de estar pendiente a las compilaciones y demas.

Gracias
Back to top
View user's profile Send private message
Ark del KAOS
Guru
Guru


Joined: 13 Jan 2005
Posts: 333
Location: Madrid, Spain

PostPosted: Tue Jan 18, 2005 12:26 am    Post subject: Reply with quote

Bueno...este script me encanta. Gracias!!!
Pero estoy peleado con el ssmtp.
A ver...me gustaria que me enviase un mail a mi cuenta ark@ellkaos.net...y que utilizase el smtp de ya.com para los dominios, smtp.domadsl.ya.com
¿Que deberia hacer?
Realmente no se por donde pillarlo...ultimamente no doy pie con bola.
Pongo mi configuracion del smtp:
#
# /etc/ssmtp.conf -- a config file for sSMTP sendmail.
#

# The person who gets all mail for userids < 1000
root=postmaster

# The place where the mail goes. The actual machine name is required
# no MX records are consulted. Commonly mailhosts are named mail.domain.com
# The example will fit if you are in domain.com and your mailhub is so named.

# Example for SMTP port number 2525
# mailhub=mail.your.domain:2525
# Example for SMTP port number 25 (Standard/RFC)
mailhub=smtp.domadsl.ya.com
# Example for SSL encrypted connection
# mailhub=mail.your.domain:465

# Where will the mail seem to come from?
rewriteDomain=shin.elkaos.net

# The full hostname

# Gentoo bug #47562
# Commenting the following line will force ssmtp to figure
# out the hostname itself.

# hostname= _HOSTNAME_

# Set this to never rewrite the "From:" line (unless not given) and to
# use that address in the "from line" of the envelope.
#FromLineOverride=YES

# Use SSL/TLS to send secure messages to server.
UseTLS=YES

# Use SSL/TLS certificate to authenticate against smtp host.
#UseTLSCert=YES

# Use this RSA certificate.
#TLSCert=/etc/ssl/certs/ssmtp.pem

Como veis he cambiado poco, ya que en realidad no sabia lo que estaba haciendo... :oops:
Back to top
View user's profile Send private message
djemili
n00b
n00b


Joined: 15 Jan 2005
Posts: 3

PostPosted: Tue Jan 18, 2005 11:59 am    Post subject: Reply with quote

nadie sabe decirme lo del while hora < 9am ??

quiza se puede hacer mas facil con un IF dentro del bucle que salga del bucle si ya es mas tarde de las 9am.

Si alguien sabe hacer esto en codigo sh me haria un favor:
Si hora_actual > 9:00 entonces Salir del bucle for

saludos!!
_________________
Todo Moviles: mandar sms gratis por Internet y liberar moviles por IMEI. djemili
Back to top
View user's profile Send private message
Debcore
n00b
n00b


Joined: 20 Dec 2004
Posts: 8

PostPosted: Tue Jan 18, 2005 12:40 pm    Post subject: Reply with quote

Quote:
Si alguien sabe hacer esto en codigo sh me haria un favor:
Si hora_actual > 9:00 entonces Salir del bucle for

Te refieres a algo asi?

Code:
if [ $(date +"%H") -ge 9 ]
then
         break
fi

_________________
Back to top
View user's profile Send private message
RadikalQ3
Apprentice
Apprentice


Joined: 26 Oct 2003
Posts: 172
Location: Planeta Tierra

PostPosted: Tue Jan 18, 2005 2:04 pm    Post subject: Nueva Version (2.0) Reply with quote

Acabo de editar el post inicial.
He incorporado el limite horario y lo del -newuse al script.
_________________
Radikal Trucomania
Back to top
View user's profile Send private message
Büldden
Tux's lil' helper
Tux's lil' helper


Joined: 13 Jan 2005
Posts: 97
Location: #gentoo-es

PostPosted: Thu Jan 20, 2005 9:57 am    Post subject: Reply with quote

Nose si habeis entendido cual es mi principal problema (tampoco es muy muy importante) pero le quita utilidad al script, aqui os dejo el reporte que muestra en consola despues de una actualizacion:


Code:
 * Creando reporte


        ------------------------------------------------------------
               Reporte de actualización del equipo: gentoo
        ------------------------------------------------------------

 * Nuevos paquetes YA COMPILADOS y listos para instalar con emerge -uDk :



 * Nuevos paqutes que NO HAN SIDO COMPILADOS. (Se recomienda compilación manual) :

    - gentoo-dev-sources-2.6.10-r6
    - cups-1.1.23-r1
    - nvidia-kernel-1.0.6629-r1
    - nvidia-glx-1.0.6629-r1
    - imagemagick-6.1.8.8
    - koffice-1.3.5-r2
    - openmotif-2.1.30-r6
    - xpdf-3.00-r8
    - kdegraphics-3.3.2-r2
 * Enviando reporte por mail a: root

 * Actualizacion completada



Ese es el resulatado de mi ultima actualizacion, aun cuando realmente los ha compilado todos exitosamente, y no hablemos del mail, porque ese lo envia completamente vacio.

Pues me gustaria que alguien me hechase una mano, pq yo no entiendo mucho de scripts
Back to top
View user's profile Send private message
RadikalQ3
Apprentice
Apprentice


Joined: 26 Oct 2003
Posts: 172
Location: Planeta Tierra

PostPosted: Thu Jan 20, 2005 11:00 am    Post subject: Reply with quote

El problema de que no envie el email, es producido porque estas usando equivocadamente el ssmtp.
El ssmtp, si lo quieres usar desde una linea de script, has de enviarle todas las cabeceras de un email bien conformadas, es decir, casi que has de reproducir el diálogo que hay que hacer cuando uno habla con un servidor smtp.
Para evitar esto, se usa el programilla mail.
El problema es que al parecer, si necesitas autentificarte en el servidor smtp que utilices, el ssmtp no admite pasarle un login y una password de usuario desde su fichero de configuracion, parece que solo lo admite como parámetros desde la linea de comandos.

Para enviar un email a traves de un server smtp con autentificacion, hay otros métodos, por ejemplo, instalarte el mailwrap, que te permite configurar el comando para enviar el email, y ahí mismo, en su fichero de configuración, poner como comando de envio el ssmtp con sus parámetros para que envie el login y el password.

La pega de este metodo es que tu clave quedaria ahí, visible, sin encriptar...
Tienes una explicación de este método en este mensaje

Respecto a lo que de que te informe mal de los paquetes compilados o no... solo te recomiendo que revises tu make.conf, a ver donde defines que tienen que ir los paquetes compilados y, que uses el codigo del script sin modificar... o bien cojas la copia original y cambies solo lo del envio del email, por si hubieras cambiado algo que no tocaba...

El script sabe si el paquete ha sido o no compilado porque busca el paquete en el directorio de paquetes del portage, que es definido en el make.conf con la variable PKGDIR.

Y por ultimo... la cosa esta de incluir el --newuse al final no tiene mucha utilidad en el script, ya que... imaginate que tienes ya creado un paquete del programa, cambias los uses, el script detecta que hay que compilarlo (porque le hemos dicho --newuse) pero a la hora de ver si esta o no ya creado ese paquete, al estarlo previamente no lo compilara de nuevo.

Es decir, el rollo del --newuse sirve si vacias el directorio de paquetes de tu portage, sino no sirve de nada, y a mi no me gusta borrar el directorio de paquetes, ya que uno de mis servers puede completar una compilacion con muchos cambios en varias ejecuciones del script... o bien puedo pararlo si me molesta y continuar en otro momento o... y si borro esos paquetes, me tocara compilar todo de nuevo.
_________________
Radikal Trucomania
Back to top
View user's profile Send private message
RadikalQ3
Apprentice
Apprentice


Joined: 26 Oct 2003
Posts: 172
Location: Planeta Tierra

PostPosted: Thu Jan 20, 2005 11:05 am    Post subject: Reply with quote

Acabo de encontrar otra solución para el temilla, que es renombrar el ssmtp, y substituirlo por un script en el que llames al ssmtp renombrado y ahí mismo le pases los parámetros de login y clave.
Lo tienes en este otro mensaje:
ssmtp: login to send mail
_________________
Radikal Trucomania
Back to top
View user's profile Send private message
chencho
n00b
n00b


Joined: 20 Nov 2004
Posts: 24

PostPosted: Thu Jan 20, 2005 12:21 pm    Post subject: Reply with quote

mano de santo el mailwrap, gracias
Back to top
View user's profile Send private message
Büldden
Tux's lil' helper
Tux's lil' helper


Joined: 13 Jan 2005
Posts: 97
Location: #gentoo-es

PostPosted: Fri Jan 21, 2005 5:23 pm    Post subject: Reply with quote

Pues lo de que el reporte saliera mal, era solo poner en el make.conf el PKGDIR, gracias.

Pero aun usando el mailwrao no consigo q lo envie por mail como es debido, checho si es posible me gustaria q postearas todos los pasos que seguistes, pq yo segui lo que habia en ingles y nada de nada.

gracias
Back to top
View user's profile Send private message
chencho
n00b
n00b


Joined: 20 Nov 2004
Posts: 24

PostPosted: Fri Jan 21, 2005 7:40 pm    Post subject: Reply with quote

pues creo que lo que hice fue emerger mailx ssmtp y mailwrap


/etc/ssmtp/ssmtp.conf:

root=postmaster
mailhub=smtp.gmail.com:465
hostname=el_nombre_asignado_a_tu_ip(vease p.ej no-ip.com)
UseTLS=YES


/etc/mail/mailer.conf:

sendmail /usr/sbin/ssmtp -au login -ap pass
send-mail /usr/sbin/ssmtp -au login -ap pass
mailq /usr/sbin/ssmtp -au login -ap pass
newaliases /usr/sbin/ssmtp -au login -ap pass

no se si se me olvida algo, prueba cuando termines:$ mail direccion@recibir.mail

PD:man mail
Back to top
View user's profile Send private message
Büldden
Tux's lil' helper
Tux's lil' helper


Joined: 13 Jan 2005
Posts: 97
Location: #gentoo-es

PostPosted: Fri Jan 21, 2005 9:02 pm    Post subject: Reply with quote

Gracias, ya me funciona. :wink:
Back to top
View user's profile Send private message
RadikalQ3
Apprentice
Apprentice


Joined: 26 Oct 2003
Posts: 172
Location: Planeta Tierra

PostPosted: Sun Jan 30, 2005 4:38 pm    Post subject: Reply with quote

He editado el post inicial, para colocar una nueva versión.

Actualización del 30/01/2005 (Version 3.0)

  • Eliminado el uso de -newuse (mejor lo haces a mano...)
  • Añadido colorines a la salida del programa
  • Añadidas opciones para saber los programas compilados y sin compilar
  • Añadida opcion para que no realice el emerge sync
  • Añadida ayuda mediante la opcion -h
  • Añadida purga del directorio temporal de compilaciones del portage (sino se llena de ficheros gigas y gigas)


En definitiva: cambios estéticos y unas cuantas nuevas opciones para saber en cualquier momento que paquetes están compilados ya y listos para instalar y que paquetes aún no han sido compilados y convertidos en binarios.
Ah, y tambien he eliminado el uso del flag --newuse para que compile los paquetes afectados por un cambio en los flags USE
El asunto es que si un paquete ya fué creado con este script, por mucho que usemos el --newuse el script pensará que ya lo ha compilado (dado que el paquete está en el fichero de paquetes compilados del portage), así que no tenia mucho sentido usar dicho flag en este script, a no ser que borres el directorio de paquetes para que los re-compile de nuevo.
_________________
Radikal Trucomania
Back to top
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index Spanish All times are GMT
Goto page 1, 2  Next
Page 1 of 2

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum