Linux Mind Italia

  • Sabato 24 Agosto 2019, 03:07:29
  • Benvenuto, Visitatore
Effettua l'accesso o una nuova registrazione.

Inserisci il nome utente, la password e la durata della sessione.
Ricerca avanzata

News:

Serve una mano per l'installazione di Linux? Prova questa semplice guida in tre parti (live - partizionamento - installazione).

collapse

* Canale Telegram

Canale informativo di riserva:
Linuxminditalia
https://t.me/linuxmind

* Mind-chat

Refresh History
  • cuzzo: ei bob, noche  :ciao:
    Oggi alle 00:09:49
  • bobol: :ciao:
    Ieri alle 19:35:43
  • cuzzo: aloa
    Ieri alle 18:50:29
  • zerbo3: non capisco,stavo per inserire un post,si [ bloccato tutto
    Domenica 18 Agosto 2019, 21:30:12
  • zerbo3: ciao a tutti....
    Domenica 18 Agosto 2019, 21:16:01
  • midnite: già ... io l'ho tanto criticato all'inizio in quanto fork, e perché tutto sommato unity prima e shell dopo mi sono piaciute ... ma ad oggi temo sia l'unica vera alternativa per pc meno performanti: lxde, morto; xfce, ha uno sviluppo lentissimo e ora che è stato rilasciato non è comunque disponibile per l'installazione (dovremo aspettare ubuntu 18.10 o che arrivi in aur); lxqt sinceramente non so se è ok perché è un anno che non lo seguo (ma non ho letto di ste gran recensioni online); enlightment, è carino ma lontano dall'usabilita di xfce/mate ...
    Domenica 18 Agosto 2019, 08:17:14
  • Leonzio: Sto rivalutando Mate ;)
    Sabato 17 Agosto 2019, 20:39:03
  • Tony: :ciao:
    Mercoledì 14 Agosto 2019, 19:22:45
  • pitalfa: Buon Ferragosto a tutti gli amici del forum :ciao:
    Mercoledì 14 Agosto 2019, 10:38:41
  • Leonzio: Grazie, Valerio, ricambio il saluto.
    Lunedì 12 Agosto 2019, 18:54:10
  • Valerio: Buon S.Lorenzo a tutti, buone ferie a chi va e buone cose a chi resta
    Sabato 10 Agosto 2019, 21:15:13
  • bobol: ..i beati stanno in paradiso.....
    Venerdì 09 Agosto 2019, 20:29:38
  • Tony: Beato te
    Venerdì 09 Agosto 2019, 14:16:57
  • Tony: Vacanze in grande!
    Venerdì 09 Agosto 2019, 14:16:54
  • Tony: Addirittura a settembre?
    Venerdì 09 Agosto 2019, 14:16:46
  • Tony: Dove vai?
    Venerdì 09 Agosto 2019, 14:16:31
  • bobol: Saluti e buone vacanze a tutti....ci si rilegge a Settembre o giù di lì  :ciao:
    Venerdì 09 Agosto 2019, 14:03:22
  • bobol: :ciao:
    Martedì 06 Agosto 2019, 19:42:04
  • cuzzo: uau
    Martedì 06 Agosto 2019, 17:56:06
  • Mint-Marko: Ok chiaro. Grassie  ;D
    Domenica 04 Agosto 2019, 20:58:22
  • bobol: no probabilmente non ci siamo spiegati, l'operazione di cambio titolo per i post degli altri utenti è ovviamente di pertinenza dei mod/admin e ripeto se i post non sono molti si può fare senza problemi ma se iniziano ad essere tre o quattro pagine è meglio lasciarla così è procedere con il cambio titolo del solo primo post in modo che tutti i successi al cambio riportino lo stesso nuovo titolo
    Domenica 04 Agosto 2019, 15:57:58
  • Mint-Marko: ciao scusate il ritardo. Ok bobol, posso cambiare il titolo post-per-post, ma comunque i post degli altri rimangono con il vecchio titolo.
    Domenica 04 Agosto 2019, 15:43:08
  • bobol: :)
    Sabato 03 Agosto 2019, 18:29:43
  • Umberto: ...Dai che ci stava proprio.  :D   :ciao:
    Sabato 03 Agosto 2019, 17:01:13
  • cuzzo: bau bau
    Sabato 03 Agosto 2019, 15:54:10
  • Tony: che spiritosone
    Sabato 03 Agosto 2019, 15:40:48
  • bobol: Ciao Umberto
    Sabato 03 Agosto 2019, 12:05:51
  • bobol: ;D  :ciao:
    Sabato 03 Agosto 2019, 12:05:34
  • bobol: :roll: uh.....non c'è più nessuno
    Sabato 03 Agosto 2019, 12:05:13
  • Umberto: Si me lo ricordo quel periodo di follia... Bei tempi, ne ho un po' di nostalgia.  :)
    Venerdì 02 Agosto 2019, 21:46:57

