View previous topic :: View next topic |
Author |
Message |
Büldden Tux's lil' helper
Joined: 13 Jan 2005 Posts: 97 Location: #gentoo-es
|
Posted: Sun Feb 06, 2005 4:02 pm Post subject: |
|
|
RadikalQ3, tu script promete, y cada vez más, ¿no has pensado en dedicarle una web donde poder seguir los avances de este?, solo es una idea... |
|
Back to top |
|
|
RadikalQ3 Apprentice
Joined: 26 Oct 2003 Posts: 172 Location: Planeta Tierra
|
Posted: Sun Feb 06, 2005 4:08 pm Post subject: |
|
|
¿Y que tiene de malo ésta? (salvo lo horrible que se vuelve la edicion de un post largo, y mas con el bbcode que falla en Mozilla...aunque ya he buscado una solucion para el problema... hasta que no recompilen la version CVS de estos foros no estará disponible...
Editado:
Está ya funcionando mi modificación de los foros _________________ Radikal Trucomania
Last edited by RadikalQ3 on Fri Jun 17, 2005 8:59 am; edited 1 time in total |
|
Back to top |
|
|
Büldden Tux's lil' helper
Joined: 13 Jan 2005 Posts: 97 Location: #gentoo-es
|
Posted: Sun Feb 06, 2005 4:25 pm Post subject: |
|
|
bueno solo era una idea, donde podrias tener una seccion en la posteases tus noticias, descargas del script en ficheros de diferentes versiones .... no se, he visto web de proyectos menos "utiles" que tu script, como dije antes, solo era una idea, si a ti te gusta llevarlo por el foro, adelante tampoco es mala idea y lo tienes en la web oficial de gentoo |
|
Back to top |
|
|
tomasecastro n00b
Joined: 12 Jun 2005 Posts: 4
|
Posted: Sun Jun 12, 2005 1:49 am Post subject: error al ejecutar el Script |
|
|
Hola RadikalQ3, tengo un error al ejecutar tu script me dice que la sintaxis es invalida en la ultima linea del script, por favor si puedes verificalo, parece que necesitara un final de archivo o algo parecido, Gracias |
|
Back to top |
|
|
RadikalQ3 Apprentice
Joined: 26 Oct 2003 Posts: 172 Location: Planeta Tierra
|
Posted: Mon Jun 13, 2005 9:10 am Post subject: |
|
|
A ver... la última línea es:
Code: |
rm -f ${TMP_NO_COMPILADOS} |
Sólo es una linea para borrar un fichero temporal (la lista de los paquetes que no han sido compilados).
A mi no me da ningún error... no sé que decirte... ¿lo has grabado bien? _________________ Radikal Trucomania |
|
Back to top |
|
|
jhigueros n00b
Joined: 21 Dec 2004 Posts: 34 Location: Guatemala
|
Posted: Sun Jun 19, 2005 8:00 pm Post subject: |
|
|
Gracias por el How to buenisimo _________________ La Libertad Comienza desde Nosotros Mismos
Jorge Higueros
GNU/Linux user #369545
Integration GNU/Linux
www.softwarelibreguatemala.org
Guatemala C.A. |
|
Back to top |
|
|
tomasecastro n00b
Joined: 12 Jun 2005 Posts: 4
|
Posted: Fri Jul 29, 2005 12:34 pm Post subject: El mensaje de error que me da es /pupdate: line 406: syntax |
|
|
No se trabajar muy bien con los script, pero copie textualmente el script en un archivo llamado /bin/pupdate, pero me sigue generenado problemas. |
|
Back to top |
|
|
RadikalQ3 Apprentice
Joined: 26 Oct 2003 Posts: 172 Location: Planeta Tierra
|
Posted: Fri Jul 29, 2005 12:37 pm Post subject: |
|
|
¿Que problemas?
Si te sirve de consuelo, ese script es ejecutado en 6 servidores que administro y nunca me ha dado el mas mínimo problema. _________________ Radikal Trucomania |
|
Back to top |
|
|
capira Tux's lil' helper
Joined: 02 May 2005 Posts: 147 Location: Spain
|
Posted: Sat Oct 14, 2006 8:48 am Post subject: |
|
|
Hola RadikalQ3.
Llevo usando tu script un tiempo y tengo que decir que es muy bueno y que me ha salvado de muchas horas de trabajo. Aprovecho el momento para darte la gracias.
Por necesidades del trabajo, le he hecho algunas modificaciones que paso a comentarte por si quieres inclurlo en tu script y en el hilo.- Posibilidad de hacer 'emerge-webrsync' en lugar de 'emerge --sync'. Donde trabajo sólo está abierto el puerto 80 y sólo podía hacer webrsync
Code: | ...
#Hacer emerge-webrsync y bajar fuentes de golpe al principio
HACER_RSYNC='si'
...
#Actualizamos arbol del portage:
echo " ${VE}*${NO} Sinconizando portage (${AZ}emerge --sync${NO})"
if [ ${HACER_RSYNC} = 'no' ]
then emerge --sync
else emerge-webrsync
fi
... |
- He ampliado el nombre del paquete para incluir la categoría. Algunos paquetes son ambiguos porque tienen el mismo nombre que otro perteneciente a una categoría diferente (como últimamente están cambiando los USE_FLAGS en algunos paquetes, he incluido la opción '-N' pero puedes eliminarla)
Code: | ...
#emerge -uDp world | grep ebuild | cut -f 2- -d "/" | cut -f 1 -d " " > ${TMP_NUEVOS_PAKETES}
emerge -NuDp world > ${TMP_EMERGE}
cat ${TMP_EMERGE} | grep ebuild | cut -f 2- -d "]" | cut -f 2 -d " " > ${TMP_NUEVOS_PAKETES}
... |
- Al cambiar el punto anterior, he cambiado también la forma de comprobar los paquetes compilados. Este cambio lo he hecho en diferentes partes del código porque se repite
Code: | ...
# if [ ! -f ${PKGDIR}/All/$i.tbz2 ]
if [ ! -f ${PKGDIR}/$i.tbz2 ]
... |
- He ampliado la descripción de los paquetes NO compilados, incluyendo que paquetes son necesarios que estén instalados para que estos se compilen
Code: | ...
echo " - $i" >> ${TMP_NO_COMPILADOS}
PARTE_DCHA=` echo $i | cut -f 2 -d "/" `
for j in ` emerge -vp =$i | grep ebuild | cut -f 2- -d "]" | cut -f 2 -d " " | grep -v "${PARTE_DCHA}" `
do
if [ -f ${PKGDIR}/$j.tbz2 ]
then echo " depende de: [*] $j" >> ${TMP_NO_COMPILADOS}
else echo " depende de: [ ] $j" >> ${TMP_NO_COMPILADOS}
fi
done
... | Lo siguiente que quiero incluir en el script sería poder detectar cuando hay otros conflictos: paquetes MASKED y paquetes BLOCKED, de manera que se pueda avisar. Ahora mismo da un error y envia un reporte vacío.
Saludos. _________________ http://www.nosoftwarepatents.com/ |
|
Back to top |
|
|
ekz l33t
Joined: 21 Jun 2006 Posts: 994 Location: Temuco - Chile
|
Posted: Sat Oct 14, 2006 12:30 pm Post subject: |
|
|
Capira, tambien puedes probar emerge-delta-webrsync, que solo añade los cambios realizados por dia al arbol de portage bajando un pequeño fichero. _________________ Mi tumblelog |
|
Back to top |
|
|
capira Tux's lil' helper
Joined: 02 May 2005 Posts: 147 Location: Spain
|
Posted: Thu Dec 07, 2006 8:02 am Post subject: |
|
|
Hola a todos.
He revisado el script he intentado mejorarlo de distintas maneras (algunas ya las publiqué en este mismo hilo). Me he puesto en contacto con RadikalQ3 y me ha comentado que él ya no esta involucrado en Gentoo ( ) y que podía cambiar el script a mi criterio.
Ahora mismo estoy usando una versión del script mejorada que os pongo a continuación. He respetado el trabajo anterior en la medida de lo posible y he comentado algunas líneas que ahora mismo no se utilizan.
Code: | #! /bin/sh
# ----------------------------------------------------------------------------
# pupdate
# Script para actualizar el portage mediante un evento desatendido
# Se trata de realizar el quivalente a:
# emerge sync ; emerge -NvuDp 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.3-r1 alfa 04/12/2006 capira
# - Mejora del algoritmo para la gestión de los paquetes que hay
# que reconstruir
#
# Version 3.3 alfa 25/11/2006 capira
# - Detección de paquetes que hay que reconstruir pero que fallan
# porque ya hay un paquete binario contruido previamente
#
# Version 3.2 alfa 19/10/2006 capira
# - Añadido detección de bloqueos (pendiente de probar y mejorar)
#
# Version 3.1 alfa 11/10/2006 capira
# - Añadido una variable, HACER_RSYNC, para hacer 'emerge --sync' o
# 'emerge-webrsync'
# - Modificada la llamada para obtener la lista de paquetes a compilar,
# añadiendo la opcion 'N' (comprobación de USE_FLAGS nuevas)
# - Ampliado el nombre del paquete: <categoría>/<paquete>-<version>
#
# 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 conteniendo la lista de los paquetes recompilados:
TMP_NUEVOS_REBUILD='/tmp/pupdate-rebuild'
#Fichero temporal para albergar la lista de paquetes ya compilados
TMP_COMPILADOS='/tmp/pupdate-c'
#Fichero temporal para albergar la lista de paquetes ya compilados
TMP_EMERGE='/tmp/pupdate-emerge'
#Fichero temporal para albergar la lista de paquetes sin compilar
TMP_NO_COMPILADOS='/tmp/pupdate-sc'
#Fichero para no borrar paquetes que van a ser recompilados, pero
#que ya han sido recompilados previamente
PUPDATE_REBUILD='/var/log/pupdate/emerge_rebuild'
#Hacer emerge sync y bajar fuentes de golpe al principio:
HACER_SYNC='si'
#Hacer emerge-webrsync y bajar fuentes de golpe al principio
HACER_RSYNC='no'
#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=''
#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.3-r1 alfa"
#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})"
if [ ${HACER_RSYNC} = 'no' ]
then emerge --sync
else emerge-webrsync
fi
#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 purga_rebuild {
echo " ${VE}*${NO} Limpiando todos los paquetes que hay que recompilar:"
touch ${PUPDATE_REBUILD}
for i in ` cat ${TMP_EMERGE} | grep ' R ' | cut -f 2- -d "]" | cut -f 2 -d " " ` ;
do
# TMP_I=` grep $i ${TMP_EMERGE} `
if [ ` grep ${TMP_EMERGE} ${PUPDATE_REBUILD} | wc -l ` = '0' ]
then
if [ -f ${PKGDIR}/$i.tbz2 ]
# then echo "Limpiando el paquete ${TMP_I}"
then
echo " - Borramos el paquete ${AZ}${PKGDIR}/$i.tbz2${NO}"
rm -f ${PKGDIR}/$i.tbz2
rm -f ${PKGDIR}/All/$i.tbz2
fi
fi
done
}
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 ]
if [ ! -f ${PKGDIR}/$i.tbz2 ]
then
if [ $(date +"%H:%M") \< $HORA_LIMITE ]
then
echo " Compilando: $i"
/usr/bin/nice -n +19 /usr/bin/emerge -B =$i
TMP_I=` grep $i ${TMP_EMERGE} `
if [ ` echo ${TMP_I} | grep ' R ' | wc -l ` = 1 ]
then
echo $i >> ${TMP_NUEVOS_REBUILD}
echo ${TMP_I} >> ${PUPDATE_REBUILD}
fi
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}
if [ ! ${TMP_BLOCKED} = '0' ]
then
echo " " >> ${TMP_REPORT}
echo " * ATENCION: Hay paquetes que se bloquean entre sí" >> ${TMP_REPORT}
echo " - ${TMP_BLOCKED_1}" >> ${TMP_REPORT}
echo " - ${TMP_BLOCKED_2}" >> ${TMP_REPORT}
fi
if [ -f ${TMP_NUEVOS_REBUILD} ]
then
echo " " >> ${TMP_REPORT}
echo " * Paquetes ya instalados pero que han sido recompilados (emerge -Dk) :" >> ${TMP_REPORT}
echo " " >> ${TMP_REPORT}
for i in ` cat ${TMP_NUEVOS_REBUILD} ` ;
do
# if [ -f ${PKGDIR}/All/$i.tbz2 ]
if [ -f ${PKGDIR}/$i.tbz2 ]
then echo " - $i" >> ${TMP_REPORT}
fi
done
echo " " >> ${TMP_REPORT}
fi
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 ]
if [ -f ${PKGDIR}/$i.tbz2 ]
then
if [ ` grep $i ${TMP_NUEVOS_REBUILD} | wc -l ` = 0 ]
then
echo " - $i" >> ${TMP_COMPILADOS}
fi
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 ]
if [ ! -f ${PKGDIR}/$i.tbz2 ]
then
echo " - $i" >> ${TMP_NO_COMPILADOS}
PARTE_DCHA=` echo $i | cut -f 2 -d "/" `
for j in ` emerge -vp =$i | grep ebuild | cut -f 2- -d "]" | cut -f 2 -d " " | grep -v "${PARTE_DCHA}" `
do
if [ -f ${PKGDIR}/$j.tbz2 ]
then echo " depende de: [*] $j" >> ${TMP_NO_COMPILADOS}
else echo " depende de: [ ] $j" >> ${TMP_NO_COMPILADOS}
fi
done
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}
emerge -vNuDp world > ${TMP_EMERGE}
#Vemos si hay paquetes que están enmascarados
TMP_MASKED=`cat ${TMP_EMERGE} | grep 'have been masked' | wc -l `
TMP_BLOCKED=`cat ${TMP_EMERGE} | grep '\[blocks B' | wc -l `
if [ ! ${TMP_BLOCKED} = '0' ]
then
TMP_BLOCKED_1=`cat ${TMP_EMERGE} | grep 'blocking' | cut -f 2- -d "]" | cut -f 2 -d " "`
TMP_BLOCKED_2=`cat ${TMP_EMERGE} | grep 'blocking' | cut -f 2- -d "]" | cut -f 5 -d " " | cut -f 1 -d ")"`
fi
#Generamos la lista de paquetes
cat ${TMP_EMERGE} | grep ebuild | cut -f 2- -d "]" | cut -f 2 -d " " > ${TMP_NUEVOS_PAKETES}
if [ -f ${TMP_NUEVOS_REBUILD} ]
then
rm -f ${TMP_NUEVOS_REBUILD}
fi
touch ${TMP_NUEVOS_REBUILD}
#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 ]
if [ -f ${PKGDIR}/$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 ]
if [ ! -f ${PKGDIR}/$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
purga_rebuild
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_NUEVOS_REBUILD}
rm -f ${TMP_COMPILADOS}
rm -f ${TMP_NO_COMPILADOS}
rm -f ${TMP_EMERGE} | Espero vuestras sugerencias.
Saludos. _________________ http://www.nosoftwarepatents.com/ |
|
Back to top |
|
|
LinuxBlues l33t
Joined: 26 Mar 2005 Posts: 892
|
Posted: Thu Dec 07, 2006 7:58 pm Post subject: |
|
|
capira wrote: | Me he puesto en contacto con RadikalQ3 y me ha comentado que él ya no esta involucrado en Gentoo ( ) y que podía cambiar el script a mi criterio. |
Tal y como comenta: vive en el planeta tierra.
Te recomiendo ututo. |
|
Back to top |
|
|
pacho2 Developer
Joined: 04 Mar 2005 Posts: 2599 Location: Oviedo, Spain
|
Posted: Thu Dec 07, 2006 8:09 pm Post subject: |
|
|
Ah, otra distribución basada en gentoo , se ve que gentoo es una buena base |
|
Back to top |
|
|
Palmax Maverick Guru
Joined: 14 Oct 2004 Posts: 339
|
Posted: Sun Feb 08, 2009 2:50 pm Post subject: ¿Y en 2009 no existe algo ya hecho en un paquete? |
|
|
Buenos días
En primer lugar, he regresado jejeje. Ahora en serio, la verdad es que me conecté en el foro porque estaba buscando algo similar a esto. Yo me hice un update.sh y luego puse que el anacron (http://anacron.sourceforge.net/) lo lanzara 5 minutos después de iniciar y/o diariamente.
El problema es que lo perdí y me dije alguien habrá hecho un paquete que haga esto.
La pregunta es ¿existe? Lo más parecido que he encontrado ha sido este script, pero como tiene mucho tiempo siempre da un poco de cosa probarlo, aunque bueno parece que hace lo que debe hacer. La verdad es que mi niveles de bash scriptting no son tan avanzados para entenderlo jejeje.
De todas formas, creo que siempre es mejor utilizar anacron que cualquier otro cron, ya que la ventaja de que se te pudiera caer la máquina o simplemente que la apagues y luego la enciendas es enorme.
Un saludo
Palmax |
|
Back to top |
|
|
capira Tux's lil' helper
Joined: 02 May 2005 Posts: 147 Location: Spain
|
Posted: Mon Feb 09, 2009 10:32 am Post subject: |
|
|
Buenas.
Yo sigo utilizando el script que publiqué en este mismo foro sin problemas.
Saludos _________________ http://www.nosoftwarepatents.com/ |
|
Back to top |
|
|
Palmax Maverick Guru
Joined: 14 Oct 2004 Posts: 339
|
Posted: Tue Feb 10, 2009 10:12 pm Post subject: revdep-rebuild |
|
|
¿No hay que hacer un revdep-rebuild por si acaso? |
|
Back to top |
|
|
capira Tux's lil' helper
Joined: 02 May 2005 Posts: 147 Location: Spain
|
Posted: Wed Feb 11, 2009 8:07 am Post subject: |
|
|
Pues la verdad es que sí, quizás debería, pero como realmente no instala, sino que prepara los paquetes para su instalación puede que no tenga el efecto deseado. Se puede modificar para que haga una instalación desasistida si no hay conflictos y que luego haga revdep-rebuild ... Voy a mirar como sería y te cuento _________________ http://www.nosoftwarepatents.com/ |
|
Back to top |
|
|
Palmax Maverick Guru
Joined: 14 Oct 2004 Posts: 339
|
Posted: Sun Feb 22, 2009 2:37 pm Post subject: ¿capira? |
|
|
¿Ha habido suerte? |
|
Back to top |
|
|
cpasoft Tux's lil' helper
Joined: 16 May 2004 Posts: 89
|
Posted: Mon Mar 09, 2009 5:38 pm Post subject: |
|
|
Hola a todos...
Este script es muy interesante, gracias a los que os lo habéis currado...
Sin embargo hay un pequeño "gazapo"...
En este trozito de código:
Code: |
#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
|
... donde pone PKDGIR, debería poner PKGDIR... Es una chorraica, pero ahí está... |
|
Back to top |
|
|
|