Repository 32bit  Forum
Repository 64bit  Wiki

Script per un chroot

Forum dedicato alla programmazione.

Moderatore: Staff

Regole del forum
1) Citare in modo preciso il linguaggio di programmazione usato.
2) Se possibile portare un esempio del risultato atteso.
3) Leggere attentamente le risposte ricevute.
4) Scrivere i messaggi con il colore di default, evitare altri colori.
5) Scrivere in Italiano o in Inglese, se possibile grammaticalmente corretto, evitate stili di scrittura poco chiari, quindi nessuna abbreviazione tipo telegramma o scrittura stile SMS o CHAT.
6) Appena registrati è consigliato presentarsi nel forum dedicato.

La non osservanza delle regole porta a provvedimenti di vari tipo da parte dello staff, in particolare la non osservanza della regola 5 porta alla cancellazione del post e alla segnalazione dell'utente. In caso di recidività l'utente rischia il ban temporaneo.

Re: Script per un chroot

Messaggioda kobaiachi » mar ago 17, 2010 14:59

in realta non serve una cosa come l'installer avanzato di slackware ma una cosa un po diversa:
una volta definito l'applicativo da mettere in chroot lo script si va a controllare tutte le dipendenze del pacchetto e da queste ricava poi la lista dei pacchetti base da installare .
una volta fatto questo installa questi pacchetti (serie A, ap, etc ) , le dipendenze del software finale , e poi il software da mettere in chroot.


Ok ora che lo ho scritto mi rendo conto che effettivamente hai ragione non è piu un semplice script ma un vero e propio software .
kobaiachi
Linux 3.x
Linux 3.x
 
Messaggi: 1368
Iscritto il: mer lug 13, 2005 23:00
Località: roma

Re: Script per un chroot

Messaggioda metrofox » mar ago 17, 2010 15:40

lo script si va a controllare tutte le dipendenze del pacchetto e da queste ricava poi la lista dei pacchetti base da installare .

LOL, e che è... Mica dobbiamo fare nulla di così complesso, cioè per ogni pacchetto dovremmo anadare a mo di ldd, a che ci siamo lo trasformiamo in una specie di gestore dei pacchetti di terze parti che risolve le dipendenze da solo, tipo swaret, slackyd, slapt-get... Ma ti direi comunque che non c'entra molto col compito di questo script... Del resto come dice conraid:
Codice: Seleziona tutto
upgradepkg */*.t?z

Va benissimo, ci pensa lui e la sintassi di sh a risolvere i problemi.
al massimo comunque si potrebbe modificare lo script per chiedere di volta in volta quale sezione scaricare ed installare (soprattutto per sezioni IMHO superflue come F, KDE, KDEI, X, XAP e Y)

Poi la cosa diventerà troppo lunga, rispondere ad ogni domanda y ed n e magari fare tutto in uno switch case... Però bho, non saprei, sarebbe anche questa una bell'idea. Sempre meglio di tutte quelle variabili di wget alla fine...
Avatar utente
metrofox
Linux 2.6
Linux 2.6
 
Messaggi: 758
Iscritto il: gio ago 07, 2008 11:29
Slackware: slackware64-current
Kernel: 3.4.4-ck3
Desktop: FluxBox-1.3.1
Distribuzione: FreeBSD-8.1(amd64)

Re: Script per un chroot

Messaggioda conraid » mar ago 17, 2010 15:46

metrofox ha scritto:
lo script si va a controllare tutte le dipendenze del pacchetto e da queste ricava poi la lista dei pacchetti base da installare .


LOL, e che è... Mica dobbiamo fare nulla di così complesso, del resto come dice conraid:

Codice: Seleziona tutto
upgradepkg */*.t?z


Va benissimo, ci pensa lui e la sintassi di sh a risolvere i problemi.


Offtopic: c'è un equivoco di fondo, creato dal titolo del topic
un chroot solitamente si fa per i motivi indicati da kobaiachi, non per replicare installazioni full su cui compilare pacchetti. Questa è una esigenza che capita a noi, ma normalmente si mette in chroot l'applicativo da rendere disponibile e le librerie disponibili, in modo che un eventuale "problema" sia "ingabbiato" in questa jail/root e non sull'intero sistema.
Che l'applicativo da rendere disponibile sia una Slackware full è un caso, non la regola :-)
Solo che mancando la gestione delle dipendenze diventa anche complicato (non impossibile) mettersi a cercare i vari pacchetti da installare. I quali poi in Slackware hanno non solo le librerie, ma tutto il resto.
Per queste cose "in mia umile opinione" sono migliori altre distribuzioni
Avatar utente
conraid
Staff
Staff
 
Messaggi: 12023
Iscritto il: mer lug 13, 2005 23:00
Località: Livorno
Nome Cognome: Corrado Franco
Slackware: current

Re: Script per un chroot

Messaggioda hashbang » mar ago 17, 2010 16:10

