Newsgroup: it.comp.os.linux.ubuntu
Titolo: Chiusura finestra gdebi-gtk

C'ï¿œ un modo per non far apparire o disattivare (o chiudere) 
automaticamente la finestra 'Installazione terminata', quando si 
installa un pacchetto .deb in Ubuntu Linux 10.04 senza cliccare nella 
casella in questione ogni volta?
Ogni volta che devo installare un pacchetto .deb, devo cliccare anche 
sulla casella 'Chiudere automaticamente applicate le modifiche', 
immagine di esempio su 
http://img408.imageshack.us/i/chiusurafinestragdebigt.jpg/
Ciao.
-- 
Notebook Acer 1652: - CPU: Centrino 1,7 GHz - RAM: 1 GB DD2 - HD: 100 GB 
E-IDE - SO: Windows XP Home SP3 OEM + aggiornamenti

 
http://img408.imageshack.us/i/chiusurafinestragdebigt.jpg/
ti riferisci a gdebi? ovvero a pacchetti scaricati da internet (non 
con synaptic)?
è una cosa che dà fastidio anche a me
comunque il programma è scritto in python (ovvero è un file di testo) 
facilmente modificabile
ora che mi hai messo la pulce nell'orecchio gli darò un'occhiata e se 
si può risolvere facilmente la soluzione la posto qui
ok... ancora più semplice di quanto immaginavo
dal terminale:
1) gksu gedit /usr/share/applications/gdebi.desktop
    questo ti permette di modificare il file gdebi.desktop
    (che descrive l'interfaccia con il programma gdebi) con
    i privilegi di utente
2) nel file c'è la riga:
    Exec=gdebi-gtk
    modificala in:
    Exec=gdebi-gtk --auto-close
purtroppo non ho pacchetti da installare sottomano, ma guardando 
meglio il sorgente temo che con questa opzione il pacchetto venga 
automaticamente installato (ovviamente se sono già soddisfatte tutte 
le dipendenze) e poi la finestra di gdebi automaticamente chiusa
ok... appena ho più tempo vedrò cosa si può fare, ma temo che la cosa 
non sia così immediata come sembrava...
è proprio l'interfaccia sbagliata, il checkbox autoclose andrebbe 
nella finestra principale o in un dialogo di opzioni
del resto i messaggi mostrati nel terminale sono interessanti solo nel 
caso sia richiesto l'intervento dell'utente, e questo succede anche 
con l'autoclose, o che si verifichi qualche errore che dovrebbe essere 
mostrato anche in caso di autoclose...
-- 
bye
main(){printf("%u\n",!(!1|1));}

 Exec=gdebi-gtk --auto-close
Fin qui, tutto OK.
Ma comunque, quando clicco su un file .deb per eseguire l'installazione, 
alla fine devo sempre cliccare sulla casella "Chiudere automaticamente 
applicate le modifiche", per chiudere quella noiosa finestra.
Un'altra cosa, ï¿œ possibile eliminare anche la finestra che mi chiede di 
inserire la password di root (o del mio account), ogni volta che devo 
installare un file .deb?
Ciao e grazie.


 installare un file .deb?
