ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange |
1 | initial version |
First of all, geographic_info
is a stack and not a system dependency, therefore I must use <depend package="geodesy"/>
instead of <rosdep name="geographicinfo"/>
in my manifest file. geodesy
is a package in the stack geographic_info
.
Next, rosmake
cannot automatically download missing dependencies like it used to before Fuerte. Therefore, I must manually ensure that the dependencies are fulfilled before calling rosmake
. This can be done with apt
or rosdep
.
For example, sudo apt-get install ros-fuerte-geographic-info
works in this particular case. However, I would not recommend this method in general.
The preferred method is to let rosdep
find the exact package name for each dependency. For this, I need rosdep
rules, and I need to tell rosdep
where to find these rules. rosdep
builds a database of rules from files found in directory /etc/ros/rosdep/sources.list.d
. ROS puts a file there called 20-default.list
. I created one called 19-mine.list
and put this inside: yaml http://ros.org/rosdoclite/fuerte_bak/api/geographic_info/repo.yaml
. This yaml file on the ROS server contains the rules to find geographic_info
. I then run rosdep update
, which scans both local files and downloads the rules. Then, rosdep install MyPackage
should download whatever is missing.
Sadly, I still get: ERROR: the following packages/stacks could not have their rosdep keys resolved to system dependencies: MyPackage: Missing resource geodesy
.
As you see, I haven't solved the problem yet. Please comment on my answer if I said anything wrong.
2 | re-wording |
First of all, geographic_info
is a stack and not a system dependency, therefore I must use <depend package="geodesy"/>
instead of <rosdep name="geographicinfo"/>
in my manifest file. geodesy
is a package in the stack geographic_info
.
Next, rosmake
cannot automatically download missing dependencies like it used to before Fuerte. Therefore, I must manually ensure that the dependencies are fulfilled before calling rosmake
. This can be done with apt
or rosdep
.
For example, sudo apt-get install ros-fuerte-geographic-info
works in this particular case. However, I would not recommend this method in general.
The preferred method is to let rosdep
find the exact package name for each dependency. For this, I need rosdep
rules, and I need to tell rosdep
where to find these rules. rosdep
builds a database of rules from files found in directory /etc/ros/rosdep/sources.list.d
. ROS puts a file there called 20-default.list
. I created one called 19-mine.list
and put this inside: yaml http://ros.org/rosdoclite/fuerte_bak/api/geographic_info/repo.yaml
. This yaml file on the ROS server contains the rules to find geographic_info
. I then run rosdep update
, which scans both local files and downloads the rules. Then, rosdep install MyPackage
should download whatever is missing.
Sadly, I still get: ERROR: the following packages/stacks could not have their rosdep keys resolved to system dependencies: MyPackage: Missing resource geodesy
.
As you see, I haven't the problem isn't solved the problem yet. yet, but we're half-way there. Please comment on my answer if I said anything wrong.
3 | Added a different approach |
First of all, geographic_info
is a stack and not a system dependency, therefore I must use <depend package="geodesy"/>
instead of <rosdep name="geographicinfo"/>
in my manifest file. geodesy
is a package in the stack geographic_info
.
Next, rosmake
cannot automatically download missing dependencies like it used to before Fuerte. Therefore, I must manually ensure that the dependencies are fulfilled before calling rosmake
. This can be done with apt
or rosdep
.
For example, sudo apt-get install ros-fuerte-geographic-info
works in this particular case. However, I would not recommend this method in general.
The preferred method is to let rosdep
find the exact package name for each dependency. For this, I need rosdep
rules, and I need to tell rosdep
where to find these rules. rosdep
builds a database of rules from files found in directory /etc/ros/rosdep/sources.list.d
. ROS puts a file there called 20-default.list
. I created one called 19-mine.list
and put this inside: yaml http://ros.org/rosdoclite/fuerte_bak/api/geographic_info/repo.yaml
. This yaml file on the ROS server contains the rules to find geographic_info
. I then run rosdep update
, which scans both local files and downloads the rules. Then, rosdep install MyPackage
should download whatever is missing.
Sadly, I still get: ERROR: the following packages/stacks could not have their rosdep keys resolved to system dependencies: MyPackage: Missing resource geodesy
.
As you see, Other approach
I went on git's website, forked https://github.com/ros/rosdistro, and modified file rosdep/base.yaml
to add these lines:
geographic_info:
ubuntu:
apt:
ros-fuerte-geographic-info
I'm not sure if these lines will work, but I will update this question as soon as I know. I have to wait until the change is accepted by ROS. If it is, then rosdep update
would add this rule in my local database and rosdep install MyPackage
would work.
In the end, the problem isn't solved yet, but we're half-way there. Please comment on my answer help to complete this solution if I said anything wrong.
4 | Added the rejection of the pull request |
First of all, geographic_info
is a stack and not a system dependency, therefore I must use <depend package="geodesy"/>
instead of <rosdep name="geographicinfo"/>
in my manifest file. geodesy
is a package in the stack geographic_info
.
Next, rosmake
cannot automatically download missing dependencies like it used to before Fuerte. Therefore, I must manually ensure that the dependencies are fulfilled before calling rosmake
. This can be done with apt
or rosdep
.
For example, sudo apt-get install ros-fuerte-geographic-info
works in this particular case. However, I would not recommend this method in general.
The preferred method is to let rosdep
find the exact package name for each dependency. For this, I need rosdep
rules, and I need to tell rosdep
where to find these rules. rosdep
builds a database of rules from files found in directory /etc/ros/rosdep/sources.list.d
. ROS puts a file there called 20-default.list
. I created one called 19-mine.list
and put this inside: yaml http://ros.org/rosdoclite/fuerte_bak/api/geographic_info/repo.yaml
. This yaml file on the ROS server contains the rules to find geographic_info
. I then run rosdep update
, which scans both local files and downloads the rules. Then, rosdep install MyPackage
should download whatever is missing.
Sadly, I still get: ERROR: the following packages/stacks could not have their rosdep keys resolved to system dependencies: MyPackage: Missing resource geodesy
.
Other approach
I went on git's website, forked https://github.com/ros/rosdistro, and modified file rosdep/base.yaml
to add these lines:
geographic_info:
ubuntu:
apt:
ros-fuerte-geographic-info
I'm not sure if these lines will work, but I will update In the end, this is the answer that I got from ROS (Vincent Rabaud):
base.yaml is only for upstream dependencies (non-ROS). @tfoote or @tkruse should be able to answer your question
though.as soon as I know. I have to wait until the change is accepted by ROS. If it is, thenrosdep update
would add this rule in my local database androsdep install MyPackage
would work.
In the end, the problem isn't solved yet, but we're half-way there. Please help to complete this solution if you can. :-)