* Utenti On Line

  • Dot Visitatori: 16
  • Dot Nascosti: 0
  • Dot Utenti: 2
  • Dot Utenti Online:

Autore Topic: Importanza della Shell  (Letto 18412 volte)

Gianky54

  • LINUX... WHAT ELSE?
  • Hero Mind
  • *****
  • Offline Offline
  • Post: 2055
  • Distro: LM 18.3_64 KDE
  • Web News Reporter
    • Studio Medicina Integrata
Importanza della Shell
« il: Domenica 08 Novembre 2009, 15:03:25 »

Linux ci ha ben abituati, poiché ci offre soluzioni talora anche semplici. Tuttavia è bene imparare a prendere confidenza con il terminale, visto che talvolta per risolvere un problema le soluzioni "automatiche" non bastano. Per questa ragione mi sonopermesso di postare una sintesi di comandi e suggerimenti atti a familiarizzare con la shell.
Naturalmente è un esperimento, suscettibile di critica e miglioramento da parte di tutti.

Nella tabella che segue vi sono le più comuni operazioni da eseguire da shell.
Notate in particolar modo il comando apt-get, col quale potete installare, aggiornare e rimuovere (disinstallare) pacchetti .deb.




alien -d nomefile.rpm   per convertire pacchetti rpm in .deb. Se non avete alien, scaricatelo da Synaptic.
apt-get clean   E' molto più radicale di "apt-get autoclean", poichè rimuove dalla cache di apt ogni file .deb, anche quelli relativi ai pacchetti correntemente installati. Generalmente non avete bisogno dei file .deb per i pacchetti installati, quindi potrebbe essere la cosa migliore se avete problemi di spazio.
apt-get autoremove    Pulizia pacchetti
apt-get install nomepacchetto    Installa il pacchetto. Puoi usare anche il gestore di pacchetti "Synaptic" che si trova nel menu per installare nuovi pacchetti
sudo apt-get -f install   Potreste avere bisogno di eseguire questo comando qualora, cercando di installare un pacchetto, vi venga restituito un errore di dipendenze irrisolvibili, nonostante questo pacchetto si trovi in Synaptic.

Può succedere ad esempio, se voi aggiungete nella vostra source.list un repository nuovo che contenga delle versioni aggiornate di pacchetti che avete gia in Synaptic. E' complicato spiegare come e quando questo può andarvi a dare problemi, ma vi basti sapere che con questo comando potreste risolvere i vostri problemi.
apt-get remove nomepacchetto    Rimuove il pacchetto (ma non i suoi file di configurazione). Si può usare anche Synaptic per la stessa funzione.
apt-get --purge remove nomepacchetto   Eseguendo apt-get remove verranno rimossi i pacchetti, ma non i loro file di configurazione, per eliminare anch'essi è necessario anteporre --purge a remove.

Tenete bene a mente questa istruzione perchè se avete dei problemi irrisolvibili a reinstallare un pacchetto, grazie a questo comando potreste risolvere tutto.
apt-get update   Aggiorna la lista dei pacchetti disponibili dai repositories.

Da eseguire in special modo ogni volta che avete cambiato le "liste dei repositoires", tipo /etc/apt/sources.list. Dopo avere eseguito questo comando è probabile che nella lista di Synaptic troviate del software nuovo da scaricare, che prima non avevate.

E' consigliabile eseguire l'update periodicamente per essere sicuri che le proprie liste rimangano sempre aggiornate.
apt-get upgrade   Aggiorna tutti i pacchetti installati.

