Autore Topic: Uextras - Software per gestire, personalizzare e pulire i sistemi Debian based  (Letto 17282 volte)

vaillant86

  • Visitatore
Ho risolto per il momento, ma non è assolutamente una scelta definitiva (se è possibile un'altra strada è meglio). In pratica, tramite la shell, mi richiamo uno script che ho fatto:
Codice: [Seleziona]
#!/bin/bash

dist=$(lsb_release -cs)

sed -i "s?# deb http://archive.canonical.com/ubuntu $dist partner?deb http://archive.canonical.com/ubuntu $dist partner?" /etc/apt/sources.list

sudo apt-get update

sudo apt-get install skype

exit 0

in cui mi sono ricavato il nome della distribuzione grazie a lsb_release. L'ho testato su Ubuntu Maverick, Lucid e su Linux Mint 9; funziona (la variabile $dist si adatta perfettamente e i repository vengono attivati ed aggiornati) anche se come ho detto prima preferire convertire questo procedimento con qualche funzione di gambas (di cui però ignoro l'esistenza :-\).

Tra poco posto la nuova versione :)
« Ultima modifica: 24 Ottobre 2010, 21:51:44 da vaillant86 »

vaillant86

  • Visitatore
Ho caricato la nuova versione che corregge un bug nell'installer di aMsn, introduce l'installer di Skype (abilitando il relativo repository) e presenta delle novità nella sezione "Aspetto", non ancora attive però :)

vaillant86

  • Visitatore
Ciao ragazzi, avrei bisogno di un piccolo aiuto. Al momento, uextras fa largo uso della shell (o meglio, di xterm) che nella maggior parte dei casi viene richiamata per chiedere la password dell'utente.

Vorrei abbandonare quindi l'uso di xterm (anche perché non mi piace usare gambas per richiamare xterm, potevo usare zenity se era per quello...): per quanto riguarda la richiesta della password, posso farla graficamente; solo che gnome usa gksudo mentre kde usa kdesudo. Dovrei quindi scrivere una funzione che dica "se l'ambiente in uso è gnome allora dai 'gksudo...', altrimenti dai 'kdesudo...' ", solo che non so come prelevare queste informazioni tramite gambas per inserirle poi nell'IF...THEN...ELSE.

Qualcuno è in grado di aiutarmi?

Grazie :2birre:

p.s.
@ pastrano: sto lavorando per far funzionare al meglio il programma anche su Debian, lo sto testando su Squeeze e le principali cose funzionano a meraviglia, vedrò di integrare tutto il resto (la mamma è sempre la mamma ;D)

Offline pastrank

  • Maestro Gambero
  • ****
  • Post: 266
    • Mostra profilo
Puoi usare, per esempio, il comando ps in shell per trovare se scorrono dei processi tipici di Gnome, Kde o che vuoi tu. Dovresti discriminare i comandi a seconda delle distribuzioni (e qui, se centralizzi tutto in una routine che crei il comando passandogli solo la parte variabile, ti costa poco farla anche per molte altre), se non vuoi shellare visibilmente devi calcolare anche lo spazio che andrai a occupare o quanto hai da scaricare (pensa a chi non ha nulla di Kde e installa un programma Kde con le dipendenze)

Offline fsurfing

  • Moderatore
  • Senatore Gambero
  • *****
  • Post: 2.482
    • Mostra profilo
potresti provare con uname -v per determinare la distro

vaillant86

  • Visitatore
Vi ringrazio per le risposte. Un amico mi ha suggerito di fare questo

Codice: gambas [Seleziona]

SHELL "gksudo synaptic"
SHELL "kdesudo kpackagekit"


In questo modo, se trova la prima opzione esegue quella, altrimenti passa direttamente alla seconda. Effettivamente funziona, ma ci possono essere controindicazioni? In ogni caso dovrei testarlo su un ambiente KDE basato su Debian, qualcuno ce l'ha??

Stessa cosa ho fatto con l'editor del sources.list

Codice: gambas [Seleziona]

SHELL "gksudo gedit /etc/apt/sources.list"
SHELL "kdesudo kate /etc/apt/sources.list"


AGGIORNAMENTI:

