Newsgroup: it.comp.os.linux.iniziare
Titolo: Rendere un file eseguibile

Ciao,
scusate la domanda banale ma non capisco dove sbaglio.
A casa uso Ubuntu 7.10 e vorrei rendere eseguibile un file da riga comandi.
Scrivo:
chmod +x <nomefile>
Lancio il comando e funziona.
Apro Nautilus, vado nella directory che contiene il file, faccio "doppio
click" ma il programma non parte. Se vado nelle proprietą, il campo
"Consentire l'esecuzione del file come programma" č vuoto. Se lo attivo
riesco a lanciare il programma anche da Nautilus.
Qualcuno sa dirmi come mai?
Grazie, Mario
--------------------------------
Inviato via 
http://arianna.libero.it/usenet/

 Qualcuno sa dirmi come mai?
Premetto che non uso Nautilus, quindi vado a lume di naso.
Credo che sia perchč se fai doppio clic su un file, il file manager
(nautilus) si aspetta di "eseguire" il file tramite un'applicazione
specificata in qualche file di configurazione salcazzo dove (MIME types?)
Quindi, in realtŕ, quando "esegui" un'immagine o un documento di fatto
dici a nautilus di eseguire l'applicazione ad esso associata e con essa
aprire il file.
Se, come nel tuo caso, l'applicazione č il file stesso, nautilus a priori
non lo sa. Vede un oggetto e, a meno che tu non abbia specificato
diversamente, non sa con quale applicazione aprirlo.
Se invece tu attivi il campo "consentire l'esecuzione come programma" in
pratica istruisci nautilus a lanciare direttamente il file stesso senza
farsi troppe domande.
Io me la spiego cosě.
Bud
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

 diversamente, non sa con quale applicazione aprirlo.
Ti sbagli. In questo caso Nautilus ti chiede cosa ci deve fare col file,
se aprirlo come testo, eseguirlo, eseguirlo in shell ecc. 
Nautilus e' fatto bene.

Valeria Dal Monte wrote:

E forse sbagli anche tu, visto che il fatto bene non c'entra molto, il caso
degli script è piuttosto particolare, perché per essere eseguiti richiedono
di essere lanciati (non aperti) da un interprete dei comandi (shell o
altro) e difficilmente possono essere lanciati direttamente con un click
(per esempio può essere necessario creare un link/icona/entità che si
occupa di lanciare lo script vero e proprio.

 occupa di lanciare lo script vero e proprio. 
E qui ci vuole un attimo di calma perche' hai mischiato cose vere e 
cavolate immense.
Si` e` vero, per eseguire uno script da Konqueror o Nautilus in genere
serve un wrapper o devi specificare di eseguire il programma da una 
console ma solo perche' _DI_SOLITO_ gli script sono progettati per essere
eseguiti da una shell e producono output su standard in; quando li lanci 
con un click standard in e standard out vengono reindirizzati su /dev/null
e quindi tu non ti accorgi di nulla.
Vuoi una prova? Edita e rendi eseguibile questo script:
cat pippo.sh
#! /bin/bash
echo '#! /bin/bash' > pluto.sh
echo 'touch paperino' >> pluto.sh
echo 'rm pippo.sh' >> pluto.sh
chmod +x pluto.sh
e poi clicca su pluto.sh

 ... producono output su standard in;
Premuto invio troppo in fretta?

 Qualcuno sa dirmi come mai?
Risolto, anche se non ne ho capito la logica al 100%.
Cosě come l'avevo spiegato l'altro giorno mancava qualche informazione che
all'epoca non avevo considerato.
Il file in questione č un eseguibile creato da me tramite Lazarus
(linguaggio di programmazione multipiattaforma). Siccome uso gli stessi
sorgenti per produrre i miei programmi sia per WinXP che per Linux, e visto
che tali sorgenti ed il programma compilato sono su una partizione NTFS
(cosa che non ricordavo quando ho scritto il primo post), ho pensato che il
problema fosse quello.
Infatti la sequenza che facevo io era:
- Compilare il programma (su partizione NTFS)
- Cambiare i permessi
- Spostare il programma dalla partizione NTFS ad una partizione EXT3
Probabilmente cambiare permessi su partizione NTFS e poi spostare il file
creava qualche problema. Infatti ho modificato la sequenza delle operazioni
in questo modo:
- Compilare il programma (su partizione NTFS)
- Spostare il programma dalla partizione NTFS ad una partizione EXT3
- Cambiare i permessi
Ora va tutto alla perfezione.
Ciao, Mario