È anche possibile aggiornare un singolo pacchetto attraverso l'esecuzione del comando: apt-get upgrade nomepacchetto
apt-get install build-essential   Build-essential è un pacchetto che si trova nei repository. In questo pacchetto vi stanno i compilatori di base, gcc, make, g++ e altro
apt-get install linux-headers-`uname -r`   Versione kernel in uso
dpkg --list   Elenca tutti i pacchetti installati
dpkg --list | grep gnome    Elenca tutti i pacchetti "gnome" installati.

dpkg è un gestore di pacchetti Debian. APT è considerato un gestore di pacchetti più avanzato rispetto a dpkg
dpkg-reconfigure nome_pacchetto   Problemi con un pacchetto, dovrebbe risolverlo. Tipo reinstallazione
tar -xvzf file.tar.gz    Scompattare tar.gz o tar.gz2. "x" è per estrarre, "v" sta per "verbose" cioè visualizza i file che vengono estratti, "z" è per filtrare l'archivio con gzip, "f" è perchè è un file archivio.
find . -name "*.tar" -exec tar xvf {} ;   Questo comando è utile se dovete decomprimere molti archivi tutti in una volta. Cerca (find) tutti files che finiscono per .tar (-name "*.tar") e per ognuno di questi ({}) esegue il tar xvf (-exec)

La direttiva -exec deve terminare per ;


Se dovete scompattare un archivio .rar ed avete difficoltà, potrebbe essere perchè dovete installare l'apposito pacchetto "rar" da Synaptic. Controllate da Synaptic se l'avete installato, altrimenti installatelo.

Quando del pacchetto che vi interessa non avete il .deb ma avete i "sorgenti", vi è una tipica procedura in linux per installarli, che è composta da tre comandi, da eseguire uno dopo l'altro:
 
  ./configure
    make
    sudo make install


 
in cui:
./configure    Con ./configure viene lanciato un script che si occupa di controllare se il sistema risponde ai requisiti richiesti come librerie e programmi (per esempio dei compilatori).
Si occupa anche di creare il Makefile, un file contenente delle variabili settate da ./configure (come la directory dove verrà installato il programma e il percorso delle librerie necessarie alla compilazione).
E' in questa fase che avvengono i maggiori problemi di installazione da sorgente. Infatti una libreria mancante causa quasi sempre un'errore e quindi l'interruzione del ./configure.

Anzichè scrivere semplicemente ./configure, potete anche scrivere:

    ./configure --prefix=/usr/local/

 --prefix farà in modo che ./configure crei un makefile tale che il programma verrà installato dentro la cartella da noi indicata, in questo caso /usr/local/.
make   Make è il programma che si occupa di analizzare il file Makefile creato da ./configure e di compilare il programma.
Ma cosa ha di diverso il comando make dal comando gcc?
Make è concepito per compilare interi programmi, e ogni buon grosso programmone che si rispetti, è costituito da tanti, anche tantissimi file, magari di centinaia di mega, e compilare tutta questa roba può richiedere molto tempo.
Make fa questo lavoro per voi: spulcia le relazioni dei file che compongono il programmone nel "makefile" creato da ./configure e compila per voi tutta quella gran mole, generando dei file ".o" ("oggetto"), da ogni file sorgente e da questi, alla fine, ricava il da voi tanto desiderato file eseguibile.

Se anzichè "installare" state "reinstallando" sopra una precedente installazione del programmone, magari perchè volete semplicemente aggiornarlo, può capitare che "make" vi pianti in asso con un errore che non riuscite a capire..
Questo perchè make si ricontrolla ogni file sorgente e capisce, se dall'epoca ultima vostra compilazione, il file è cambiato oppure no e solo i file modificati saranno ricompilati, facendovi risparmiare moltissimo tempo. Ma allora perchè questo errore? Capita MOOOLTO di rado, tipo quando vi ricompilate il kernel o cercate di riaggiornare qualcosa con il metodo "svn".

E' complicato da spiegare il perchè questo errore si verifichi in queste situazioni, ma vi basterà sapere che la situazione si risolve facilmente: prima di eseguire il comando "make", scrivete: 

    make clean

 Con questo comando vengono eliminati i precedenti file ".o" e potete fare una reinstallazione bella pulita del programmone..
sudo make install   Make install si occupa di andare ad installare (tramite il comando make) il programma sul nostro sistema.