credo dovresti modificare il file sudoers (man sudoers e man visudo)
oppure puoi provare da pannello:
Sistema - amministrazione - autorizzazioni
nella finestra: packagekit/Installazione file locale privo di fiducia 
e Installazione pacchetto firmato
eventualmente anche Cambio parametri sorgente software, aggiornamento 
pacchetti e tutto quello che ti interessa
Poi accanto al box Autorizzazioni esplicite clicca sul bottone (su 
ubuntu 9.10 ce l'ho in inglese) Grant e aggiungi il nome con cui sei 
registrato come utente
però non l'ho mai usato e non so se in pratica funziona
su 
http://www.packagekit.org/
 dovrebbero esserci maggiori informazioni


 perï¿œ non l'ho mai usato e non so se in pratica funziona


 Di preciso, cosa dvrei modificare?
da riga di comando:
yelp man:sudoers
e
yelp man:visudo
personalmente non ho mai avuto occasione di usarli
credo che ti converrebbe definire un alias per i comandi di
installazione dei pacchetti:
per esempio (le righe potrebbero essere spezzate dal programma di email):
su una sola riga:
Cmnd_Alias INSTALLTOOLS=/usr/bin/dpkg*,
         /usr/bin/apt*,/usr/bin/gdebi,/usr/sbin/synaptic
così INSTALLTOOLS dovrebbe definire tutti programmi usati per
l'installazione dei pacchetti (non so se ho dimenticato qualcosa)
poi in un'altra riga
tuo-nome-utente nome-host = NOPASSWD: INSTALLTOOLS
per il nome host se non sei sicuro vedi in /etc/hosts
(cat /etc/hosts)
se invece vuoi usare i nuovi tool da interfaccia grafica ho visto che
devi installare dei pacchetti (credevo fossero installati di default)
cerca con Gestore pacchetti (synaptic) 'Policykit'
ti converrebbe installare:
policykit
policykit-doc
policykit-gnome
policykit-gnome-doc
e le relative dipendenze
infine se proprio non ti piace gdebi, ma vuoi comunque continuare a
installare pacchetti cliccando sulle icone puoi anche crearti dei file
di testo con estensione .desktop e associarli ai pacchetti deb
mettendo in uno come Exec dpkg -i (per installare direttamente il
pacchetto) e in un altro dpkg -I (per mostrare informazioni sul
pacchetto)... il tutto verrebbe sempre eseguito nel terminale ma nel
primo caso con un doppio click sull'icona .deb nel secondo
selezionando da menu la voce relativa...
non so se ci sia in rete un tutorial in proposito (fai una ricerca con
google)...
io ho dedotto il tutto (e utilizzato da tempo per altri scopi)
guardando gli altri file .desktop... la maggior parte sono in 
/usr/share/applications...


purtroppo ho verificato che quanto ho suggerito nel precedente 
messaggio non funziona
da un lato sudo (sudoers, visudo) non si comporta come dovrebbe perché 
l'accesso come amministratore viene chiesto anche se in fondo al file 
metto:
utente* ALL=(ALL) ALL
(*) ovviamente a utente ho sostituito il mio nome utente
il che mi lascia alquanto perplesso
dall'altro pare che policykit sia ancora in fase di 'evoluzione', e 
forse neanche con i pacchetti che ho suggerito di installare si 
risolverebbe la questione
personalmente non ho mai avuto la necessità di cambiare i privilegi e 
al momento non ho tempo per investigare ulteriormente, ma spero che 
qualcun altro con maggiore esperienza in proposito possa darti la 
dritta giusta



Grazie, vuol dire che la finestra la dovrï¿œ chiude manualmente ogni volta 
che installo un pacchetto .deb, singolo come NeroLinux o Acrobat.
Ciao e speriamo che nelle prossime versioni di Linux, facciano qualcosa 
di utile.


 di utile.
prova con il seguente sistema per evitare sia la richiesta della 
password che di dover chiudere la finestra:
da terminale:
    sudo visudo
questo ti aprirà il file sudoers in vi
in fondo al file inserisci la riga
nome-utente ALL=NOPASSWD: /usr/bin/dpkg
ovviamente al posto di 'nome-utente' devi scrivere il nome con cui sei 
registrato in ubuntu
salva il file e esci
ora sempre da terminale:
gedit /usr/share/applications/gdebi.desktop
salva subito il file come ~/.local/share/applications/packinst.desktop
in questo modo eviti di sovrascrivere il file originale e il file 
dovrebbe essere visto nel menu delle applicazioni
ora modifica le seguenti voci nel file (le voci che terminano con * 
modificale come ti pare):
Name=Installatore pacchetti*
GenericName=Installatore pacchetti*
Comment=Installa i pacchetti senza chiedere password
Exec=sudo dpkg -i
Terminal=true
di nuovo da terminale:
chmod +x ~/.local/share/applications/packinst.desktop
ora devi associare l'oggetto .desktop che hai creato con i pacchetti deb:
gedit ~/.local/share/applications/mimeapps.list
in fondo al file aggiungi:
application/x-deb=packinst.desktop
application/x-debian-package=packinst.desktop
ora devi cambiare le impostazioni del terminale per evitare che la 
finestra venga chiusa senza darti la possibilità di leggere il 
risultato dell'installazione:
dal menu del terminale:
Modica -> Preferenze del profilo
Nel dialogo seleziona la tab Titolo e comando
Vai in fondo alla dicitura: Quando il comando termina e seleziona 
Mantieni aperto il terminale
Ora nel menu contestuale di un pacchetto deb dovresti avere come prima 
voce il nome dell'oggetto programma che hai creato e puoi installare 
pacchetti deb senza password e conferme
fammi sapere se funziona


 fammi sapere se funziona
Oggi pomeriggio, se posso faccio un'altra prova con Ubuntu Linux 10.04 
installato all'interno di VirtualBox 3.2 su Windows XP come sistema 
principale del portatile Acer.
In ogni caso, se non oggi, comunque ti faccio sapere quando ho potuto 
provare quest'altra tua soluzione.
Ciao.


Il metodo che ho descritto nel precedente post ha lo svantaggio che ti 
installa qualsiasi cosa senza chiedere conferma
se vuoi un po' di sicurezza puoi usare questo script che ti visualizza 
prima qualche informazione sul pacchetto deb, ti chiede conferma per 
l'installazione e ti mostra l'output in una finestra:
salva lo script come ti pare e sostituisci il nome e il percorso dello 
script al valore di Exec= (vedi precedente post)
--------------8<----taglia----------8<-----------
#!/bin/bash
TITLE="--title=Installatore di pacchetti deb"
WIDTH=--width=600
HEIGHT=--height=400
ASK_INST="Si vuole installare il pacchetto:
`basename $1`?"
HELP_TEXT="Installatore di pacchetti deb
Uso:
    debinst.sh <pacchetto-deb>
    dove pacchetto-deb è il nome di un file .deb"
INST_DONE="
----- Installazione conclusa! -----"
if [ ! "$1" ]
then
    echo "$HELP_TEXT" | zenity --text-info "$TITLE" $WIDTH $HEIGHT
    exit 2
fi
# mostra i dati del pacchetto:
dpkg -I $1 | zenity --text-info "$TITLE" $WIDTH $HEIGHT
# chiede conferma per l'installazione
zenity --question --text="$ASK_INST" "$TITLE"
if [ $? -eq 0 ]
then
    { sudo dpkg -i $1 && echo "$INST_DONE" 2>&1
    } | zenity --text-info "$TITLE" $WIDTH $HEIGHT
fi
--------------8<----taglia----------8<-----------
forse non è il massimo, ma non avevo mai usato zenity né ho mai 
programmato nel linguaggio della shell... visto che avevo un'oretta 
libera mi sono divertito ad esplorare qualcosa di nuovo
certo con python avrei potuto fare di meglio, anche rispetto a gdebi, 
per esempio controllare ricorsivamente le dipendenze e se ci sono 
dipendenze non soddisfatte chiedere se i pacchetti sono da qualche 
parte sul disco o se si devono scaricare da internet...
magari quando ho voglia di perdere un'altra mezz'ora... :-)