ok allora a questo punto ottimizziamo il codice togliendo i download e installazioni frammentate..prima però vorrei capire in cosa migliorerebbe il download effettuato con rsync....perchè se come dice conraid è meglio di wget, possiamo sostituire il download manager senza problemi.
conraid ha scritto:Offtopic: Che l'applicativo da rendere disponibile sia una Slackware full è un caso, non la regola Solo che mancando la gestione delle dipendenze diventa anche complicato (non impossibile) mettersi a cercare i vari pacchetti da installare. I quali poi in Slackware hanno non solo le librerie, ma tutto il resto.
Per queste cose "in mia umile opinione" sono migliori altre distribuzioni
Più che un caso, se parliamo di packagers, è una necessità ;)
Comunque è vero per un utilizzo "classico" del chroot credo sia più conveniente usare soluzioni che avendo una gestione dei pacchetti più automatizzata permettano un uso più facile dell'ambiente di chroot.
Adoro il pragmatismo della lingua giapponese, è l'unica in cui per dire ad una ragazza che la ami le dici "suki". (cit.)
Avatar utente
hashbang
Packager
Packager
 
Messaggi: 1842
Iscritto il: ven giu 04, 2010 9:27
Località: Lecce
Nome Cognome: Luca De Pandis
Distribuzione: Windows 8.1 Pro

Re: Script per un chroot

Messaggioda conraid » mar ago 17, 2010 17:36

non è che rsync o lftp siano meglio o peggio di wget, semplicemente ti permettono di crearti un mirror e tenerlo aggiornato.
Capisco che per una installazione di una stable ha poco senso, ma allora perché non scaricare l'iso e montarla?
wget lo trovo inadatto a queste cose, capisco che come dici le fa, ma per situazioni dove ho server ftp o rsync mi sembra più adatto utilizzare un client ftp ed rsync
Avatar utente
conraid
Staff
Staff
 
Messaggi: 12023
Iscritto il: mer lug 13, 2005 23:00
Località: Livorno
Nome Cognome: Corrado Franco
Slackware: current

Re: Script per un chroot

Messaggioda kobaiachi » mar ago 17, 2010 19:27

LOL scusate ragazzi non avevo capito che il tutto serviva per avere una installazione pulita su cui fare le prove di installazione dei pacchetti ....
kobaiachi
Linux 3.x
Linux 3.x
 
Messaggi: 1368
Iscritto il: mer lug 13, 2005 23:00
Località: roma

Re: Script per un chroot

Messaggioda hashbang » mer ago 18, 2010 17:21

conraid ha scritto:non è che rsync o lftp siano meglio o peggio di wget, semplicemente ti permettono di crearti un mirror e tenerlo aggiornato.
Capisco che per una installazione di una stable ha poco senso, ma allora perché non scaricare l'iso e montarla?
wget lo trovo inadatto a queste cose, capisco che come dici le fa, ma per situazioni dove ho server ftp o rsync mi sembra più adatto utilizzare un client ftp ed rsync
Beh scaricare una ISO è un bel malloppo (sono pur sempre 4GB :D)...comunque mi sono deciso: ho attuato i tuoi suggerimenti sul download e installazione con un comando unico ;) L'unico problema è che vorrei escludere dal download generale kdei e scaricarla separatamente con la lingua impostata nella variabile $KDELANG. Per ora le prove le ho fatte con wget (anche se voglio provare lftp) aggiungendo il paramentro --exclude-dirs=kdei però è come se non lo vedesse :-k
Adoro il pragmatismo della lingua giapponese, è l'unica in cui per dire ad una ragazza che la ami le dici "suki". (cit.)
Avatar utente
hashbang
Packager
Packager
 
Messaggi: 1842
Iscritto il: ven giu 04, 2010 9:27
Località: Lecce
Nome Cognome: Luca De Pandis
Distribuzione: Windows 8.1 Pro

Re: Script per un chroot

Messaggioda hashbang » gio ago 19, 2010 13:31

ho quasi finito le ultime modifiche. A breve riposterò lo script con le ultime ottimizzazioni. :)
Adoro il pragmatismo della lingua giapponese, è l'unica in cui per dire ad una ragazza che la ami le dici "suki". (cit.)
Avatar utente
hashbang
Packager
Packager
 
Messaggi: 1842
Iscritto il: ven giu 04, 2010 9:27
Località: Lecce
Nome Cognome: Luca De Pandis
Distribuzione: Windows 8.1 Pro

Re: Script per un chroot

Messaggioda hashbang » sab ago 21, 2010 18:31

Con le ultime modifiche fatte ho avuto problemi nel download della localizzazione. Pertanto per me va bene l'ultima modifca (fatta da metrofox).
Adoro il pragmatismo della lingua giapponese, è l'unica in cui per dire ad una ragazza che la ami le dici "suki". (cit.)
Avatar utente
hashbang
Packager
Packager
 
Messaggi: 1842
Iscritto il: ven giu 04, 2010 9:27
Località: Lecce
Nome Cognome: Luca De Pandis
Distribuzione: Windows 8.1 Pro

Re: Script per un chroot

Messaggioda hashbang » dom ago 22, 2010 14:29

Sinceramente sto pensando all'abbandono del download di kdei. Alla fine se uso una Slackware stabile per i pacchetti a che mi serve la localizzazione di kde. Io neanche lo uso kde (lo installo perchè devo). Uso la slack in chroot in riga di comando. Quindi che ne pensate di togliere kdei dal chroot script e procedere con un download unico?
Adoro il pragmatismo della lingua giapponese, è l'unica in cui per dire ad una ragazza che la ami le dici "suki". (cit.)
Avatar utente
hashbang
Packager
Packager
 