Ho sistemato un bug su "ripristino lista sorgenti" (il comando che permette di riportare il sources.list alla sua forma originale, conservando comunque l'attuale in forma sources.list.old) che in pratica non funzionava bene con Ubuntu Maverick; inoltre, la stessa funzione gestisce ora anche i sources.list di debian lenny e squeeze :)

CONSIGLIO:

Ci sono alcune cose che su Ubuntu vanno e su Debian no. Ad esempio, Skype e Firefox non sono presenti nei repo di Debian, quindi premendo i relativi pulsanti non succede nulla. Secondo voi devo fare due versioni distinte (una per debian e una per ubuntu)? Oppure non ne vale la pena?

Grazie per l'attenzione e scusate le mille domande :)

Offline fsurfing

  • Moderatore
  • Senatore Gambero
  • *****
  • Post: 2.482
    • Mostra profilo
a questo punto potresti fare un semplice

Codice: [Seleziona]
SHELL "which gksudo" TO stringa

ti ritorna nella stringa il percorso del binario

 se la stinga è vuota il programma non è installato.

a me sembrerebbe un metodo più pulito di quello che hai scritto sotto anche perchè per vari motivi potresti avere instalalto entrambi i programmi e verrebbero lanciati tutti e due

Offline pastrank

  • Maestro Gambero
  • ****
  • Post: 266
    • Mostra profilo
Ci sono alcune cose che su Ubuntu vanno e su Debian no. Ad esempio, Skype e Firefox non sono presenti nei repo di Debian, quindi premendo i relativi pulsanti non succede nulla. Secondo voi devo fare due versioni distinte (una per debian e una per ubuntu)? Oppure non ne vale la pena?

Skype non e' nei repository Debian: se uno lo volesse, il binario lo dovrebbe prendere partendo da questa pagina:
http://www.skype.com/intl/it/get-skype/on-your-computer/linux/post-download/
Non avendolo mai installato negli ultimi tempi, non so poi quale versione sarebbe necessaria per la 64 bit, visto che per Ubuntu la fanno e per Debian no. Dubito che la versione 64 di Ubuntu funzioni sulla Debian, se no l'altra che la facevano a fare?

Inoltre, non ho tempo adesso per provare, ma una volta almeno sudo non e' che permettesse di lanciare tutto, l'utente doveva essere nella lista dei sudoers per quel programma: normalmente le installazioni si fanno da root (che di solito su Ubuntu non si usa)

Firefox, per i noti problemi di branding, in Debian si chiama Iceweasel, cosi' come Thunderbird si chiama Icedove. Insomma, stai entrando in un ginepraio.

vaillant86

  • Visitatore
a questo punto potresti fare un semplice

Codice: [Seleziona]
SHELL "which gksudo" TO stringa

ti ritorna nella stringa il percorso del binario

 se la stinga è vuota il programma non è installato.

a me sembrerebbe un metodo più pulito di quello che hai scritto sotto anche perchè per vari motivi potresti avere instalalto entrambi i programmi e verrebbero lanciati tutti e due

Scusami ma non sono riuscito a capire come mettere in pratica il tuo suggerimento :rolleyes:

Skype non e' nei repository Debian: se uno lo volesse, il binario lo dovrebbe prendere partendo da questa pagina:
http://www.skype.com/intl/it/get-skype/on-your-computer/linux/post-download/
Non avendolo mai installato negli ultimi tempi, non so poi quale versione sarebbe necessaria per la 64 bit, visto che per Ubuntu la fanno e per Debian no. Dubito che la versione 64 di Ubuntu funzioni sulla Debian, se no l'altra che la facevano a fare?

Inoltre, non ho tempo adesso per provare, ma una volta almeno sudo non e' che permettesse di lanciare tutto, l'utente doveva essere nella lista dei sudoers per quel programma: normalmente le installazioni si fanno da root (che di solito su Ubuntu non si usa)

Firefox, per i noti problemi di branding, in Debian si chiama Iceweasel, cosi' come Thunderbird si chiama Icedove. Insomma, stai entrando in un ginepraio.

Proverò il deb su squeeze ed eventualmente mi metto all'opera con wget per Skype

Per il fatto di sudo/root è vero, però tutte le installazioni vengono fatte da shell, dove viene chiesta (almeno, ho sempre visto così) la password utente. La password di root viene richiesta per le operazioni grafiche; se puoi smentirmi questo fatto te ne sarei grato :)

Detto questo, mi sa proprio che Debian merita un'attenzione particolare; non perché sia difficile, ma perché effettivamente il sistema è più diverso di quanto pensassi rispetto a Ubuntu. Svilupperò quindi due versioni parallele, credo sia la miglior cosa, anche se vorrà dire un ciclo di rilascio più lento...

Offline pastrank

  • Maestro Gambero
  • ****
  • Post: 266
    • Mostra profilo
Citazione
Proverò il deb su squeeze ed eventualmente mi metto all'opera con wget per Skype

Che non e' detto sia installato, eh. Io lo uso, ma mi pare non sia di default. Poi, se usi wget, lo devi installare con dpkg -i.

Citazione
Per il fatto di sudo/root è vero, però tutte le installazioni vengono fatte da shell, dove viene chiesta (almeno, ho sempre visto così) la password utente. La password di root viene richiesta per le operazioni grafiche; se puoi smentirmi questo fatto te ne sarei grato :)

