Paketverwaltung und Software-Repositorys
Debian-basierte Linux-Distributionen verlassen sich auf Repositorys (Datenbanken mit Anwendungsinstallationspaketen und Aktualisierungspaketen), um die Betriebssysteme auf dem neuesten Stand zu halten und neue Softwarepakete einfach abzurufen und zu installieren. Der Speicherort dieser Repositorys wird gespeichert /etc/apt/sources.list
, es können jedoch zusätzliche Quellen, die normalerweise nur für bestimmte Anwendungen gelten, im /etc/apt/sources.list.d
Verzeichnis gespeichert werden .
Wenn der Befehl zum Aktualisieren des Paketindex apt-get update
ausgeführt wird, sucht Ihr Betriebssystem in diesen Paket-Repositorys nach verfügbaren Paketen und registriert die verfügbaren Softwares als verfügbar für Ihr Betriebssystem, das 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
Es ist wichtig, dass diese Quellen auf bestimmte Versionen von Linux-Distributionen verweisen. Ein vertrauenswürdiges Beispiel ist der Codename für Ubuntu 14.04. Sie können Ihr Betriebssystem (debian-basiert) nach vollständigen Details abfragen, mit lsb_release -a
oder lsb_release -sc
was Kurz- und Codenamen bedeutet .
In Ihrer Frage, der Teil $(lsb_release -sc)
interpretiert und das Ergebnis von Ihrem Betriebssystem gedruckt in die benutzerdefinierten Quelldatei ros-latest.list , die der Befehl bei der Ausführung schaffen.
Befehlssprachen-Interpreter
Der sh
Befehl ist die Borowski-Shell . Dies ist eine von mehreren Shells, wird jedoch als der alte Standard angesehen, und im Allgemeinen kann man sicher sein, dass es einen gibt. 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 zitiert man bash
:
Wenn die Option -c vorhanden ist, werden Befehle aus der Zeichenfolge gelesen. Befinden sich nach der Zeichenfolge Argumente, werden diese den Positionsparametern zugewiesen, beginnend mit $ 0.
Alles in der ''
Datei wird als Zeichenfolge gelesen. Sie müssen also nicht herausfinden, wie Sie verschiedenen Anführungszeichen entgehen können, oder sich Sorgen machen, 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.