Messaggi: 1842
Iscritto il: ven giu 04, 2010 9:27
Località: Lecce
Nome Cognome: Luca De Pandis
Distribuzione: Windows 8.1 Pro

Re: Script per un chroot

Messaggioda metrofox » dom ago 22, 2010 15:53

Se fossi in te farei in modo che lo script chiedesse l'installazione di una serie con uno switch case o qualcosa del genere(dipende come vorresti fare tu le cose)... Magari dicendo:

Codice: Seleziona tutto
a/ series */ series are strongly required, so they will be automatically installed.
You can edit this script if you don't want to install them. kde/ series, kdei/ series, [...]/ series are not required.
The installer is going to ask you some questions if you want to install them or not

Do you want to install kde/ series, y/n? n
Do you want to install kdei/ series, y/n? n


Sarebbe grazioso installare AUTOMATICAMENTE le serie di pacchetti a cui non si può dire di NO, mentre per i pacchetti a cui si potrebbe fare a meno allora vengono poste delle domande... Ciò permetterebbe all'utente di avere più libertà nella scelta delle cose da installare.
Avatar utente
metrofox
Linux 2.6
Linux 2.6
 
Messaggi: 758
Iscritto il: gio ago 07, 2008 11:29
Slackware: slackware64-current
Kernel: 3.4.4-ck3
Desktop: FluxBox-1.3.1
Distribuzione: FreeBSD-8.1(amd64)

Re: Script per un chroot

Messaggioda hashbang » lun ago 23, 2010 16:20

metrofox ha scritto:Se fossi in te farei in modo che lo script chiedesse l'installazione di una serie con uno switch case o qualcosa del genere(dipende come vorresti fare tu le cose)... Magari dicendo:

Codice: Seleziona tutto
a/ series */ series are strongly required, so they will be automatically installed.
You can edit this script if you don't want to install them. kde/ series, kdei/ series, [...]/ series are not required.
The installer is going to ask you some questions if you want to install them or not

Do you want to install kde/ series, y/n? n
Do you want to install kdei/ series, y/n? n


Sarebbe grazioso installare AUTOMATICAMENTE le serie di pacchetti a cui non si può dire di NO, mentre per i pacchetti a cui si potrebbe fare a meno allora vengono poste delle domande... Ciò permetterebbe all'utente di avere più libertà nella scelta delle cose da installare.
Sto testando il pacchetto con delle nuove modifiche. Se tutto va bene lo script oltre alla possibilità di scegliere il tipo di installazione (questo funziona) dovrebbe anche far scegliere la lingua per kde (ovviamente sono disponibili ben 58 opzioni linguistiche; dalla 0 che permette di passare oltre alla 58 che installa il language pack cinese). Certo, è un pò lunghetto e forse anche un pò complesso. Ma sinceramente a me della lunghezza e della complessità non me ne frega molto. Tanto siamo noi a perdere tempo :D Scherzo, è un pò più complesso e lungo di prima, però se si vogliono fare le cose per bene a volte non si può fare a meno della complessità.

Ora lo script agisce come un'installer: i tipi di installazione sono:
Basic (A,AP,D,E,F,K,L,N)
Standard (Basic + T,TCL,X,XAP,Y)
Full (Standard + KDE)

Inoltre per chi ha scelto l'opzione full potrà segliere se installare o meno la localizzazione e soprattutto quale localizzazione (questo però è da testare). Se funziona vi posto lo script :)
Adoro il pragmatismo della lingua giapponese, è l'unica in cui per dire ad una ragazza che la ami le dici "suki". (cit.)
Avatar utente
hashbang
Packager
Packager
 
Messaggi: 1842
Iscritto il: ven giu 04, 2010 9:27
Località: Lecce
Nome Cognome: Luca De Pandis
Distribuzione: Windows 8.1 Pro

Re: Script per un chroot

Messaggioda metrofox » lun ago 23, 2010 19:41

Postalo anche se non funziona :D
Avatar utente
metrofox
Linux 2.6
Linux 2.6
 
Messaggi: 758
Iscritto il: gio ago 07, 2008 11:29
Slackware: slackware64-current
Kernel: 3.4.4-ck3
Desktop: FluxBox-1.3.1
Distribuzione: FreeBSD-8.1(amd64)

Re: Script per un chroot

Messaggioda hashbang » lun ago 23, 2010 20:17

Codice: Seleziona tutto
#!/bin/sh

# Chroot Environment AutoBuilder
# Copyright (C) 2010 Luca De Pandis aka atomix600
# All rights reserved.
# Contact me @ Slacky.eu ( http://www.slacky.eu )
#
# Heavily based on the Tom Newsom's Chroot Howto ( http://slackworld.berlios.de/2007/chroot_howto.html )
#
# Thanks to conraid, zoros, kobaiachi and metrofox for improvements
#
# Redistribution and use of this script, with or without modification, is
# permitted provided that the following conditions are met:
#
# 1. Redistributions of this script must retain the above copyright
#    notice, this list of conditions and the following disclaimer.
#
# THIS SOFTWARE IS PROVIDED BY THE AUTHOR AS IS AND ANY EXPRESS OR IMPLIED
# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

# Exit on most errors
set -e

