Ask Your Question

Revision history [back]

click to hide/show revision 1
initial version

Is there a workaround for this where I can skip updating the package list but only install the ros packages?

If you want to use a package manager: no. The package manager needs to know which packages exist, and for that it needs to load something called an index file. And those files are exactly what gets downloaded when you run apt-get update.

Furthermore:

I want to install only a single package from ROS onto my Ubuntu 16.04 ARM.

While this may seem like a simple thing, consider the fact that all ROS packages (and in fact: all software ever create) have runtime dependencies. Even if you say: "but I don't link to any libraries!", you'd still be using the C++ standard runtime library. For ROS nodes specifically, they'll always at least depend on a client library like roscpp or perhaps the Python libraries, but typically they'll depend on many more libraries.

So even though you could relatively easily download a .deb, extract it and then access the one binary that you're interested in, chances are that it'll be impossible to run it, as none of its dependencies are present on your "Ubuntu 16.04 ARM".

Is there a workaround for this where I can skip updating the package list but only install the ros packages?

If you want to use a package manager: no. The package manager needs to know which packages exist, and for that it needs to load something called an index file. And those files are exactly what gets downloaded when you run apt-get update.

Furthermore:

I want to install only a single package from ROS onto my Ubuntu 16.04 ARM.

While this may seem like a simple thing, consider the fact that all ROS packages (and in fact: all software ever create) created) have runtime dependencies. Even if you say: "but I don't link to any libraries!", you'd still be using the C++ standard runtime library. For ROS nodes specifically, they'll always at least depend on a client library library like roscpp or perhaps the Python libraries, but typically they'll depend on many more libraries.libraries (OpenCV, PCL, TF, msg packages, actionlib, etc, etc).

So even though you could relatively easily download a single .deb, extract it and then access the one binary that you're interested in, chances are that it'll be impossible to run it, as none of its dependencies are present on your "Ubuntu 16.04 ARM".


So is this completely impossible: no. If you're willing to build from sources and to figure out the exact dependencies of a particular package/node it can be done. It'll just be more work than "install only a single package" using the package manager. Perhaps you can check the bmwcarit/meta-ros project (which actually builds everything from sources for embedded platforms) and see whether they have something that can do what you want.