ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange
Ask Your Question
0

Build ROS from source without using default ffmpeg in Ubuntu 12.10

asked 2013-05-27 06:25:18 -0500

jiapei100 gravatar image

updated 2014-04-20 14:09:40 -0500

ngrennan gravatar image

Hi, all:

My environment:

  1. OS: Ubuntu 12.10 OpenCV: 2.4.5 release
  2. PCL: 1.6.0 release (built from source)
  3. ffmpeg: 1.2 release (built from source)
  4. VTK: 5.10.1 release (built from source)
  5. boost: 1.50.0 (installed from the repository)

There are some reasons that I really don't want to use the default:

  1. ffmpeg -- libavcodec-dev libavformat-dev libavutil-dev libswscale-dev
  2. VTK 5.8.0 boost 1.49

from the default repository.

Now here comes my question:

I did have my ffmpeg 1.2 installed <a href=http://visionopen.com/questions/ffmpeg.png"> and vtk 5.10.1 installed <a href=http://visionopen.com/questions/vtk.png">

but, when I tried to install ROS from source (refer to http://www.ros.org/wiki/groovy/Installation/Source), the following command

:~/ros_catkin_ws$ rosdep install --from-paths src --ignore-src --rosdistro groovy -y
still requires the following packages:
libavcodec-dev libavformat-dev libavutil-dev libswscale-dev libvtk5-dev libvtk5.8

I'm thinking at least, there is something like in CMake which lets me to select my own path/directory, rather than setup by ROS itself. There should be existing such a freedom to let me specify which version and which directory of ffmpeg, which version and which directory of vtk. But, according to http://www.ros.org/wiki/groovy/Installation/Source, I can't find such a freedom. Can anybody help to let me know how to build ROS from source based on the dependencies that I myself am able to specify?

Thank you very much.

Best Regards

Pei

edit retag flag offensive close merge delete

Comments

Sorry it took so long for me to get back to you, I was out of internet coverage for a few days.

William gravatar image William  ( 2013-05-29 04:54:56 -0500 )edit

1 Answer

Sort by ยป oldest newest most voted
1

answered 2013-05-29 04:53:59 -0500

William gravatar image

updated 2013-05-29 04:55:47 -0500

In that step you are using rosdep to resolve dependencies for the packages which are in your src directory. One or more of those packages indirectly depend on:

libavcodec-dev libavformat-dev libavutil-dev libswscale-dev libvtk5-dev libvtk5.8

All rosdep does it look at the declared dependencies, which are declared using rosdep keys, like vtk and translates them to one or more OS installer key(s). In the case of vtk that is libvtk5-dev for apt. See:

https://github.com/ros/rosdistro/blob/master/rosdep/base.yaml#L1089

I can only guess that this apt package depends directly on libvtk5.8. This is probably a similar problem to why libav* packages are getting pulled in.

You do not have to resolve all of the dependencies from rosdep, it is simply a tool to help with that. If you know you have ffmpeg from source then you can just ignore rosdep and not install it. The from source build of ROS will continue and find your version of ffmpeg if it is on the appropriate PATH's.

You can use this command:

rosdep install --from-paths src --ignore-src --rosdistro groovy --simulate

to see what rosdep would do and you can cherry pick out the apt-get calls which you want and run them manually. After that you can continue with the source installation normally.

edit flag offensive delete link more

Comments

The rosdep check option is also helpful in this situation.

joq gravatar image joq  ( 2013-05-29 05:10:21 -0500 )edit

Question Tools

1 follower

Stats

Asked: 2013-05-27 06:25:18 -0500

Seen: 687 times

Last updated: May 29 '13