# Set variables
PKGDIR=${PKGDIR:-/tmp/Slack_$version}
CHROOTDIR=${CHROOTDIR:-/mnt/chroot}
MIRROR=${MIRROR:-ftp.slackware.at}
PKGA=${PKGA:-ftp://$MIRROR/slackware-$version/slackware/a/*.t?z}
PKGAP=${PKGAP:-ftp://$MIRROR/slackware-$version/slackware/ap/*.t?z}
PKGD=${PKGD:-ftp://$MIRROR/slackware-$version/slackware/d/*.t?z}
PKGE=${PKGE:-ftp://$MIRROR/slackware-$version/slackware/e/*.t?z}
PKGF=${PKGF:-ftp://$MIRROR/slackware-$version/slackware/f/*.t?z}
PKGK=${PKGK:-ftp://$MIRROR/slackware-$version/slackware/k/*.t?z}
PKGL=${PKGL:-ftp://$MIRROR/slackware-$version/slackware/l/*.t?z}
PKGN=${PKGN:-ftp://$MIRROR/slackware-$version/slackware/n/*.t?z}
PKGT=${PKGT:-ftp://$MIRROR/slackware-$version/slackware/t/*.t?z}
PKGTCL=${PKGTCL:-ftp://$MIRROR/slackware-$version/slackware/tcl/*.t?z}
PKGX=${PKGX:-ftp://$MIRROR/slackware-$version/slackware/x/*.t?z}
PKGXAP=${PKGXAP:-ftp://$MIRROR/slackware-$version/slackware/xap/*.t?z}
PKGY=${PKGY:-ftp://$MIRROR/slackware-$version/slackware/y/*.t?z}
PATCHES=${PATCHES:-ftp://$MIRROR/slackware-$version/patches/packages/*.t?z}
PATCHDIR=${PATCHDIR:-$PKGDIR/slackware.at/patches}
HOSTFILE=${HOSTFILE:-/etc/hosts}
FSTABFILE=${FSTABFILE:-/etc/fstab}
SPACE_REQUIRED=7 # GByte

# Set Functions
check_space_on_hd()
{
     SPACE=$(df -P -m $PKGDIR 2> /dev/null | tr -s ' ' | cut -f4 -d' ' | tail -1)
     if [ -z "$SPACE" ]; then
       echo 2 #error
     elif [ $(expr $SPACE - $SPACE_REQUIRED) -gt 0 ]; then
       echo 1
     else
       echo 0
     fi
}

connection_check()
{
if ping -c2 $MIRROR > /dev/null 2>&1 ; then
   echo "OK"
else
        ERRNUM=$?
        echo "FAIL"
        exit $?
fi
}

# Main Script
echo "+----------------------------------+"
echo "|  StArTiNg ChRoOt AuToBuIlDeR...  |"
echo "+----------------------------------+"

echo
echo "Select your Slackware"
echo
echo "Please choose the version of Slackware wich you want to chroot."
echo "For example: if you want to chroot a Slackware-current you must"
echo "write current. (CTRL+D for exit)"
echo
echo -n "Slackware version: "
read version
echo "Slackware version is selected: $version"
echo
echo "This script will install Slackware $version in a chroot environment."
echo "The estimated time for completion of the transaction is 80 minutes,"
echo "but it may vary depending on the configuration of the computer."
echo "[WARNING] you'll need about ${SPACE_REQUIRED} GiB in / to run this script [WARNING]"
echo "[WARNING] it's recommended a fast internet connection for download [WARNING]"

# Remove directories if that is necessary
echo -n "Checking for directories... "
rm -rf /tmp/Slack_*
rm -rf $CHROOTDIR
mkdir -p $PKGDIR
echo "DONE"

# Check available space on hard disk
echo -n "Checking for space... "
CHECK=$(check_space_on_hd)
if [ $CHECK = 0 -o $CHECK = 2 ]; then
  echo "FAIL"
else
  echo "OK"
fi

# Ping Mirror
echo -n "Checking for mirror... "
connection_check

# Choose your installation type
echo
echo "Slackware Linux $version Setup"
echo
echo "Choose installation type"
echo
echo "[F] Full Installation (Standard + KDE)"
echo "[B] Basic (Only A,AP,D,E,F,K,L and N package series)"
echo "[S] Standard (Base + T,TCL,X,XAP,Y)"
echo "[E] Exit"
echo
echo -n "Installation type: "
read type

case "$type" in
 
  "E" | "e" )
  echo
  echo "Exiting from installer..."
  exit 1
  ;;
 
  "F" | "f" )
  echo
  echo "Full installation mode selected"
  echo "[WARNING] The full mode installation may take several minutes. So please wait until the operation completes. [WARNING]"
  echo -n "Downloading Slackware... "
  wget -c -r --directory-prefix=$PKGDIR -np --cut-dirs=2 --exclude-directories=slackware-$SLACKVERSION/slackware/kdei ftp://slackware.at/slackware-$SLACKVERSION/slackware/* > /dev/null 2>&1
  mkdir -p $PKGDIR/slackware.at/kdei
  echo "DONE"
  ;;

  "B" | "b" )
  echo
  echo "Basic installation mode selected"
  echo "Downloading core packages..."
  wget -c -r --directory-prefix=$PKGDIR -np --cut-dirs=2 $PKGA > /dev/null 2>&1
  wget -c -r --directory-prefix=$PKGDIR -np --cut-dirs=2 $PKGAP > /dev/null 2>&1
  wget -c -r --directory-prefix=$PKGDIR -np --cut-dirs=2 $PKGD > /dev/null 2>&1
  wget -c -r --directory-prefix=$PKGDIR -np --cut-dirs=2 $PKGE > /dev/null 2>&1
  wget -c -r --directory-prefix=$PKGDIR -np --cut-dirs=2 $PKGF > /dev/null 2>&1
  wget -c -r --directory-prefix=$PKGDIR -np --cut-dirs=2 $PKGK > /dev/null 2>&1
  wget -c -r --directory-prefix=$PKGDIR -np --cut-dirs=2 $PKGL > /dev/null 2>&1
  wget -c -r --directory-prefix=$PKGDIR -np --cut-dirs=2 $PKGN > /dev/null 2>&1
  ;;

  "S" | "s" )
  echo
  echo "Standard installation mode selected"
  echo -n "Downloading core packages... "
  wget -c -r --directory-prefix=$PKGDIR -np --cut-dirs=2 $PKGA > /dev/null 2>&1
  wget -c -r --directory-prefix=$PKGDIR -np --cut-dirs=2 $PKGAP > /dev/null 2>&1
  wget -c -r --directory-prefix=$PKGDIR -np --cut-dirs=2 $PKGD > /dev/null 2>&1
  wget -c -r --directory-prefix=$PKGDIR -np --cut-dirs=2 $PKGE > /dev/null 2>&1
  wget -c -r --directory-prefix=$PKGDIR -np --cut-dirs=2 $PKGF > /dev/null 2>&1
  wget -c -r --directory-prefix=$PKGDIR -np --cut-dirs=2 $PKGK > /dev/null 2>&1
  wget -c -r --directory-prefix=$PKGDIR -np --cut-dirs=2 $PKGL > /dev/null 2>&1
  wget -c -r --directory-prefix=$PKGDIR -np --cut-dirs=2 $PKGN > /dev/null 2>&1
  echo "DONE"
  echo -n "Downloading extras... "
  wget -c -r --directory-prefix=$PKGDIR -np --cut-dirs=2 $PKGT > /dev/null 2>&1
  wget -c -r --directory-prefix=$PKGDIR -np --cut-dirs=2 $PKGTCL > /dev/null 2>&1
  wget -c -r --directory-prefix=$PKGDIR -np --cut-dirs=2 $PKGX > /dev/null 2>&1
  wget -c -r --directory-prefix=$PKGDIR -np --cut-dirs=2 $PKGXAP > /dev/null 2>&1
  wget -c -r --directory-prefix=$PKGDIR -np --cut-dirs=2 $PKGY > /dev/null 2>&1
  echo "DONE"
  ;;
 
esac

echo "Installing Slackware..."
cd $PKGDIR/slackware.at
installpkg -root $CHROOTDIR */*.t?z > /dev/null 2>&1
echo "Slackware $version was installed successfully"

# Choose localization
if [ -d $PKGDIR/slackware.at/kdei ]; then
  cd $PKGDIR/slackware.at/kdei
  echo
  echo "KDE SC and KOffice localization"
  echo
  echo "if you selected Full mode install you can choose to install the kdei section"
  echo
  echo "[0] I don't want kdei"
  echo "[1] Arabic"
  echo "[2] Bulgarian"
  echo "[3] Catalan"
  echo "[4] Catalan (Valencian)"
  echo "[5] Czech"
  echo "[6] Kashubian"
  echo "[7] Danish"
  echo "[8] German"
  echo "[9] Greek"
  echo "[10] English (UK)"
  echo "[11] Esperanto"
  echo "[12] Spanish"
  echo "[13] Estonian"
  echo "[14] Basque"
  echo "[15] Finnish"
  echo "[16] French"
  echo "[17] Abkhasysk"
  echo "[18] Irish"
  echo "[19] Galician"
  echo "[20] Gujarati"
  echo "[21] Hebrew"
  echo "[22] Hindi"
  echo "[23] Croatian"
  echo "[24] Hungarian"
  echo "[25] Indonesian"
  echo "[26] Icelandic"
  echo "[27] Italian"
  echo "[28] Japanese"
  echo "[29] Kazakh"
  echo "[30] Khmer"
  echo "[31] Kannada"
  echo "[32] Korean"
  echo "[33] Lithuanian"
  echo "[34] Latvian"
  echo "[35] Maithili"
  echo "[36] Macedonian"
  echo "[37] Malayam"
  echo "[38] Norwegian (Bokmaal)"
  echo "[39] Low Saxon"
  echo "[40] Dutch"
  echo "[41] Norwegian (Nynorsk)"
  echo "[42] Punjabi"
  echo "[43] Polish"
  echo "[44] Portuguese"
  echo "[45] Brasil"
  echo "[46] Romanian"
  echo "[47] Russian"
  echo "[48] Sinhala"
  echo "[49] Slovak"
  echo "[50] Slovenian"
  echo "[51] Serbian"
  echo "[52] Swedish"
  echo "[53] Tajik"
  echo "[54] Turkish"
  echo "[55] Ukrainan"
  echo "[56] Walloon"
  echo "[57] Simplified Chinese"
  echo "[58] Chinese"
  echo "[59] All kdei packages"
  echo
  echo -n "Language n.: "
  read lang

  case "$lang" in

    "0" )
    echo
    echo "Skip kdei installation"
    rm -rf $PKGDIR/slackware.at/kdei
    continue
    ;;
 
    "1" )
    echo
    echo "Arabic selected"
    wget -c ftp://ftp.slackware.at/slackware-$version/slackware/kdei/*ar*.t?z > /dev/null 2>&1
    ;;
   
    "2" )
    echo
    echo "Bulgarian selected"
    wget -c ftp://ftp.slackware.at/slackware-$version/slackware/kdei/*bg*.t?z > /dev/null 2>&1
    ;;
   
    "3" )
    echo
    echo "Catalan selected"
    wget -c ftp://ftp.slackware.at/slackware-$version/slackware/kdei/*ca*.t?z > /dev/null 2>&1
    ;;

    "4" )
    echo
    echo "Catalan (Valencian) selected"
    wget -c ftp://ftp.slackware.at/slackware-$version/slackware/kdei/*ca@valencia*.t?z > /dev/null 2>&1
    ;;
   
    "5" )
    echo
    echo "Czech selected"
    wget -c ftp://ftp.slackware.at/slackware-$version/slackware/kdei/*cs*.t?z > /dev/null 2>&1
    ;;

    "6" )
    echo
    echo "Kashubian selected"
    wget -c ftp://ftp.slackware.at/slackware-$version/slackware/kdei/*csb*.t?z > /dev/null 2>&1
    ;;
   
    "7" )
    echo
    echo "Danish selected"
    wget -c ftp://ftp.slackware.at/slackware-$version/slackware/kdei/*da*.t?z > /dev/null 2>&1
    ;;

    "8" )
    echo
    echo "German selected"
    wget -c ftp://ftp.slackware.at/slackware-$version/slackware/kdei/*de*.t?z > /dev/null 2>&1
    installpkg *de*.t?z
    ;;
   
    "9" )
    echo
    echo "Greek selected"
    wget -c ftp://ftp.slackware.at/slackware-$version/slackware/kdei/*el*.t?z > /dev/null 2>&1
    ;;

    "10" )
    echo
    echo "English (UK) selected"
    wget -c ftp://ftp.slackware.at/slackware-$version/slackware/kdei/*en_GB*.t?z > /dev/null 2>&1
    ;;
   
    "11" )
    echo
    echo "Esperanto selected"
    wget -c ftp://ftp.slackware.at/slackware-$version/slackware/kdei/*eo*.t?z > /dev/null 2>&1
    ;;

    "12" )
    echo
    echo "Spanish selected"
    wget -c ftp://ftp.slackware.at/slackware-$version/slackware/kdei/*es*.t?z > /dev/null 2>&1
    ;;
   
    "13" )
    echo
    echo "Estonian selected"
    wget -c ftp://ftp.slackware.at/slackware-$version/slackware/kdei/*et*.t?z > /dev/null 2>&1
    ;;

    "14" )
    echo
    echo "Basque selected"
    wget -c ftp://ftp.slackware.at/slackware-$version/slackware/kdei/*eu*.t?z > /dev/null 2>&1
    ;;
   
    "15" )
    echo
    echo "Finnish selected"
    wget -c ftp://ftp.slackware.at/slackware-$version/slackware/kdei/*fi*.t?z > /dev/null 2>&1
    ;;

    "16" )
    echo
    echo "French selected"
    wget -c ftp://ftp.slackware.at/slackware-$version/slackware/kdei/*fr*.t?z > /dev/null 2>&1
    ;;
   
    "17" )
    echo
    echo "Abkhasysk selected"
    wget -c ftp://ftp.slackware.at/slackware-$version/slackware/kdei/*fy*.t?z > /dev/null 2>&1
    ;;

    "18" )
    echo
    echo "Irish selected"
    wget -c ftp://ftp.slackware.at/slackware-$version/slackware/kdei/*ga*.t?z > /dev/null 2>&1
    ;;
   
    "19" )
    echo
    echo "Galician selected"
    wget -c ftp://ftp.slackware.at/slackware-$version/slackware/kdei/*gl*.t?z > /dev/null 2>&1
    ;;

    "20" )
    echo
    echo "Gujarati selected"
    wget -c ftp://ftp.slackware.at/slackware-$version/slackware/kdei/*gu*.t?z > /dev/null 2>&1
    ;;
   
    "21" )
    echo
    echo "Hebrew selected"
    wget -c ftp://ftp.slackware.at/slackware-$version/slackware/kdei/*he*.t?z > /dev/null 2>&1
    ;;

    "22" )
    echo
    echo "Hindi selected"
    wget -c ftp://ftp.slackware.at/slackware-$version/slackware/kdei/*hi*.t?z > /dev/null 2>&1
    ;;
   
    "23" )
    echo
    echo "Croatian selected"
    wget -c ftp://ftp.slackware.at/slackware-$version/slackware/kdei/*hr*.t?z > /dev/null 2>&1
    ;;

    "24" )
    echo
    echo "Hungarian selected"
    wget -c ftp://ftp.slackware.at/slackware-$version/slackware/kdei/*hu*.t?z > /dev/null 2>&1
    ;;
   
    "25" )
    echo
    echo "Indonesian selected"
    wget -c ftp://ftp.slackware.at/slackware-$version/slackware/kdei/*id*.t?z > /dev/null 2>&1
    ;;

    "26" )
    echo
    echo "Icelandic selected"
    wget -c ftp://ftp.slackware.at/slackware-$version/slackware/kdei/*is*.t?z > /dev/null 2>&1
    ;;
   
    "27" )
    echo
    echo "Italian selected"
    wget -c ftp://ftp.slackware.at/slackware-$version/slackware/kdei/*it*.t?z > /dev/null 2>&1
    ;;

    "28" )
    echo
    echo "Japanese selected"
    wget -c ftp://ftp.slackware.at/slackware-$version/slackware/kdei/*ja*.t?z > /dev/null 2>&1
    ;;
   
    "29" )
    echo
    echo "Kazakh selected"
    wget -c ftp://ftp.slackware.at/slackware-$version/slackware/kdei/*kk*.t?z > /dev/null 2>&1
    ;;

    "30" )
    echo
    echo "Khmer selected"
    wget -c ftp://ftp.slackware.at/slackware-$version/slackware/kdei/*km*.t?z > /dev/null 2>&1
    ;;
   
    "31" )
    echo
    echo "Kannada selected"
    wget -c ftp://ftp.slackware.at/slackware-$version/slackware/kdei/*kn*.t?z > /dev/null 2>&1
    ;;

    "32" )
    echo
    echo "Korean selected"
    wget -c ftp://ftp.slackware.at/slackware-$version/slackware/kdei/*ko*.t?z > /dev/null 2>&1
    ;;
   
    "33" )
    echo
    echo "Lithuanian selected"
    wget -c ftp://ftp.slackware.at/slackware-$version/slackware/kdei/*lt*.t?z > /dev/null 2>&1
    ;;

    "34" )
    echo
    echo "Latvian selected"
    wget -c ftp://ftp.slackware.at/slackware-$version/slackware/kdei/*lv*.t?z > /dev/null 2>&1
    ;;
   
    "35" )
    echo
    echo "Maithili selected"
    wget -c ftp://ftp.slackware.at/slackware-$version/slackware/kdei/*mai*.t?z > /dev/null 2>&1
    ;;

    "36" )
    echo
    echo "Macedonian selected"
    wget -c ftp://ftp.slackware.at/slackware-$version/slackware/kdei/*mk*.t?z > /dev/null 2>&1
    ;;
   
    "37" )
    echo
    echo "Malayam selected"
    wget -c ftp://ftp.slackware.at/slackware-$version/slackware/kdei/*ml*.t?z > /dev/null 2>&1
    ;;

    "38" )
    echo
    echo "Norwegian (Bokmaal) selected"
    wget -c ftp://ftp.slackware.at/slackware-$version/slackware/kdei/*nb*.t?z > /dev/null 2>&1
    ;;
   
    "39" )
    echo
    echo "Low Saxon selected"
    wget -c ftp://ftp.slackware.at/slackware-$version/slackware/kdei/*nds*.t?z > /dev/null 2>&1
    ;;

    "40" )
    echo
    echo "Dutch selected"
    wget -c ftp://ftp.slackware.at/slackware-$version/slackware/kdei/*nl*.t?z > /dev/null 2>&1
    ;;
   
    "41" )
    echo
    echo "Norwegian (Nynorsk) selected"
    wget -c ftp://ftp.slackware.at/slackware-$version/slackware/kdei/*nn*.t?z > /dev/null 2>&1
    ;;

    "42" )
    echo
    echo "Punjabi selected"
    wget -c ftp://ftp.slackware.at/slackware-$version/slackware/kdei/*pa*.t?z > /dev/null 2>&1
    ;;
   
    "43" )
    echo
    echo "Polish selected"
    wget -c ftp://ftp.slackware.at/slackware-$version/slackware/kdei/*pl*.t?z > /dev/null 2>&1
    ;;

    "44" )
    echo
    echo "Portuguese selected"
    wget -c ftp://ftp.slackware.at/slackware-$version/slackware/kdei/*pt*.t?z > /dev/null 2>&1
    ;;
   
    "45" )
    echo
    echo "Brasil selected"
    wget -c ftp://ftp.slackware.at/slackware-$version/slackware/kdei/*pt_BR*.t?z > /dev/null 2>&1
    ;;

    "46" )
    echo
    echo "Romanian selected"
    wget -c ftp://ftp.slackware.at/slackware-$version/slackware/kdei/*ro*.t?z > /dev/null 2>&1
    ;;
   
    "47" )
    echo
    echo "Russian selected"
    wget -c ftp://ftp.slackware.at/slackware-$version/slackware/kdei/*ru*.t?z > /dev/null 2>&1
    ;;

    "48" )
    echo
    echo "Sinhala selected"
    wget -c ftp://ftp.slackware.at/slackware-$version/slackware/kdei/*si*.t?z > /dev/null 2>&1
    ;;
   
    "49" )
    echo
    echo "Slovak selected"
    wget -c ftp://ftp.slackware.at/slackware-$version/slackware/kdei/*sk*.t?z > /dev/null 2>&1
    ;;

    "50" )
    echo
    echo "Slovenian selected"
    wget -c ftp://ftp.slackware.at/slackware-$version/slackware/kdei/*sl*.t?z > /dev/null 2>&1
    ;;
   
    "51" )
    echo
    echo "Serbian selected"
    wget -c ftp://ftp.slackware.at/slackware-$version/slackware/kdei/*sr*.t?z > /dev/null 2>&1
    ;;

    "52" )
    echo
    echo "Swedish selected"
    wget -c ftp://ftp.slackware.at/slackware-$version/slackware/kdei/*sv*.t?z > /dev/null 2>&1
    ;;
   
    "53" )
    echo
    echo "Tajik selected"
    wget -c ftp://ftp.slackware.at/slackware-$version/slackware/kdei/*tg*.t?z > /dev/null 2>&1
    ;;

    "54" )
    echo
    echo "Turkish selected"
    wget -c ftp://ftp.slackware.at/slackware-$version/slackware/kdei/*tr*.t?z > /dev/null 2>&1
    ;;
   
    "55" )
    echo
    echo "Ukrainan selected"
    wget -c ftp://ftp.slackware.at/slackware-$version/slackware/kdei/*uk*.t?z > /dev/null 2>&1
    ;;

    "56" )
    echo
    echo "Walloon selected"
    wget -c ftp://ftp.slackware.at/slackware-$version/slackware/kdei/*wa*.t?z > /dev/null 2>&1
    ;;

    "57" )
    echo
    echo "Simplified Chinese selected"
    wget -c ftp://ftp.slackware.at/slackware-$version/slackware/kdei/*zh_CN*.t?z > /dev/null 2>&1
    ;;
   
    "58" )
    echo
    echo "Chinese selected"
    wget -c ftp://ftp.slackware.at/slackware-$version/slackware/kdei/*zh_TW*.t?z > /dev/null 2>&1
    ;;

    "59" )
    echo
    echo "All kdei packages selcted"
    wget -c ftp://ftp.slackware.at/slackware-$version/slackware/kdei/*.t?z
    ;;

  esac

  if [ $lang != 0 ]; then
    echo -n "Installing localization... "
    installpkg -root $CHROOTDIR *.t?z > /dev/null 2>&1
    echo "DONE"
  fi
fi

# Download patches
echo -n "Downloading patches... "
mkdir -p $PATCHDIR
(cd $PATCHDIR
wget -c $PATCHES > /dev/null 2>&1)
echo "DONE"

# Install patches
echo -n "Patching Slackware... "
ROOT=$CHROOTDIR upgradepkg --reinstall --install-new $PATCHDIR/*.t?z > /dev/null 2>&1
echo "DONE"

# Copy host name and host partition table
echo -n "Configuring hostname and partition table... "
cp -a $HOSTFILE $CHROOTDIR/etc/hosts
cp -a $FSTABFILE $CHROOTDIR/etc/fstab
echo "DONE"

# Remove Slackware Packages
echo -n "Cleaning Cache... "
cd /tmp
rm -r $PKGDIR
echo "DONE"

echo "Finish!!!"

echo "+----------------------------------+"
echo "|  Thank you for using my builder  |"
echo "+----------------------------------+"

echo "#####################################################"
echo " If you want to start this chroot environment:"
echo " mount -o bind /proc $CHROOTDIR/proc"
echo " mount -o bind /dev $CHROOTDIR/dev"
echo " chroot $CHROOTDIR /bin/bash"
echo "#####################################################"

Changelog lun 23 ago 2010 21:14:50
Possibilità nativa di poter scegliere la versione da chrootare senza aprire lo script
Tre tipi di installazione disponibili
Localizzazioni disponibili a scelta compreso esclusione e inclusione dell'intera sezione kdei

Che ne pensate? :)
Ultima modifica di hashbang il mar ago 24, 2010 10:28, modificato 2 volte in totale.
Adoro il pragmatismo della lingua giapponese, è l'unica in cui per dire ad una ragazza che la ami le dici "suki". (cit.)
Avatar utente
hashbang
Packager
Packager
 
Messaggi: 1842
Iscritto il: ven giu 04, 2010 9:27
Località: Lecce
Nome Cognome: Luca De Pandis
Distribuzione: Windows 8.1 Pro

Re: Script per un chroot

Messaggioda hashbang » mar ago 24, 2010 10:00

metrofox ha scritto:Postalo anche se non funziona :D
Ora funziona tutto ;)

EDIT: Pensavo di sostituire il parametro
Codice: Seleziona tutto
if [ -d $PKGDIR/slackware.at/kdei ]; then
con
Codice: Seleziona tutto
if [ $type = F -o $type = f ]; then
che ne pensate?
Adoro il pragmatismo della lingua giapponese, è l'unica in cui per dire ad una ragazza che la ami le dici "suki". (cit.)
Avatar utente
hashbang
Packager
Packager
 
Messaggi: 1842
Iscritto il: ven giu 04, 2010 9:27
Località: Lecce
Nome Cognome: Luca De Pandis
Distribuzione: Windows 8.1 Pro

PrecedenteProssimo

Torna a Programmazione

Chi c’è in linea

Visitano il forum: Nessuno e 3 ospiti