这是错误消息:
E: Malformed entry 1 in list file /etc/apt/sources.list.d/ros-latest.list (Component)
Run Code Online (Sandbox Code Playgroud)
这是我的文件中写的:
deb http://packages.ros.org/ros/ubuntu $
(lsb_release -sc) main
Run Code Online (Sandbox Code Playgroud)
怎么了?
该文件的正确条目应如下所示:
deb http://packages.ros.org/ros/ubuntu zesty main
Run Code Online (Sandbox Code Playgroud)
其中 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
Run Code Online (Sandbox Code Playgroud)
上面的 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 -sc)
字面写,而不是将 lsb_release 命令的输出插入到配置文件中。