Difference between revisions of "Download si instalare E17 din CVS"
From linux360
(e17_install.sh v3.1) |
|||
(10 intermediate revisions by 8 users not shown) | |||
Line 6: | Line 6: | ||
In versiunea 2.0 m-am complicat putin , unele lucruri nu sunt absolut necesare. | In versiunea 2.0 m-am complicat putin , unele lucruri nu sunt absolut necesare. | ||
− | < | + | <code><sh/> |
#!/bin/sh | #!/bin/sh | ||
Line 141: | Line 141: | ||
exit 0 | exit 0 | ||
− | + | </code> | |
− | </ | ||
==Scriptul pentru compilare si instalare== | ==Scriptul pentru compilare si instalare== | ||
Line 157: | Line 156: | ||
apelarea scriptului. | apelarea scriptului. | ||
− | < | + | <code><sh/> |
#!/bin/sh | #!/bin/sh | ||
Line 358: | Line 357: | ||
exit 0 | exit 0 | ||
− | + | </code> | |
− | </ | ||
==Sfarsit== | ==Sfarsit== |
Latest revision as of 12:14, 13 February 2006
Contents
Scriptul pentru download
Acest script poate fi folosit pentru a descarca Enlightenment DR17 din CVS sau pentru a sincroniza fisierele deja existente pe sistemul vostru cu fisierele din CVS.
In versiunea 2.0 m-am complicat putin , unele lucruri nu sunt absolut necesare.
<sh/>
- !/bin/sh
- Nume fisier: e17_cvs.sh
- Versiunea: 2.3
- EDITEAZA aceste linii
CVS_DIR="/mnt/hdd1/app_cvs" # directorul unde instalez
- ATENTIE: NU EDITA sub aceasta linie #
- lista aplicatiilor care vor fi downlodate implicit
DOWNLOAD_LIST="e17"
- lista aplicatiilor disponibile
AVAILABLE_LIST=":e17:engage:evidence:e_modules:"
function usage() {
echo "Folosire: e17_cvs [e17|engage|evidence|all|help]" echo echo "optiuni:" echo " -help - afieaza acest mesaj" echo echo "pachete:" echo " e17 - descarca Enlightenment DR17" echo " engage - descarca Engage" echo " evidence - descarca Evidence" echo " e_modules - descarca modulele pt. Enlightenment DR17" echo " all - descarca Enlightenment DR17, Engage si Evidence" exit 0
}
function check_options() {
case "$1" in -help) usage exit 0 ;; esac return 1
}
function download_packages() {
case "$1" in e17) echo "==> DESCARC Enlightenment DR 17" cvs -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/enlightenment login && \ cvs -z3 -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/enlightenment co e17 return #? ;; engage) echo "==> DESCARC Engage" cvs -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/enlightenment login && \ cvs -z3 -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/enlightenment co misc/engage return #? ;; evidence) echo "==> DESCARC Evidence" cvs -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/evidence login && \ cvs -z3 -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/evidence co evidence return #? ;; e_modules) echo "==> DESCARC Evidence" cvs -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/evidence login && \ cvs -z3 -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/enlightenment co e_modules return #? ;; all) echo "==> DESCARC pachetele: Enlightenment DR 17, Engage, Evidence" download_packages e17 download_packages engage download_packages evidence return #? ;; esac return 1
}
- verificam parametri
check_options $1
- daca sunt mai multi parametri, atunci acestia
- reprezinta lista pachetelor ce trebuiesc descarcate
- cream o lista cu toti parametri
if [ $# -gt 0 ]; then
NR_PARAM=$# DOWNLOAD_LIST="" for ((i=1; i <= NR_PARAM; i++)); do DOWNLOAD_LIST="$DOWNLOAD_LIST${!i} " done
# verificam validitatea pachetelor din lista for ITEM in $DOWNLOAD_LIST; do REZ_STR=$(echo $AVAILABLE_LIST | grep ":$ITEM:") if [ ! -n "$REZ_STR" ]; then echo "Pachet inexistent: $ITEM" usage fi done
fi
- descarcam pachetele
cd $CVS_DIR
echo "***********************************************" echo "* Incepe procesul de descarcare a pachetelor *" echo "***********************************************"
for ITEM in $DOWNLOAD_LIST; do
download_packages $ITEM
R="$?" if [ $R -eq 1 ]; then echo echo "==> PROCESUL de descarcare a fost oprit de utilizator" exit 1 elif [ $R -eq 2 ]; then echo echo "==> EROARE la descarcare; procesul de descarcare va fi oprit" exit 1 fi
done
echo "*************************************************" echo "* Toate pachetele au fost descarcate cu succes! *" echo "*************************************************"
exit 0
Scriptul pentru compilare si instalare
Versiunea 2 aduce cateva imbunatatiri majore fata de versiunea 1. Cea mai importanta este posibilitatea de a continua procesul de instalare in cazul in care acesta a fost intrerupt de catre utilizator sau din cauza unei erori la compilarea unui pachet.
Astfel daca la compilarea unui pachet primim o eroare fiindca nu este satisfacuta o dependenta pentru respectivul pachet, putem rezolva dependenta si apoi continua procesul de compilare si instalare de la pachetul pentru care am primit eroarea.
Pentru a avea acces la aceasta facilitate trebuie sa folosim optiunea "-resume" la apelarea scriptului.
<sh/>
- !/bin/sh
- Nume fisier: e17_install.sh
- Versiunea: 3.1
- Dependente:
- * apps/eclair: taglib, sqlite
- EDITEAZA aceste linii
INSTALL_DIR="/usr/local/e17" # directorul unde instalez CVS_DIR="/mnt/hdd1/app_cvs/e17/" # directorul unde se afla sursele CVS USE_SUDO="yes" # schimba in "no" daca vei compila ca si root
- ATENTIE: NU EDITA sub aceasta linie #
- locatiile comenzilor folosite
MAKE_BIN="/usr/bin/make" LDCONFIG_BIN="/sbin/ldconfig" SUDO_BIN="/usr/bin/sudo"
LIBS="libs/imlib2 libs/eet libs/evas libs/ecore libs/embryo libs/edje libs/edb \
libs/epeg libs/epsilon libs/esmart libs/etox libs/ewl libs/engrave libs/imlib2_loaders \ proto/etk"
- erori: libs/emotion
APPS="apps/iconbar apps/entice apps/entrance apps/elicit apps/e \
apps/e_utils apps/e_modules apps/express apps/imlib2_tools apps/examine apps/eclair"
- erori: apps/enscribe apps/evfs apps/euphoria apps/eclair
SPECIAL="apps/elation proto/etk proto/exhibit ../e_modules"
- optiuni: apps/elation proto/etk proto/exhibit ../e_modules
- erori: ../misc/engage evidence eterm/Eterm e17/proto/entropy
- comportamentul implicit
RESUME=0 BUILD_LIST="LIBS APPS" SKIP_FILE=".DONE"
function usage() {
echo "Folosire: e17_install.sh [optiuni] [apps|libs|special|all|help]" echo echo "optiuni:" echo " -resume - incepe compilarea de la pachetul unde s-a oprit compilarea anterioara" echo " -help - afiseaza acest mesaj" echo echo "pachete:" echo " apps - compileaza numai aplicatiile" echo " libs - compileaza numai librariile" echo " special - compileaza librarii si aplicatii optionale" echo " all - compileaza toate librariile si aplicatiile" exit 0
}
function check_options() {
case "$1" in -resume) RESUME=1 return 0 ;; -help) usage exit 0 ;; esac return 1
}
function check_packages() {
case "$1" in apps) BUILD_LIST="APPS" return 0 ;; libs) BUILD_LIST="LIBS" return 0 ;; all) BUILD_LIST="LIBS APPS" return 0 ;; special) BUILD_LIST="SPECIAL" return 0 ;; esac return 1
}
- verificam parametri
if [ $# -gt 2 ]; then
usage
elif [ $# -eq 2 ]; then
if ! check_options $1 || ! check_packages $2 ; then usage fi
elif [ $# -eq 1 ]; then
if ! check_options $1 && ! check_packages $1 ; then usage fi
fi
if [ "$USE_SUDO" != "yes" ]; then SUDO_BIN="" fi
MYLDFLAGS="$LDFLAGS -L$INSTALL_DIR/lib -L/lib -L/usr/lib \
-L/usr/local/lib -L/usr/X11R6/lib"
MYCPPFLAGS="$CPPFLAGS -I$INSTALL_DIR/include -I/usr/include \
-I/usr/local/include -I/usr/X11R6/include"
PATH="$PATH:$INSTALL_DIR/bin" export PATH
echo "*****************************************************" echo "* Incepe procesul de compilare a Enlightenment DR17 *" echo "*****************************************************"
if [ $RESUME -eq 1 ]; then
echo "Va avea loc procesul de RESUME; pentru mai multe detalii $0 help"
fi
BEGIN_TIME=`date`
- determin nr. total de pachete ce vor fi instalate
NR_PACHETE=0 for BUILD_ARR in $BUILD_LIST ;do
BUILD_ARR_LEN=`echo ${!BUILD_ARR}|wc -w` ((NR_PACHETE+=BUILD_ARR_LEN))
done
i=0 for BUILD_ARR in $BUILD_LIST ;do
echo "=> $BUILD_ARR" for BUILD_ITEM in ${!BUILD_ARR} ;do ((i+=1)) # schimb titlul consolei corespunzator pachetului pe care il instalez # ex: "e17_install: (1 din 24) apps/entice" TITLU="e17_install: ($i din $NR_PACHETE) $BUILD_ITEM" echo -ne "\033]0;$TITLU\007" if $RESUME -eq 1 && -f "$CVS_DIR/$BUILD_ITEM/$SKIP_FILE" ; then echo "==> SKIP $BUILD_ITEM" else echo "==> COMPILEZ $BUILD_ITEM" cd $CVS_DIR/$BUILD_ITEM env LDFLAGS="$MYLDFLAGS" CPPFLAGS="$MYCPPFLAGS" \ ./autogen.sh $MAKE_BIN clean env LDFLAGS="$MYLDFLAGS" CPPFLAGS="$MYCPPFLAGS" \ ./configure --prefix=$INSTALL_DIR && $MAKE_BIN && \ $SUDO_BIN $MAKE_BIN install && \ $SUDO_BIN $LDCONFIG_BIN $INSTALL_DIR/lib R="$?" if [ $R -eq 1 ]; then echo echo "==> PROCESUL de compilare oprit de utilizator" echo "==> PACHETUL la care s-a oprit procesul: $BUILD_ITEM !" exit 1 elif [ $R -eq 2 ]; then
echo
echo "==> EROARE la compilare; procesul de compilare va fi oprit" echo "==> PACHETUL la care s-a oprit procesul: $BUILD_ITEM !" exit 1 elif [ $R ]; then touch "$SKIP_FILE" fi fi done
done
- daca procesul de compilare s-a terminat cu succes, fac curatenie
for BUILD_ARR in $BUILD_LIST ;do
for BUILD_ITEM in ${!BUILD_ARR} ;do if [ -f "$CVS_DIR/$BUILD_ITEM/$SKIP_FILE" ]; then rm -f "$CVS_DIR/$BUILD_ITEM/$SKIP_FILE" fi done
done
END_TIME=`date`
echo "************************************************************" echo "* Enlightenment DR17 a fost compilat si instalat cu succes *" echo "************************************************************"
- aici o functie care calculeaza timpul scurs
echo "Begin time: $BEGIN_TIME" echo "End time: $END_TIME"
exit 0
Sfarsit
Sper ca aceste scripturi sa va fie de ajutor.
Astept observatiile si comentariile voastre.