Fórum Ubuntu CZ/SK
Ubuntu pro osobní počítače => Software => Příkazový řádek a programování pro GNU/Linux => Téma založeno: René Baran 26 Listopadu 2009, 20:09:37
-
Ahoj,
mam dotaz. Na NETu jsem si nasel par programu pro instalaci a byly ve formatu SH (shell skript). Vim, ze lze udelat RPM, DEB nebo pomoci programu GlassWorks JAR soubor. Ale SH netusim jak. Poradi mi nekdo jak udelat instalacni soubor s priponou sh?
Moc dik za kazdou radu
Renek
-
Zdravím,
snad pomůže:
http://ubuntuforums.org/showthread.php?t=282827 (http://ubuntuforums.org/showthread.php?t=282827)
-
a proc to nenainstalujes pomoci te binarky?
-
Ahoj,
no asi jsem to spatne vysvetlil. Pokud mam jiz z netu stahly binarni balicek, tak nemam potrebu jej prevadet (pokud neprevadim DEB na RPM). A nainstaluji si jej. Jde o to, ze obcas potrebuji preposlat neco sveho vlastniho, jako automatickou instalaci. RPM je vazano na RPM balickovaci system, DEB zase vazan na DEB balickovaci system (ne kazdy umi prevadet pomoci utility alien rpm na deb a naopak). SH je spustitelny na lib. distribuci. Ten SH skript ma ve strukture cast prikazovou a cast pak v hexadecimalni podobe nebo nejake binarni forme. Takovou instalaci ma napr. Java NetBeans (instalaci vyvoj. prostredi). Vypada to uvnitr asi takto (ukazka instalatoru programu GlassWork):
Dekuji.
(http://forummages.remontsw.eu/shinstall.png)
-
Zdravím Vás, René,
podle toho co píšete a pochopil jsem-li Vás správně, je návod na vytvoření takového scriptu zde :
http://www.linuxjournal.com/content/add-binary-payload-your-shell-scripts
Přiznám se , bez mučení, že mne nikdy nenapadlo použít shell script jako container pro instalovanou binárku. Pokud budete úspěšný, dejte sem, prosím, Vaše řešení za účelem vzdělání mas (dík ;) )...
Btw, měl jste tady thread týkající se komunikace přes RS232. Byl jste úspěšen ?
-
Džejfůt: Rač se podívat třeba na instalačku ovladače nVidia (soubor*.run), kterej lze stáhnout z jejich serveru- je to obyčejnej shellovej skript, v němž je zakomponovaná binárka. Toho jsem si všimnul i u jiných souborů *.run ;)
-
Zdravim,
psal jsem ohledne komunikace se seriovym portem i na jina fora (builder.cz ...). Tam mi poradili nastavit si jiny timeout. Jeste jsem to neestoval. To zarizeni nemam u sebe (ma ho kolega, je to jeho zarizeni jako soucast diplomky).
http://forum.builder.cz/read.php?24,3092026
Kamaradi., co se zivi obdobnym zpúusobem mi rekli, ze to programuji v pythonu. Uvidime ... jeste jsem netestoval.
R.
-
Zdravim,
ten navod jsem mirne upravil (parametry dekomprese tar ...) a fungujeeeeeeeeeeeeee :-))))))) Moc vsem dekuju.
Renek
-
Džejfůt :D zdraví Romana Horníka,
Džejfůt: Rač se podívat třeba na instalačku ovladače nVidia (soubor*.run), kterej lze stáhnout z jejich serveru- je to obyčejnej shellovej skript, v němž je zakomponovaná binárka. Toho jsem si všimnul i u jiných souborů *.run ;)
Dík za info, toť názorný příklad , jak jedinec (zde já) dokáže žít v zajetí svých zažitých stereotypů, zde instalačních...Info tohoto threadu je pro mě přínos. Dík.
Zdravím Reného Barana,
Zdravim,
psal jsem ohledne komunikace se seriovym portem i na jina fora (builder.cz ...). Tam mi poradili nastavit si jiny timeout. Jeste jsem to neestoval. To zarizeni nemam u sebe (ma ho kolega, je to jeho zarizeni jako soucast diplomky).
http://forum.builder.cz/read.php?24,3092026
Kamaradi., co se zivi obdobnym zpúusobem mi rekli, ze to programuji v pythonu. Uvidime ... jeste jsem netestoval.
R.
Dík za ten odkaz, já to testnu...
-
Zdravim.
Zde je upraveny soubor install.sh.in. Je odzkousen a funkcni. Kdyztak lze jeste upravit pro dekompresi do ciloveho adresare.
============== install.sh.in =======================
#!/bin/bash
uuencode=1
binary=0
function untar_payload()
{
match=$(grep --text --line-number '^PAYLOAD:$' $0 | cut -d ':' -f 1)
payload_start=$((match + 1))
if [[ $binary -ne 0 ]]; then
tail -n +$payload_start $0 | tar xvfz -
fi
if [[ $uuencode -ne 0 ]]; then
tail -n +$payload_start $0 | uudecode | tar xvfz -
fi
}
read -p "Install files? " ans
if [[ "${ans:0:1}" || "${ans:0:1}" ]]; then
untar_payload
# Do remainder of install steps.
fi
exit 0
=====================================
Dekuji moc za pomoc.
Renek (Monty)
-
Zdravím René Barana,
Zdravim.
Zde je upraveny soubor install.sh.in. Je odzkousen a funkcni. Kdyztak lze jeste upravit pro dekompresi do ciloveho adresare.
OK. Dik K+
-
Zdravim.
Jen drobnost. Zkusil jsem zabudovat do "install.sh.in" nejaky ten dialog. Take to funguje. Jen je potreba davat pozor na regulernost syntaxe u dekomprese.
================== UKAZKA install.sh.in ====================
#!/bin/bash
uuencode=1
binary=0
function untar_payload()
{
match=$(grep --text --line-number '^PAYLOAD:$' $0 | cut -d ':' -f 1)
payload_start=$((match + 1))
if [[ $binary -ne 0 ]]; then
your_target=`cat cil.txt`
tail -n +$payload_start $0 | tar xvfz - --directory=$your_target
fi
if [[ $uuencode -ne 0 ]]; then
your_target=`cat cil.txt`
tail -n +$payload_start $0 | uudecode | tar xvfz - --directory=$your_target
fi
}
dialog --backtitle "INSTALACE ..." \
--title "" \
--yesno "Chcete pokračovat v instalaci?" 6 25
return_choice=$?
clear
if [ $return_choice == "0" ]
then
dialog --backtitle "INSTALACE ..." \
--title "" \
--msgbox "\nVítejte v instalaci ...\n" 7 35
clear
dialog --backtitle "INSTALACE ..." --title "Zedej cílový sh skript včetně cesty" --no-shadow --inputbox "Cíl:" 0 0 "" 2> cil.txt
clear
untar_payload
rm cil.txt
# Do remainder of install steps.
else
dialog --title "" \
--msgbox "\nAkce byla zrušena !" 7 35
clear
fi
exit 0
===================================================
(http://forummages.remontsw.eu/dialog1.png)
(http://forummages.remontsw.eu/dialog2.png)
(http://forummages.remontsw.eu/dialog3.png)
Nejspis bude fungovat i gdialog nebo zenity. Ale to jsem nezkousel. Nechal jsem jen shell dialog.
Renek