Quella appena descritta è la procedura "classica" per installare un file a partire dai sorgenti.

In generale un programma in Linux, installato a partire da pacchetto o da sorgenti, sostanzialmente si sparpaglia fra le diverse cartelle di sistema di Linux.

I file di configurazione di questo programma, ad esempio, finiranno nella cartella "/etc/", che per convenzione è fatta apposta per contenere i file di configurazione del software che viene installato.

I file che non saranno soggetti ad ulteriori modifiche (quindi il programma vero e proprio) finiscono in genere in una qualche sottocartella di "/usr/share/" o "/usr/local/", mentre i file che subiscono modifica vanno in genere sotto "/var/".

Il file per lanciare il programma, ovvero "l'eseguibile", va in genere in "/bin/", le librerie vanno in genere sotto "/usr/lib/" o (piu raramente), sotto "/usr/libexec/".

Come potete vedere il programma si sparpaglia, ma in modo "razionale". Segue una logica che è regolata da uno standard chiamato "Filesystem Hierarchy Standard (FHS)".

Tuttavia a volte può capitare di avere qualche problema nel disinstallare il software, o perchè il programmatore del software non ha pensato a un sistema per la disinstallazione, o perchè comunque sia non riusciamo a rintracciare tutti i file installati.

Proprio per questo motivo è consigliata in Ubuntu una procedura di installazione da sorgenti che è diversa dalla solita triade di comandi "./configure && make && make install", e questa procedura è:

    sudo auto-apt run ./configure
    sudo make
    sudo checkinstall

 


auto-apt run   "auto-apt run" serve ad eseguire un comando ma sotto il controllo di auto-apt.

Auto-apt serve a fare in modo che se il programma che state installando manca di qualche file (in gergo si dice "ha problemi di dipendenze"), lui prova a cercare nel database dei pacchetti se esista un pacchetto che abbia il file che gli serve e ci chiederà se può installarlo. Il database può essere aggiornato con " auto-apt update ".

Attenzione però di non fare troppo affidamento alle capacità di ricerca di auto-apt per la risoluzione delle dipendenze in quanto in realtà piuttosto spesso lui fallisce nella sua ricerca e dobbiamo essere noi stessi a cercare il pacchetto che serve mediante Synaptic (cioè dobbiamo essere noi stessi, manualmente, a "risolvere le dipendenze"). Nonostante non sia infallibile vale sempre la pena di provare ad installare con auto-apt perchè male che vada può solo farci risparmiare del tempo.

auto-apt potrebbe non essere installato. In tal caso aprite Synaptic ed installatelo.

checkinstall   checkinstal l tiene traccia di tutti i file installati da make install o equivalenti, crea pacchetti Slackware, rpm o deb con tutti i file, e li aggiunge nel database dei pacchetti installati, permettendo di essere facilmente rimossi con il gestore dei pacchetti della distribuzione.


Dopo avere digitato "sudo auto-apt run ./configure" vedrete che il sistema opererà un controllo sui file che possiede. Se li possiede tutti, alla fine verrà generato il makefile che verrà usato dal successivo comando che digiterete, "sudo make" (in realtà make potrebbe essere eseguito anche senza "sudo", a meno che i nostri sorgenti non si trovino in una directory protetta da scrittura. Io lo uso lo stesso).

Se i file non sono tutti presenti non avrete il makefile per continuare l'installazione. In tal caso riguardatevi tutta la lista di operazioni eseguite su shell dopo il comando "sudo auto-apt run ./configure" e cercate cosa è che non trova. A questo punto scaricate voi stessi la roba mancante servendovi di Synaptic. Tutto questo può sembrare noioso ma è il prezzo che si deve pagare, spesso, nell'installazione da sorgenti.

A volte può essere difficile capire quale sia esattamente il file che manca.. Ad esempio l'esecuzione del nostro comando " auto-apt run ./configure " potrebbe terminare con un errore del tipo "SDL could not be found". In questo caso lui vi sta dicendo in realtà che ciò che non sta trovando sono le "librerie di sviluppo SDL".
Voi cercherete in Synaptic questo fantomatico pacchetto "SDL" che lui non trova e non lo troverete nemmeno voi, perchè in realtà quello che cerca è un pacchetto di nome "libsdl1.2-dev".