Grazie, provo anche quest'altra soluzione.
Ciao.




Ciao, sto provando la tua soluzione, quando do questo comanda da 
terminale, chmod +x ~/.local/share/applications/packinst.desktop compare 
il seguente messaggio:
chmod: impossibile accedere a 
`/home/vito/.local/share/applications/packinst.desktop': Nessun file o 
directory
Cosa devo fare?




Ho provato, ma per il momento non sta funzionando.
Richiede sempre la password e la finestra non si chiude automaticamente.
Provo con l'altra soluzione.
Ciao.


 fi
Ciao, ma non sta funzionando nemmeno quest'altra soluzione, ï¿œ sempre 
tutto come prima.
Grazie ancora.


 Provo con l'altra soluzione.
mi pare avessi scritto che stavi provando in una macchina virtuale
ma hai modificato il file suoders nella macchina virtuale con
sudo visudo
?
non è che hai lasciato scritto "nome-utente" invece di scrivere il 
*tuo* nome utente?
i passaggi che ti ho descritto li ho provati (su ubuntu 9.10) e hanno 
funzionato alla perfezione... non credo che con ubuntu 10.04 abbiano 
disabilitato del tutto sudoers
ok... ho provato su lucid e tutto funziona come previsto
probabilmente non è corretto quello che hai scritto in sudoers



Cortesemente, non � che potresti inviarmi il tuo file, per vedere dove 
ho sbagliato?
Vorrei capire dove sta l'eventuale problema, in questo modo posso farti 
capire perch� non funziona ed evitare di farti perdere tempo.


 ho sbagliato?
appena ho un po' di tempo lo riprovo in una macchina virtuale e te lo 
allego uuencodato



Ti ringrazio!
Nel frattempo faccio qualche altra prova, per vedere se ci riesco.


 Nel frattempo faccio qualche altra prova, per vedere se ci riesco.
ok... il sistema appena installato è diverso dal mio sistema tipico 
quindi ci sono da fare alcuni aggiustamenti
per convenienza ripeto dal principio la procedura
uuencodo le istruzioni per evitare che i programmi di email convertano 
qualche carattere dello script
begin 644 packinst.txt.bz2
M0EIH.3%!629361&:7;T  1S?E&&0?>__WZ[OSLK_[___ & ( % $JFV9>;(=
M,@K3N$IJF31-4]DT1Z4_(D\29D)M(:8C)H/)/4:-- 9I T)II-"G@H&1H#0
M  &@    $B(329)II/":!3-J0VH#0&@:- !H 9!QDR:- :-,1D:&(8$T:8@Q
M&@P@ ,$J:01J>4V4>A&1ZAH,FFC$Q!IDR,(P@]3U-&1E("$#<6K[=?4;"R_&
M>D[-TNLVJ*70^0DZB#/HZ%MNC[V=V3NEB]#A6SB,R+ !&)G=1Y@HJU.@Q)9.
MC4T&X0H1T-ZE\LA'@!G@"!(TXZB1-=YY8<[0:M^#3-^@LP\RDIV>S%/AA/GL
MMY7=9+CLK/ONQ>6=)T=2X$0C.V#J(YW&)$O1-P@IQI0B?:VQCY[#<%X>)Z)E
M3&J CE],::.$B*9*V"LIDQ3(H4]-)'I W V07)GQ6)8T0J_1Q:91N14_#L/V
M)K<'][1V;FMUV=+OP/FO[FC) U9T$\5J"&38&B+B$F0R;&N.R+H_=/IMX?CI
MT:-.FJ@HQK#T#,P=0VZFL4BD6^B-\2B<.O%C9.+XJO$H*''.6M9>+[% >G0]
M"QCXO#!..)!;F5)
1XR.CG
[_F7,ZPV;'LA@:!K;5EZ)D?3N=FIVL@-.^M9FZ7
M<]JM-,_L<Y>+?YL+N"N2!>]]8:(PT@E?\^9#&$N$(XD70%41UZ6", ^I:)]A
MRS B"8-MRE"?U>%Y!!)!^4HC='&_@2 (F3VCGD^^9DI#3V\NC]N=5\XXW&8;
M@PUHL0<7%%'+L-Q)QRN*S$9#IDR_._R.WXL6MGY_!/M/^%^*[=U#6J';@ O
M04I#>CM=0UXZU 8IG!VZ4$K^'@DRKN][52J6HKO-<Y"K_7/#:D<V*626;7P<
MD9,MY*684AT7D32*I$;]"18L=A6R+5V/Q-&PN1>\WHO<F.#'YHA#YG*9FPN=
MA!UE&0:]4%-<<^[=<VX>"U;3WJZH)K$54*7CLA=&53 ;5$X-[7?Z(H1,5;R$
M-KS9$D\NG2"FEZAE#TW:KH$\!61A!!UI*@#JOKN?$6Z[+"U;5 @NQ(=I#!98
M$%!2G'0$QV$,((,N0*4:7A[$:S)IZ(73?94E)=?MUG;5M6:Z>C1(:2E^'7OR
MW$OO13.(J$-B(237"-F.6Q]@IBF(JIH&)B= H4ZU*^!(HF'MLM@&<]M=^9@Q
MB"8H"]9#;=#R!<#QE)D"$UB'8MK'U0C7J)#.0:"*/JBC4LTSF@T)';6PC"U$
M^JFEAF9Q@78VH(.1WMO[+KT&/7@KW**,W$0-Y$P#%ZKI*K6D.&6F***IA0Y?
MFBP6$70W;!HHU'CBU8.&1ZBV]%#?.AQ.<FOG@JL)VK"ERG WC,^[,I2$H-,$
M,'F':T;6>#DSERA3WP=4!J1M&UF''&(+0/'Y&8X<8R00BBG84ZC1$*3AWB35
M=C4.$UN.G T8LPPE7P&4"@XN# [=R*!COY0*T0$L4%&4'&&)7@?K.@MDE4I
M;(J:AWEK$C2<5*3WXW>OB*PCNQJC30U!F4WA7;W%,DZ.%&?;&AI%\K85@.X+
M(X%"_$ZB^T%-/G \#3+R R04E?JMM;BAP-]PXG5OMQ)"@P$U<$D3DDHZ>6*5
<C>E8F"\9EQ&&<P4-8(8_PL7_%W)%.%"0$9I=O0
end
graficamente non è il massimo perché viene aperto un terminale e una 
serie di dialoghi creati tramite zenity, il primo ti mostra i dettagli 
del pacchetto, poi segue la richiesta di conferma per l'installazione 
e poi l'installazione vera e propria
eventualmente potrei farti un equivalente più decente e funzionale in 
python
