Difference between revisions of "Download si instalare E17 din CVS"
From linux360
(→Scriptul pentru download) |
(e17_install.sh v 3.0) |
||
Line 155: | Line 155: | ||
# Nume fisier: e17_install.sh | # Nume fisier: e17_install.sh | ||
− | # Versiunea: | + | # Versiunea: 3.0 |
+ | |||
+ | # Dependente: | ||
+ | # * apps/eclair: taglib, sqlite | ||
# EDITEAZA aceste linii | # EDITEAZA aceste linii | ||
INSTALL_DIR="/usr/local/e17" # directorul unde instalez | INSTALL_DIR="/usr/local/e17" # directorul unde instalez | ||
− | CVS_DIR="/mnt/hdd1/app_cvs" # directorul unde se afla sursele CVS (unde se afla directorul e17) | + | CVS_DIR="/mnt/hdd1/app_cvs/e17/" # directorul unde se afla sursele CVS (unde se afla directorul e17) |
USE_SUDO="yes" # schimba in "no" daca vei compila ca si root | USE_SUDO="yes" # schimba in "no" daca vei compila ca si root | ||
Line 171: | Line 174: | ||
SUDO_BIN="/usr/bin/sudo" | SUDO_BIN="/usr/bin/sudo" | ||
− | LIBS=" | + | 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 \ | |
− | # erori: | + | proto/etk" |
+ | # erori: libs/emotion | ||
− | APPS=" | + | APPS="apps/iconbar apps/entice apps/entrance apps/elicit apps/e \ |
− | + | apps/e_utils apps/express apps/imlib2_tools apps/examine" | |
− | # erori: | + | # erori: apps/enscribe apps/evfs apps/euphoria apps/eclair |
− | SPECIAL= | + | SPECIAL=(proto/exhibit) |
− | # erori: evidence eterm/Eterm e17/proto/entropy | + | # optiuni: apps/eclair apps/elation proto/etk ../../app_source/exhibit |
+ | # erori: ../misc/engage evidence eterm/Eterm e17/proto/entropy | ||
# comportamentul implicit | # comportamentul implicit | ||
Line 273: | Line 278: | ||
fi | 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 | for BUILD_ARR in $BUILD_LIST ;do | ||
echo "=> $BUILD_ARR" | echo "=> $BUILD_ARR" | ||
for BUILD_ITEM in ${!BUILD_ARR} ;do | 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 | if [[ $RESUME -eq 1 && -f "$CVS_DIR/$BUILD_ITEM/$SKIP_FILE" ]]; then | ||
echo "==> SKIP $BUILD_ITEM" | echo "==> SKIP $BUILD_ITEM" | ||
else | else | ||
echo "==> COMPILEZ $BUILD_ITEM" | echo "==> COMPILEZ $BUILD_ITEM" | ||
+ | |||
cd $CVS_DIR/$BUILD_ITEM | cd $CVS_DIR/$BUILD_ITEM | ||
− | + | ||
env LDFLAGS="$MYLDFLAGS" CPPFLAGS="$MYCPPFLAGS" \ | env LDFLAGS="$MYLDFLAGS" CPPFLAGS="$MYCPPFLAGS" \ | ||
./autogen.sh | ./autogen.sh | ||
− | $ | + | $MAKE_BIN clean |
env LDFLAGS="$MYLDFLAGS" CPPFLAGS="$MYCPPFLAGS" \ | env LDFLAGS="$MYLDFLAGS" CPPFLAGS="$MYCPPFLAGS" \ | ||
− | + | ./configure --prefix=$INSTALL_DIR && $MAKE_BIN && \ | |
− | + | $SUDO_BIN $MAKE_BIN install && \ | |
+ | $SUDO_BIN $LDCONFIG_BIN $INSTALL_DIR/lib | ||
R="$?" | R="$?" | ||
if [ $R -eq 1 ]; then | if [ $R -eq 1 ]; then | ||
Line 332: | Line 350: | ||
exit 0 | exit 0 | ||
− | |||
</pre> | </pre> | ||
Revision as of 15:43, 31 December 2005
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.
#!/bin/sh # Nume fisier: e17_cvs.sh # Versiunea: 2.1 # 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:" 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 " 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 #? ;; all) echo "==> DESCARC pachetele: Enlightenment DR 17, Engage, Evidence" download_packages e17 download_packages engage download_packages evidence return #? ;; esac return 1 } if [ $# -eq 0 ]; then usage fi # verificam parametrii check_options $1 # daca sunt mai multi parametri, atunci acestia # reprezinta lista pachetelor ce trebuiesc descarcate # cream o lista cu toti parametri 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 # 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.
#!/bin/sh # Nume fisier: e17_install.sh # Versiunea: 3.0 # 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 (unde se afla directorul e17) 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/express apps/imlib2_tools apps/examine" # erori: apps/enscribe apps/evfs apps/euphoria apps/eclair SPECIAL=(proto/exhibit) # optiuni: apps/eclair apps/elation proto/etk ../../app_source/exhibit # 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.