Si perchè in generale normalmente i file che mancano a ./configure in una installazione sono pacchetti di tipo "librerie per sviluppatore", che sono pacchetti che normalmente cominciano con la parola "lib" e finiscono con la parola "dev".

Quindi non appena vi si presenta un problema di dipendenze, partite sempre dal presupposto che molto probabilmente (spesso ma non sempre) il pacchetto che voi state cercando in realtà comincia con "lib" e termina con "dev"..

Se nonostante tutto avete ancora dei problemi a capire quale pacchetto manca ed è richiesto per completare una installazione, servitevi delle funzioni di ricerca di questo sito: http://packages.ubuntu.com/.

Utilizzando la procedura consigliata (cioè quella, che fa uso di auto-apt run, make, checkinstall), i sorgenti vengono trasformati in pacchetto in futuro facilmente eliminabile da Synaptic oppure da Shell digitando:
sudo dpkg -r nomepacchetto

 
Certo non pretendo di aver esaurito l'argomento... ed anzi per questo mi appello alla competenza ed esperienza di Amici indubbiamente più in gamba.
« Ultima modifica: Lunedì 07 Maggio 2012, 17:58:03 da Metelliano »
Connesso
MINT LOVER

Facocero

  • Sr. Mind
  • ****
  • Offline Offline
  • Post: 1279
Re: Importanza della Shell
« Risposta #1 il: Domenica 08 Novembre 2009, 15:33:16 »

Aspetto che qualcuno un pò più esperto di me puntualizzi anche le qualità di apt in luogo di apt-get in Linux Mint... ;)
Connesso

Gianky54

  • LINUX... WHAT ELSE?
  • Hero Mind
  • *****
  • Offline Offline
  • Post: 2055
  • Distro: LM 18.3_64 KDE
  • Web News Reporter
    • Studio Medicina Integrata
Re: Importanza della Shell
« Risposta #2 il: Domenica 08 Novembre 2009, 15:56:03 »

Aspetto che qualcuno un pò più esperto di me puntualizzi anche le qualità di apt in luogo di apt-get in Linux Mint... ;)

Intendi aptitude rispetto ad apt-get?
Connesso
MINT LOVER

bobol

  • FOM (Free and Open Mind)
  • Staff
  • Legend Mind
  • ******
  • Offline Offline
  • Post: 6458
  • Distro: SalentOS Neriton 2.0
  • Work & Fun with Linux
Re: Importanza della Shell
« Risposta #3 il: Domenica 08 Novembre 2009, 16:01:55 »

 :bravo: buona idea......

dieguitus

  • utente freestyle
  • Staff
  • Legend Mind
  • ******
  • Offline Offline
  • Post: 12927
  • Distro: macos 10.14, ubuntu 16.04
  • Real stupidity beats artificial intelligence
Re: Importanza della Shell
« Risposta #4 il: Domenica 08 Novembre 2009, 16:21:00 »

Io non saprei aggiungere molto; solo che pressoché tutti i comandi apt-get sopra elencati, in mint possono tranquillamente essere rimpiazzati dall'analogo, semplice 'apt'. Ben quattro caratteri in meno ogni volta ;)
In un articolo del nostro blog sono indicati dei recenti miglioramenti apportati a questo comando.

Pedro

  • Legend Mind
  • ******
  • Offline Offline
  • Post: 9195
  • Distro: Debian Gnome 3.8.4, X-Light-Mind Debian
Re: Importanza della Shell
« Risposta #5 il: Domenica 08 Novembre 2009, 16:49:56 »

Volevo precisare solo una cosa che riguarda il seguente comando
Citazione
./configure --prefix=/usr/local/
che nel senso e tutto guisto quello che dice doc anzi molte volte basta solo ./configure per avere l'installazione in /usr/local/,invece sarebbe meglio dare solo ./configure --prefix=/usr/ questo perché la maggior parte delle  librerie sono in /usr/lib/ e puo' capitare che l'applicazione installata in /usr/local/ non partira' perché non trova le librerie che avra' magari installato in /usr/local/lib/ invece di /usr/lib/,diciamo che basta copiare le librerie che eventualmente si sono installate in /usr/local/lib/ in /usr/lib/,ma se non si sa quali sono e meglio rimuovere l'applicazione eventualmente installata che non funge e rifare la compilazione con ./configure --prefix=/usr/.
Comunque leggete sempre il file install e/o il file Reademe dopo l'estrazione dei pacchetti dove ci sono molte informazioni utili per come fare e/o eventuali opzioni da dare per attivare alcune funzioni.
« Ultima modifica: Domenica 08 Novembre 2009, 16:55:58 da Pedro »
Connesso

