Gestione dei pacchetti e repository software
Le distribuzioni Linux basate su Debian si basano su repository (database dei pacchetti di installazione dell'applicazione e pacchetti di aggiornamento) per mantenere aggiornati i sistemi operativi e anche per recuperare e installare facilmente nuovi pacchetti software. La posizione di questi repository è archiviata /etc/apt/sources.list
, tuttavia nella /etc/apt/sources.list.d
directory è possibile archiviare fonti aggiuntive, in genere uniche per applicazioni specifiche .
Quando apt-get update
viene eseguito il comando di aggiornamento dell'indice dei pacchetti , il sistema operativo verifica con questi repository di pacchetti i pacchetti disponibili e registra i software disponibili come disponibili nel sistema operativo che è possibile continuare a installare utilizzando il apt-get install <package>
comando tradizionale .
Un esempio di una di queste fonti software è:
deb http://us-west-2.ec2.archive.ubuntu.com/ubuntu/ trusty main restricted
È importante che queste fonti facciano riferimento a versioni specifiche delle distribuzioni di Linux. Un esempio è affidabile, che è il nome in codice di Ubuntu 14.04. È possibile eseguire una query sul sistema operativo (basato su debian) per dettagli completi con lsb_release -a
o lsb_release -sc
che significa short e nome in codice .
Nella tua domanda, la parte $(lsb_release -sc)
viene interpretata e il risultato dal tuo sistema operativo viene stampato nel file sorgente personalizzato ros-latest.list che il comando creerà al momento dell'esecuzione.
Interprete del linguaggio di comando
Il sh
comando è la shell bourne . Questo è uno, tra diverse shell, ma è considerato il vecchio standard e generalmente si può essere certi di esistere. È anche comune vedere bash
in molti script di shell. Tale dichiarazione specifica che la shell deve essere utilizzata poiché shell diverse usano sintassi diverse.
Per quanto riguarda la -c
bandiera, citando man bash
:
Se l'opzione -c è presente, i comandi vengono letti dalla stringa. Se ci sono argomenti dopo la stringa, vengono assegnati ai parametri posizionali, a partire da $ 0.
Tutto all'interno del file ''
viene letto come una stringa, non è necessario capire come sfuggire alle varie virgolette o preoccuparsi che la shell interpreti qualcosa nel modo sbagliato.
tl; dr
Il comando stampa deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main
su un file di origine personalizzato, sostituendolo $(lsb_release -sc)
con il valore interpretato.