Paketverwaltung und Software-Repositorys
Debian-basierte Linux-Distributionen sind auf Repositorys (Datenbanken von Anwendungsinstallationspaketen und Upgrade-Paketen) angewiesen, um die Betriebssysteme auf dem neuesten Stand zu halten und neue Softwarepakete einfach abzurufen und zu installieren. Der Speicherort dieser Repositorys wird in gespeichert /etc/apt/sources.list
, jedoch können zusätzliche Quellen, die normalerweise für bestimmte Anwendungen eindeutig sind, im /etc/apt/sources.list.d
Verzeichnis gespeichert werden .
Wenn der Befehl zum Aktualisieren des Paketindex apt-get update
ausgeführt wird, prüft Ihr Betriebssystem anhand dieser Paket-Repositorys nach verfügbaren Paketen und registriert die verfügbaren Softwares als für Ihr Betriebssystem verfügbar, die Sie mit dem herkömmlichen apt-get install <package>
Befehl installieren können .
Ein Beispiel für eine dieser Softwarequellen ist:
deb http://us-west-2.ec2.archive.ubuntu.com/ubuntu/ trusty main restricted
Für diese Quellen ist es wichtig, auf bestimmte Versionen von Linux-Distributionen zu verweisen. Ein Beispiel ist trusty, der Codename für Ubuntu 14.04. Sie können Ihr Betriebssystem (auf Debian-Basis) nach vollständigen Details mit lsb_release -a
oder abkürzen, lsb_release -sc
die Kurzbezeichnung und Codename bedeuten .
In Ihrer Frage, der Teil $(lsb_release -sc)
interpretiert und das Ergebnis von Ihrem Betriebssystem wird gedruckt in den benutzerdefinierten Quelldatei ros-latest.list, die der Befehl bei der Ausführung schaffen.
Befehlssprachen-Interpreter
Der sh
Befehl ist die Bourne-Shell . Dies ist eine unter mehreren Schalen, wird aber als der alte Standard betrachtet und im Allgemeinen kann man sicher sein, dass es existiert. Es ist auch üblich, bash
in vielen Shell-Skripten zu sehen. Diese Deklaration gibt die zu verwendende Shell an, da unterschiedliche Shells unterschiedliche Syntax verwenden.
In Bezug auf die -c
Flagge man bash
:
Wenn die Option -c vorhanden ist, werden Befehle aus string gelesen. Wenn nach der Zeichenfolge Argumente vorhanden sind, werden diese den Positionsparametern zugewiesen, beginnend mit $ 0.
Alles innerhalb von ''
wird als Zeichenfolge gelesen. Sie müssen nicht herausfinden, wie Sie verschiedene Anführungszeichen umgehen oder sich Sorgen machen müssen, dass die Shell etwas falsch interpretiert.
tl; dr
Der Befehl wird deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main
in eine benutzerdefinierte Quelldatei gedruckt und $(lsb_release -sc)
durch den interpretierten Wert ersetzt.