错误信息如下:
E: Malformed entry 1 in list file /etc/apt/sources.list.d/ros-latest.list (Component)
这是我的文件中写的内容:
deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main
怎么了?
答案1
该文件的正确条目应如下所示:
deb http://packages.ros.org/ros/ubuntu zesty main
其中 zesty 应该被替换为你的 ubuntu 发行版本的代号。
这$(lsb_release -sc)
应该是一个 shell 脚本命令,当你在终端中输入如下内容时,它会被 shell (例如 bash) 扩展:
echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" | sudo tee /etc/apt/sources.list.d/ros-latest.list
上面的 shell 命令应该调用lsb_release命令来找出正确的 ubuntu 代号(例如 17.04 为 zesty,16.10 为 yakkety,16.04 为 xenial)。lsb_release 的输出应该是 ubuntu 发行代号,然后将其插入引号之间的字符串中,然后写入文件 /etc/apt/sources.list.d/ros-latest.list。
但是,在键入命令时,必须在$
和之间添加一个额外的空格,这会导致按字面意思书写,而不是将 lsb_release 命令的输出插入到配置文件中。(
$ (lsb_release -sc)