Autore Topic: Chiamare apt update e apt upgrade da shell  (Letto 5221 volte)

Offline Andreone

  • Gamberetto
  • *
  • Post: 25
    • Mostra profilo
Chiamare apt update e apt upgrade da shell
« il: 31 Luglio 2016, 09:21:00 »
Buona giornata
Ho inserito in un form gambas un pulsante
Ora voglio che cliccando il pulsante si apre il terminale e viene avvia il comanda apt-get update e dopo apt-get upgrade
il problema è che prima cerca ovviamente la password per avviare apt-get update ma appena arriva a apt-get upgrade di nuovo mi ricerca la password cosa che non dovrebbe cercarla perchè lo inserita prima

  Shell "x-terminal-emulator -e sudo apt-get update && sudo apt-get upgrade" Wait
  Message.Info("Aggiornamento andato a buon fine!")

Come faccio in modo che esegue tutte e 2 i comandi e inserisco la password solo la prima volta ?

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.683
  • Ne mors quidem nos iunget
    • Mostra profilo
Re:Chiamare apt update e apt upgrade da shell
« Risposta #1 il: 31 Luglio 2016, 16:31:16 »
Potresti provare l'alternativa presente in questo paragrafo della seguente pagina della nostra WIKI:

http://www.gambas-it.org/wiki/index.php?title=Inserire_le_password_per_lanciare_comandi#Uso_di_sudo
« Chiunque, non ricorrendo lo stato di necessità, nel proprio progetto Gambas fa uso delle istruzioni Shell o Exec, è punito con la sanzione pecuniaria da euro 20,00 a euro 60,00. »

Offline Andreone

  • Gamberetto
  • *
  • Post: 25
    • Mostra profilo
Re:Chiamare apt update e apt upgrade da shell
« Risposta #2 il: 31 Luglio 2016, 16:54:44 »
Stesso problema, cerca la password quando esegue il comando apt-get upgrade cosa che non voglio che la cerca se l' ho inserita prima

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.683
  • Ne mors quidem nos iunget
    • Mostra profilo
