![Mastering ROS for Robotics Programming(Second Edition)](https://wfqqreader-1252317822.image.myqcloud.com/cover/200/36700200/b_36700200.jpg)
ROS metapackages
Metapackages are specialized packages in ROS that only contain one file, that is, a package.xml file. They don't contain folders and files like a normal package.
Metapackages simply group a set of multiple packages as a single logical package. In the package.xml file, the metapackage contains an export tag, as shown here:
<export> <metapackage/> </export>
Also, in metapackages, there are no <buildtool_depend> dependencies for catkin; there are only <run_depend> dependencies, which are the packages grouped in the metapackage.
The ROS navigation stack is a good example of metapackages. If ROS and its navigation package are installed, we can try the following command, by switching to the navigation metapackage folder:
$ roscd navigation
Open package.xml using your favorite text editor (gedit in the following case):
$ gedit package.xml
This is a lengthy file; here is a stripped-down version of it:
![](https://epubservercos.yuewen.com/1D30EC/19470397401586306/epubprivate/OEBPS/Images/c0942bf2-2c00-45e9-8592-9cd47ffdc63e.png?sign=1738844786-U2ZEICOdGZ0CGXpvBmCZYg58g3BroVj5-0-c72e39e168f059340ef4479f1857311e)