![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=1738834264-pLAMywWnby8HBryRI8Je14WNL27MaURC-0-87484b3489f179c49a48ff5a5a30711c)