Prego :-) Installare un programma e' compito dell'amministratore, e la password richiesta e' quella dell'amministratore. Come dicevo, non ricordo se sudo permetta di default (a me no, per esempio, ma mi trascino un'installazione di diversi anni fa) di usare apt-get. Tra l'altro, non ho mai provato a shellarlo, ma dalla console con cui normalmente uso "apt-get install nomeprogramma", se installi anche delle dipendenze ti chiede prima il permesso, e usarlo con l'opzione -y puo' essere devastante nel caso di programmi kde.

Citazione
Detto questo, mi sa proprio che Debian merita un'attenzione particolare; non perché sia difficile, ma perché effettivamente il sistema è più diverso di quanto pensassi rispetto a Ubuntu. Svilupperò quindi due versioni parallele, credo sia la miglior cosa, anche se vorrà dire un ciclo di rilascio più lento...

Lo dovessi fare io, penserei a un modo di leggere delle impostazioni, magari scaricate ogni tanto da un sito (se le cambi a mano, ti ci vuole meno a scriverlo direttamente), e a "universalizzare" il modo di passargli i comandi, tenendo conto della distro, della storia del root o meno, di kde e gnome e dei 64 bit.

Offline fsurfing

  • Moderatore
  • Senatore Gambero
  • *****
  • Post: 2.482
    • Mostra profilo
Citazione
a questo punto potresti fare un semplice

Codice:

SHELL "which gksudo" TO stringa


ti ritorna nella stringa il percorso del binario

 se la stinga è vuota il programma non è installato.

a me sembrerebbe un metodo più pulito di quello che hai scritto sotto anche perchè per vari motivi potresti avere instalalto entrambi i programmi e verrebbero lanciati tutti e due

Scusami ma non sono riuscito a capire come mettere in pratica il tuo suggerimento Occhi ruotati

se vuoi determinare se un dato programma è installato su un pc puoi dare :

SHELL "which nome_programma" TO stringa

se la stringa rimane vuota il programma non è installato , altrimenti viene ritornato nella stringa il percorso del programma , in questo modo puoi capire se usare gksudo o il suo corrispettivo kde, gedit oppure kate ecc ecc

vaillant86

  • Visitatore
Non voglio inserire troppe cose tutte insieme, per cui ho rilasciato una nuova versione con alcune novità e diversi bug corretti. Trovate il link per il download in prima pagina. Inoltre vi informo che ho aperto un progetto su SourceForge e su Launchpad, da cui sarà possibile scaricare sempre l'ultima versione disponibile, inserire commenti e riportare bug.

Per concludere, un sentito ringraziamento alla comunità per l'aiuto che mi state offrendo ;)

vaillant86

  • Visitatore
Ciao ragazzi. Dunque ho un piccolo dubbio: ho inserito una finestra per vedere le caratteristiche del pc in uso. Nel codice della finestra ho inserito anche un pulsante per salvare tutte queste informazioni in un file di testo, utile per chi ad esempio fa una richiesta di supporto nei forum

Codice: gambas [Seleziona]

PUBLIC SUB BtnSave_Click()

DIM save AS String

save = TextLabel1.Text & TextLabel2.Text & TextLabel3.Text & TextLabel4.Text & TextLabel5.Text & TextLabel6.Text & TextLabel7.Text & TextLabel8.Text & TextLabel9.Text & TextLabel10.Text & TextLabel11.Text & TextLabel12.Text
File.Save("~/Scrivania/pcinfo", save)

END


quando si preme il pulsante, viene creato un file nel desktop contenente le informazioni (che si trovano nelle varie TextLabel). Tuttavia io vorrei inserire in questo file delle diciture per spiegare meglio di cosa si tratta. In pratica, il file si presenta così
Codice: [Seleziona]
vaillant86
vaillant86-sparrow
Ubuntu 10.10
x86_64
2.6.35-23-generic
3961 MB
948 MB
venerdì 26/11/2010 22:26
eth0
192.168.1.118
+20.0°C
+30.0°C
cioè stampa solo le informazioni che rileva. Io vorrei poterlo rendere così
Codice: [Seleziona]
Nome: vaillant86
Computer: vaillant86-sparrow
Distribuzione: Ubuntu 10.10
Architettura: x86_64
Kernel: 2.6.35-23-generic
Memoria totale: 3961 MB
Memoria in uso: 948 MB
Data e ora: venerdì 26/11/2010 22:26
Interfaccia di rete: eth0
IP: 192.168.1.118
Temperatura CPU: +20.0°C
Temperatura scheda madre: +30.0°C
è possibile? Grazie :2birre:

Offline fsurfing

  • Moderatore
  • Senatore Gambero
  • *****
  • Post: 2.482
    • Mostra profilo
credo che tu abbia due alternative:

1 immetti le diciture direttamente nel testo

save = "nome: " &  TextLabel1.Text &  ecc ecc

oppure utilizzi settings

settings["dati/nome"]=textlabel1.text
ecc ecc

naturalmente di default settings salva in ~/.config

ma tu puoi dichiare un nuovo percorso con qualcosa di simile

dim hset as settings

hset =new settings(User.home & "/Scrivania")
hset["dati/nome"]=textlabel1.text
ecc ecc

vaillant86

  • Visitatore
Ok, ora provo e se ho altri dubbi chiedo. Un'altra cosa che prima mi era sfuggita: per stampare tutte le informazioni ho concatenato tutti i TextLabel.Text (TextLabel1.Text & TextLabel2.Text ecc.). C'è un'altro modo per raggruppare tutti i textlabel o si deve fare così come ho fatto io?