Re:Chiamare apt update e apt upgrade da shell
« Risposta #3 il: 31 Luglio 2016, 16:54:58 »
...intendo dire la seconda parte compresa nel sotto-paragrafo:
Senza far aprire la finestra del Terminale per l'inserimento della password
(in particolare vedi l'ultimo esempio del sotto-paragrafo)


Faccio qui un esempio semplicissimo con il quale si eliminerà (limitatamente alla corrente sessione) la protezione ad un paio di file-device:
Codice: [Seleziona]
Public Sub Button1_Click()

  Dim s As String

' Il programma resta in attesa che venga scritta nella console ed inviata la password dell'utente:   
    Input s
   
  Shell "echo " & s & " | sudo -S chmod 666 /dev/tty1 && sudo -S chmod 666 /dev/tty2" Wait

End
« Ultima modifica: 31 Luglio 2016, 16:57:35 da vuott »
« Chiunque, non ricorrendo lo stato di necessità, nel proprio progetto Gambas fa uso delle istruzioni Shell o Exec, è punito con la sanzione pecuniaria da euro 20,00 a euro 60,00. »

Offline Andreone

  • Gamberetto
  • *
  • Post: 25
    • Mostra profilo
Re:Chiamare apt update e apt upgrade da shell
« Risposta #4 il: 31 Luglio 2016, 16:57:42 »
Dovrebbe aprirsi il terminale ed quando si apre il terminale richiede la password da inserire e poi deve eseguire i comandi
apt-get update ed apt-get upgrade senza richiedere di nuovo la password
« Ultima modifica: 31 Luglio 2016, 17:00:46 da Andreone »

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.683
  • Ne mors quidem nos iunget
    • Mostra profilo
Re:Chiamare apt update e apt upgrade da shell
« Risposta #5 il: 31 Luglio 2016, 17:03:41 »
Dovrebbe aprirsi il terminale ...
Dunque tu preferisci che il Terminale si debba aprire per inserire la password ?
« Chiunque, non ricorrendo lo stato di necessità, nel proprio progetto Gambas fa uso delle istruzioni Shell o Exec, è punito con la sanzione pecuniaria da euro 20,00 a euro 60,00. »

Offline Andreone

  • Gamberetto
  • *
  • Post: 25
    • Mostra profilo
Re:Chiamare apt update e apt upgrade da shell
« Risposta #6 il: 31 Luglio 2016, 17:05:43 »
si, esattamente
aprirsi il terminale, inserire la password ed eseguire i comandi senza che poi richiede di nuovo la password

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.683
  • Ne mors quidem nos iunget
    • Mostra profilo
Re:Chiamare apt update e apt upgrade da shell
« Risposta #7 il: 31 Luglio 2016, 17:09:44 »
si, esattamente
aprirsi il terminale, inserire la password ....

Capisco....

esisterebbe - in vero - una modalità nativa di Gambas per fare quello che vuoi, presente nella Classe Desktop, sfruttando in paricolare il suo metodo  .RunAsRoot( ) .

Si tratta di attivare i Componenti gb.desktop e gb.desktop.x11.

Puoi vedere una breve esposizione nel primo paragrafo della pagina della nostra WIKI che t'ho segnalato:
http://www.gambas-it.org/wiki/index.php?title=Inserire_le_password_per_lanciare_comandi#Utilizzo_della_funzione_Gambas:_Desktop.RunAsRoot


Provala, però credo ci sia attualmente un bug (dovrò segnalarlo a Minisini ): a me da un errore.
Fammi sapere.


Ah.... devi tenere installato nel sistema il Terminale xterm  !
« Ultima modifica: 31 Luglio 2016, 17:12:39 da vuott »
« Chiunque, non ricorrendo lo stato di necessità, nel proprio progetto Gambas fa uso delle istruzioni Shell o Exec, è punito con la sanzione pecuniaria da euro 20,00 a euro 60,00. »

Offline Andreone

  • Gamberetto
  • *
  • Post: 25
    • Mostra profilo
Re:Chiamare apt update e apt upgrade da shell
« Risposta #8 il: 31 Luglio 2016, 17:17:14 »
Ho scritto il codice così

Dim S As String
S = InputBox("Immetti password di root")
Shell "echo " & s & " | sudo -S chmod 666 apt-get update && sudo -S chmod 666 apt-get upgrade" Wait

Ma non vedo quando finisce

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.683
  • Ne mors quidem nos iunget
    • Mostra profilo
Re:Chiamare apt update e apt upgrade da shell
« Risposta #9 il: 31 Luglio 2016, 17:26:19 »
Ho scritto il codice così
........
Ma non vedo quando finisce

Uhmmm.... prova a gestire il processo di quel comando.

Ossia similmente a quanto ho mostrato in quest'altra discussione:
http://www.gambas-it.org/smf/index.php?topic=5038.msg38728#msg38728


Però forse non potrai usare il Wait !
« Ultima modifica: 31 Luglio 2016, 17:33:04 da vuott »
« Chiunque, non ricorrendo lo stato di necessità, nel proprio progetto Gambas fa uso delle istruzioni Shell o Exec, è punito con la sanzione pecuniaria da euro 20,00 a euro 60,00. »

Offline Andreone

  • Gamberetto
  • *
  • Post: 25
    • Mostra profilo
Re:Chiamare apt update e apt upgrade da shell
« Risposta #10 il: 31 Luglio 2016, 22:00:56 »
Messo questo codice
Dim S As String
S = InputBox("Immetti password di root")
  Shell "echo " & s & " | sudo -S apt-get update && sudo -S apt-get upgrade" Wait


Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.683
  • Ne mors quidem nos iunget
    • Mostra profilo
Re:Chiamare apt update e apt upgrade da shell
« Risposta #11 il: 01 Agosto 2016, 01:52:54 »
Ho scritto il codice così

Shell "echo " & s & " | sudo -S chmod 666 apt-get update && sudo -S chmod 666 apt-get upgrade" Wait
Aspetta.... non mi ero accorto che c'è un errore nella riga di comando: chmod 666 e apt-get update, nonché chmod 666 e apt-get upgrade non hanno nessun significato stando insieme !    :danger:



Messo questo codice
Dim S As String
S = InputBox("Immetti password di root")
  Shell "echo " & s & " | sudo -S apt-get update && sudo -S apt-get upgrade" Wait
e.... funziona ?
« Ultima modifica: 01 Agosto 2016, 01:54:05 da vuott »
« Chiunque, non ricorrendo lo stato di necessità, nel proprio progetto Gambas fa uso delle istruzioni Shell o Exec, è punito con la sanzione pecuniaria da euro 20,00 a euro 60,00. »

Offline Andreone

  • Gamberetto
  • *
  • Post: 25
    • Mostra profilo
Re:Chiamare apt update e apt upgrade da shell
« Risposta #12 il: 01 Agosto 2016, 07:46:08 »
Funziona però mi interessa sapere come si fa a vedere il numero degli aggiornamenti disponibili da gambas ovviamente, ma a parte questo non sono riuscito a far visualizzare il terminale nel momento che fà gli update e l' upgrade

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.683
  • Ne mors quidem nos iunget
    • Mostra profilo
Re:Chiamare apt update e apt upgrade da shell
« Risposta #13 il: 01 Agosto 2016, 10:32:23 »
come si fa a vedere il numero degli aggiornamenti disponibili da gambas ovviamente
Perdonami, ma non ho capito cosa vuoi dire.   :-\
« Ultima modifica: 01 Agosto 2016, 13:20:59 da vuott »
« Chiunque, non ricorrendo lo stato di necessità, nel proprio progetto Gambas fa uso delle istruzioni Shell o Exec, è punito con la sanzione pecuniaria da euro 20,00 a euro 60,00. »

Offline Andreone

  • Gamberetto
  • *
  • Post: 25
    • Mostra profilo
Re:Chiamare apt update e apt upgrade da shell
« Risposta #14 il: 01 Agosto 2016, 12:11:15 »
lo spiego
Allora voglio che appena lancio il programmino in gambas, gambas deve controllare se ci sono aggiornamenti linux e quante ce ne sono
se ci sono aggiornamenti si può aggiornare altrimenti niente, e mi interessa anche sapere se quando inserisco la password di root se si inserisce sbagliata non deve proseguire con i comando apt-get update e apt-get upgrade