Gestión de paquetes y repositorios de software
Las distribuciones de Linux basadas en Debian se basan en repositorios (bases de datos de paquetes de instalación de aplicaciones y paquetes de actualización) para mantener actualizados los sistemas operativos y también para buscar e instalar fácilmente nuevos paquetes de software. La ubicación de estos repositorios se almacena /etc/apt/sources.list
, sin embargo, se pueden almacenar en el /etc/apt/sources.list.d
directorio fuentes adicionales, generalmente exclusivas de aplicaciones específicas .
Cuando apt-get update
se ejecuta el comando de actualización del índice del paquete , su sistema operativo verifica con estos repositorios de paquetes los paquetes disponibles y registra los softwares disponibles como disponibles para su sistema operativo que puede instalar con el apt-get install <package>
comando tradicional .
Un ejemplo de una de estas fuentes de software es:
deb http://us-west-2.ec2.archive.ubuntu.com/ubuntu/ trusty main restricted
Es importante que estas fuentes hagan referencia a versiones específicas de distribuciones de Linux. Un ejemplo es de confianza, que es el nombre en clave de Ubuntu 14.04. Puede consultar su sistema operativo (basado en Debian) para obtener detalles completos con lsb_release -a
o lo lsb_release -sc
que significa abreviatura y nombre en clave .
En su pregunta, la parte $(lsb_release -sc)
se interpreta y el resultado de su sistema operativo se imprime en el archivo fuente personalizado ros-latest.list que el comando creará al ejecutarse.
Intérprete de lenguaje de comando
El sh
comando es el shell bourne . Este es uno, entre varios shells, pero se considera el antiguo estándar y, en general, uno puede estar seguro de que existe. También es común ver bash
en muchos scripts de shell. Esa declaración especifica el shell para usar, ya que los diferentes shells usan una sintaxis diferente.
En cuanto a la -c
bandera, citando man bash
:
Si la opción -c está presente, los comandos se leen de la cadena. Si hay argumentos después de la cadena, se asignan a los parámetros posicionales, comenzando con $ 0.
Todo lo que está dentro ''
se lee como una cadena, no necesitaría descubrir cómo escapar de varias comillas o preocuparse de que el intérprete interprete algo de manera incorrecta.
tl; dr
El comando imprime deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main
en un archivo fuente personalizado, reemplazando $(lsb_release -sc)
con el valor interpretado.