dieguitus

  • utente freestyle
  • Staff
  • Legend Mind
  • ******
  • Offline Offline
  • Post: 12927
  • Distro: macos 10.14, ubuntu 16.04
  • Real stupidity beats artificial intelligence
Re: Importanza della Shell
« Risposta #6 il: Sabato 28 Novembre 2009, 11:14:03 »

Io non saprei aggiungere molto; solo che pressoché tutti i comandi apt-get sopra elencati, in mint possono tranquillamente essere rimpiazzati dall'analogo, semplice 'apt'. Ben quattro caratteri in meno ogni volta ;)
Mi accorgo appena ora che con il comando apt non è nemmeno necessario mettere il 'sudo'. Se sono richiesti i privilegi di amministratore vi chiederà automaticamente la pwd, altromenti no.
Per capirci, al posto di 'sudo apt-get-update' è sufficiente un 'apt update'.
Mica male, eh? ;)

panoramix

  • Jr. Mind
  • **
  • Offline Offline
  • Post: 73
Re: Importanza della Shell
« Risposta #7 il: Lunedì 15 Febbraio 2010, 10:43:08 »

Salve,
è un'ottima tabella che permette di avere a portata di "occhi" tutti i comandi shell essenziali
Connesso
Vivi come se dovessi morire oggi
Impara come se dovessi vivere sempre

lelio

  • Jr. Mind
  • **
  • Offline Offline
  • Post: 152
Re: Importanza della Shell
« Risposta #8 il: Domenica 28 Marzo 2010, 17:04:02 »

Non sono sicuro di aver capito; in Mint ci sono apt e apt-get? se digito "man apt" dal terminale di karmic, di fatto non ho opzioni per la gestione pacchetti a disposizione
Connesso

Pedro

  • Legend Mind
  • ******
  • Offline Offline
  • Post: 9195
  • Distro: Debian Gnome 3.8.4, X-Light-Mind Debian
Re: Importanza della Shell
« Risposta #9 il: Domenica 28 Marzo 2010, 17:53:26 »

Si, e come spiega dieguito nel post qua sopra non ce bisogno di mettere il sudo davanti ad apt.
Connesso

lelio

  • Jr. Mind
  • **
  • Offline Offline
  • Post: 152
Re: Importanza della Shell
« Risposta #10 il: Domenica 28 Marzo 2010, 18:29:54 »

E il fatto che non sia necessaria la PW non potrebbe creare dei problemi di sicurezza?
Connesso

Pedro

  • Legend Mind
  • ******
  • Offline Offline
  • Post: 9195
  • Distro: Debian Gnome 3.8.4, X-Light-Mind Debian
Re: Importanza della Shell
« Risposta #11 il: Domenica 28 Marzo 2010, 19:12:35 »

Nessuno a detto che la password non è necessaria, ma solamente che sono stati semplificati questi comandi risparmiando ben 9 caratteri.
La domanda più corretta sarebbe: se do "apt update" (o qualsiai altro comando che parta con apt) non verra più chiesta la password ?
Risposta: la password verra chiesta sempre, come detto prima si è solo ridotto i numeri dei caratteri da battere.
  
Connesso

lelio

  • Jr. Mind
  • **
  • Offline Offline
  • Post: 152
Re: Importanza della Shell
« Risposta #12 il: Domenica 28 Marzo 2010, 20:29:06 »

Ho capito, grazie
Connesso

Hotoko

  • Visitatore
Re: Importanza della Shell
« Risposta #13 il: Venerdì 16 Aprile 2010, 00:08:23 »

Bè un po di caratteri in meno da digitare ....non possono che far piacere...!
Complimenti x la guida....
Connesso

giasonetux

  • Visitatore
Re: Importanza della Shell
« Risposta #14 il: Venerdì 16 Aprile 2010, 13:27:11 »

Hotoko, e se vai in "guide" ci sono altri comandi per il terminale. :ciao:
Connesso