PDA

Visualizza la versione completa : 2 nozioni: permesso esecuzione file & installazione programma


sopadj1
17-07-2004, 17:42
salve gente!
sono un piccolo pinguino :yuppi: ed ho 2 quesiti da porvi:
1) se io tolgo il permesso di esecuzione ad un file ASCII


chmod u-x nomefile

se, da terminale scrivo


./nomefile

mi dice che non ho il permesso di eseguirlo...ok...ma se scrivo


. nomefile

il file me lo esegue!!! :nonlodire

quale concetto mi manca!!!!

2) per installare 1 programma bisogna sapere come è stato compilato, giusto? :master:

no perke se il programma è un .rpm non vi è problema, ma ho letto in giro un procedimento


make
make install


questa procedura quando si adopera :confused:

scusate se le domande sono banali ma sono agli inizi e vendo da mondo winzoz :biifu: e ancora non riesco a capire alcune cosettine!
grazie tante pinguini!!!! :ciauz:

sopadj1
17-07-2004, 17:57
nessuno mi aiuta??!! :(

NonnoBassotto
17-07-2004, 18:41
Allora, per quanto riguarda il punto 1, la differenza tra "./nomefile" e "nomefile" è che il primo comando indica di eseguire il processo "nomefile" presente all'interno delle dir specificate in PATH. Nel secondo caso, invece, verrà eseguito il processo presente nella dir attuale.
Forse hai provato a lanciare un file che ha un nome uguale a quello di un altro presente da un'altra parte (oppure lo hai copiato).
Qualche indizio in più?

Per quanto riguarda il punto 2, i pacchetti .rpm contengono già un programma compilato, quindi pronto per essere eseguito sul computer. Altre volte, invece, si trovano dei pacchetti (tarball) con estensione .tar.gz o .tar.bz (o .tar.bz2), che corrispondono grossomodo ai classici .zip. Al loro interno, però, generalmente si trovano i sorgenti dei programmi, che andranno quindi compilati per poter essere lanciati.
Per fare questo, dovrai scompattare il tarball, spostarti nella dir creata contenente i sorgenti e dare i comandi "./configure", "make" e "make install". Il primo consiste nel lanciare il file "configure" (se esiste) presente in quella directory, in modo da configurare il processo di installazione. Gli altri due si occupano di lanciare dei file esterni a quella dir (infatti i comandi non sono preceduti da ./) e che compilano e installano il progamma.
Nel caso volessi disinstallarlo, dovrai andare nuovamente in quella dir e dargli un "make uninstall".
Tutto questo è generalmente valido. Esistono poi le eccezioni. (Nessuno mi vieta di fare un .tar.gz contenente un compilato, così come non è detto che un programma preveda il file "configure"...)

Ikitt
17-07-2004, 18:43
Originariamente inviato da sopadj1
1) se io tolgo il permesso di esecuzione ad un file ASCII


chmod u-x nomefile

se, da terminale scrivo


./nomefile

mi dice che non ho il permesso di eseguirlo...ok...ma se scrivo


. nomefile

il file me lo esegue!!! :nonlodire

quale concetto mi manca!!!!


in primis dipende com'e` fatto il file di testo.
Uno script (un eseguibile non binario) deve cominciare con una riga


#!/percorso/all'interprete [eventuali argomenti]


in questo modo il sistema (il kernel) eseguira` l'interprete indicato dandogli come argomento lo script medesimo.
Se l'interprete non e` sepcificato, per convenzione viene usata la shell, /bin/sh

in conseguenza di tutto questo un generico file di testo si comporta come eseguibile valido se e solo se contiene istruzioni valide nel linguaggio della shell.

Ora: in tutti i casi precedenti veniva creato un nuovo processo che si incarica di eseguire lo script. Questo vale anche per gli script di shell. Con il comando
. (punto), ovvero 'source', lo script viene eseguito invece dalla shell corrente, dallo stesso processo, senza crearne di nuovi.
Per questo motivo basta che lo script sia leggibile, non necessariamente eseguibile. Il permesso di eseguibilita` serve se si vuole (o si deve) usar eun'altro processo per eseguire il detto script.



2) per installare 1 programma bisogna sapere come è stato compilato, giusto? :master:

Beh in teoria si, in pratica molto spesso no.



no perke se il programma è un .rpm non vi è problema, ma ho letto in giro un procedimento


make
make install

questa procedura quando si adopera :confused:


Quando installi da sorgenti. La cosa non e` cosi` banale, ti consiglierei di leggere ulteriore documentazione in merito.

sopadj1
17-07-2004, 18:46
grazie tante!

per il punto 1: no, sono sicuro che mi eseguiva quel file....ps non digito solo nomefile ma


. nomefile


:confused:

NonnoBassotto
17-07-2004, 18:46
Ops, non avevo letto che hai cambiato i permessi a un file di testo...

sopadj1
17-07-2004, 18:56
Originariamente inviato da Ikitt
[B]in primis dipende com'e` fatto il file di testo.
Uno script (un eseguibile non binario) deve cominciare con una riga
..............


ok grazie, non ho capito gran che, devo ancora far tanta strada per diventare un pinguino.... :rollo:

Ikitt
17-07-2004, 19:02
Originariamente inviato da sopadj1
ok grazie, non ho capito gran che, devo ancora far tanta strada per diventare un pinguino.... :rollo:

Se vuoi, indica cosa non e` chiaro e provo a rispiegarlo. :ciauz:

Loading