软件包管理和软件存储库
基于Debian的Linux发行版依赖于存储库(应用程序安装软件包和升级软件包的数据库)来保持操作系统的更新,并易于获取和安装新软件包。这些存储库的位置存储在中/etc/apt/sources.list
,但是,通常对于特定应用程序而言唯一的其他源也可以存储在/etc/apt/sources.list.d
目录中。
当执行package index update命令时apt-get update
,您的操作系统将检查这些软件包存储库中是否有可用软件包,并将可用软件注册为操作系统可用,然后您可以继续使用传统apt-get install <package>
命令进行安装。
这些软件来源之一的示例是:
deb http://us-west-2.ec2.archive.ubuntu.com/ubuntu/ trusty main restricted
对于这些资源,重要的是要参考linux发行版的特定版本。一个值得信赖的例子是Ubuntu 14.04的代号。您可以使用lsb_release -a
或lsb_release -sc
表示short和codename来查询操作系统(基于debian)以获取完整的详细信息。
在您的问题中,将对该零件$(lsb_release -sc)
进行解释,并将操作系统的结果打印到自定义源文件ros-latest.list中,该文件将在执行时创建。
命令语言解释器
该sh
命令是伯恩壳。这是几种外壳中的一种,但被认为是旧标准,通常可以肯定存在。bash
在许多shell脚本中也很常见。该声明指定要使用的shell,因为不同的shell使用不同的语法。
关于-c
旗帜,引用man bash
:
如果存在-c选项,则从字符串读取命令。如果字符串后面有参数,则将它们分配给位置参数,从$ 0开始。
内的所有内容都''
读为字符串,您无需弄清楚如何转义各种引号,也不必担心shell用错误的方式解释某些内容。
tl; dr
该命令将打印deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main
到自定义源文件,替换$(lsb_release -sc)
为解释后的值。