= Introduction = While the core ROS libraries can be installed into system directories via Debian packages or other system-based distribution mechanisms, a given ROS install base usually contains binaries and scripts located in user space. Several environment variables make these resources available to the ros tools, such as ROS_PACKAGE_PATH for the legacy buildsystem [[rosbuild]], and CMAKE_PREFIX_PATH for the new buildsystem [[catkin]]. By manipulating this environment variable, users can create their own packages, install additional packages from source, or even shadow installed packages with experimental versions. There are a few ways to manage these "overlay" environments. A user can manage [[ROS/EnvironmentVariables|environment variables]] by hand, but this is cumbersome, can lead to confusion when switching environments, and errors in this variable can easily break a user's environment. Alternatively, [[catkin]] and [[rosws]] provide systematic methods for managing package overlays in a user's workspace. Follow the tutorials here to setup either a catkin or a rosbuild overlay workspace for Groovy: * Catkin overlay workspace [[catkin/Tutorials/workspace_overlaying]] * rosbuild overlay workspace [[catkin/Tutorials/using_rosbuild_with_catkin]]