Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
DIFFICILE: Includere binario in uno script.
View unanswered posts
View posts from last 24 hours
View posts from last 7 days

 
Reply to topic    Gentoo Forums Forum Index Forum italiano (Italian) Forum di discussione italiano
View previous topic :: View next topic  
Author Message
gioi
Apprentice
Apprentice


Joined: 14 Feb 2006
Posts: 236

PostPosted: Tue Oct 02, 2007 9:10 am    Post subject: DIFFICILE: Includere binario in uno script. Reply with quote

Salve a tutti,

stavolta la domanda è davvero difficile...

Ho la necessità di creare uno script autoinstallante che contenga al suo interno un binario (un modulo del kernel) ed uno script per caricarlo.

creare il secondo script dall'interno dello script di installazione è abbastanza semplice, ma il file binario?

So che è possibile e sono in molti a farlo (mi viene in mente il pacchetto di auto-installazione di nvidia), ma come si fa?

Qualche idea?

Grazie!
_________________
--
My blog http://gioitech.wordpress.com
Back to top
View user's profile Send private message
randomaze
Bodhisattva
Bodhisattva


Joined: 21 Oct 2003
Posts: 9985

PostPosted: Tue Oct 02, 2007 9:32 am    Post subject: Re: DIFFICILE: Includere binario in uno script. Reply with quote

gioi wrote:
Ho la necessità di creare uno script autoinstallante che contenga al suo interno un binario (un modulo del kernel) ed uno script per caricarlo.


Se non ricordo male:

Code:
app-arch/sharutils


a te l'onere di leggere la documentazione...
_________________
Ciao da me!
Back to top
View user's profile Send private message
gioi
Apprentice
Apprentice


Joined: 14 Feb 2006
Posts: 236

PostPosted: Tue Oct 02, 2007 9:48 am    Post subject: Reply with quote

Grazie mille...

Vado immediatamente...
_________________
--
My blog http://gioitech.wordpress.com
Back to top
View user's profile Send private message
cloc3
Advocate
Advocate


Joined: 13 Jan 2004
Posts: 4815
Location: http://www.gentoo-users.org/user/cloc3/

PostPosted: Wed Oct 03, 2007 12:17 am    Post subject: Reply with quote

ho fatto alcuni tentativi nubbi con il costrutto << di bash, ma si stampava inesorabilmente sul codice binario.
allora ho provato ad usare gli archivi cpio ed è venuta una cosina che mi sembra abbastanza elementare.

esempio d'uso:
Code:

 ./crea_installer.sh programma_binario file_installato

programmino:
Code:

cloc3@s939 ~/ls $ cat crea_installer.sh
#!/bin/bash

# genera lo script
cat <<- EOF >install.sh
#!/bin/bash
 dd if=./install.sh bs=xxx skip=1 2>/dev/null |cpio -i -H newc --to-stdout >$2
 chmod +x $2
 exit
EOF

# determina la lunghezza dello script
fs='/'
nc=$(cat ./install.sh|wc -c)
sed_line='s/xxx/'${nc}${fs}
sed -i $sed_line ./install.sh

# incolla il binario
echo $1|cpio -o -H newc >>install.sh
chmod +x ./install.sh

test:
Code:

cloc3@s939 ~/ls $ ./crea_installer.sh `which ls` file_installato
179 blocks
cloc3@s939 ~/ls $ ./install.sh
179 blocks
cloc3@s939 ~/ls $ diff `which ls` file_installato
cloc3@s939 ~/ls $


naturalmente è facile modificare il codice per la compressione del binario.
nota: attenti al taglia incolla! a me aggiunge un carattere di spaziatura dopo EOF che ha esiti deleteri.
_________________
vu vu vu
gentù
mi piaci tu
Back to top
View user's profile Send private message
drizztbsd
Retired Dev
Retired Dev


Joined: 21 Nov 2004
Posts: 278
Location: Cesano Maderno

PostPosted: Wed Oct 03, 2007 8:23 am    Post subject: Reply with quote

come complicarsi la vita (inutilmente) e vivere felici?

Code:
drizzt@janeway ~ $ cat create_installer.sh
#!/bin/sh

echo '#!/bin/sh' > installer.sh
echo 'tail -n +5 "$0" | bunzip2 > '"\"$2\"" >> installer.sh
echo 'chmod +x '"\"$2\"" >> installer.sh
echo 'exit 0' >> installer.sh
bzip2 -9c "$1" >> installer.sh
chmod +x installer.sh


Così è pure POSIX sh e va su ogni macchina che abbia sh (e non per forza bash)

Edit:
  • Aggiunto il chmod +x (vedi commento successivo)
  • Sistemato il codice per essere compatibile con file con spazi

_________________
Gentoo/Alt lead
Gentoo/*BSD and Gentoo/FreeBSD deputy lead
Paludis contributor


Last edited by drizztbsd on Wed Oct 03, 2007 1:46 pm; edited 2 times in total
Back to top
View user's profile Send private message
cloc3
Advocate
Advocate


Joined: 13 Jan 2004
Posts: 4815
Location: http://www.gentoo-users.org/user/cloc3/

PostPosted: Wed Oct 03, 2007 9:20 am    Post subject: Reply with quote

drizztbsd wrote:
come complicarsi la vita (inutilmente) e vivere felici?


che bello.
così bene non ci sarei riuscito lo stesso.
ma io avevo scartato in principio questo tipo di percorso perché non sapevo proprio usare tail con il +4.
adesso che è tardi me lo spiego:
man tail wrote:

-n, --lines=N
output the last N lines, instead of the last 10; or use +N to output lines starting with the Nth

diffettuccio. manca una riga `chmod + x $2` in installer.sh
_________________
vu vu vu
gentù
mi piaci tu
Back to top
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index Forum italiano (Italian) Forum di discussione italiano All times are GMT
Page 1 of 1

 
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