[ros-release] Build failed due to `ar`: command not found

Mani Monajjemi mani.monajjemi at gmail.com
Fri Feb 21 02:21:14 UTC 2014

Hello Again,

Current rosdep configurations maps `binutils` to `binutils-dev` in Ubuntu
[1]. `ar` is in `binutils` Ubuntu package which is the parent dependency of
`binutils-dev`. Therefore, installing `binutils-dev` should trigger
installation of `binutils` which ultimately should provide `ar`.
Surprisingly neither of these happened on the build server. Here is the log
file of a recent pre-release build:

As you can see, build dependencies are considered by the build script:

Install build dependencies of repo list: binutils, daemontools, sdl,
gtk2, libxml2, libudev-dev, libiw-dev, roscpp, image_transport,
sensor_msgs, std_srvs, tf, camera_info_manager, message_generation,

However, `ar` is still not found:

/usr/lib/ccache/ar: Command not found

The executed `apt-get` command shows that `binutils` is not being installed
with `binutils-dev` which (I think) implies that `ar` should already be
present on the system.

Is this a PATH related issue?

- Mani


Mani Monajjemi

On Wed, Feb 19, 2014 at 7:16 PM, Mani Monajjemi <mani.monajjemi at gmail.com>wrote:

> Hi Tully,
> Thank you very much for your reply and your suggestions.
> I will add the binutils dependency first. Then, I will look into how to
> rewrite the build system in CMake. I agree about the shortcomings of the
> current method. The decision about not installing SDK related headers and
> libraries has been made mainly due to complexity of directly using the
> framework provided by SDK. I will look into this issue as well.
> - Mani
> Mani Monajjemi
> On Wed, Feb 19, 2014 at 6:30 PM, Tully Foote <tfoote at osrfoundation.org>wrote:
>> Hi Mani,
>> The problem is that ar the executable is not installed. The immediate
>> solution is to add add a build dependency on binutils.
>> However you appear to be calling autotools from insde cmake. That's going
>> to be fragile and is not recommended as it's not going to behave well in
>> both the devel and install workspaces without quite a few hacks. (Such as
>> forcing a rebuild every build) It's probably better to package the
>> different package separately or quickly rewrite the build for the package
>> in cmake.  Note your current cmake does not install any of the SDK so it
>> won't work when someone tries to use your installed packages if it needs
>> either a library or header from the sdk.
>> Tully
>> On Wed, Feb 19, 2014 at 6:15 PM, Mani Monajjemi <mani.monajjemi at gmail.com
>> > wrote:
>>> Hello,
>>> This is the first time I am trying to release a package through ROS
>>> infrastructure. The local Debian build succeeds, but  the online build
>>> keeps failing when trying to `ar` a group of object files for creating a
>>> static library. The error message is:
>>> make[10]: /usr/lib/ccache/ar: Command not found
>>> For example here:
>>> http://jenkins.ros.org/job/ros-hydro-ardrone-autonomy_binarydeb_precise_amd64/lastFailedBuild/console
>>> Looking into the [full] console output, I can see that the PATH is being
>>> set as "/usr/lib/ccache:/usr/sbin:/usr/bin:/sbin:/bin" before running
>>> `dpkg-buildpackage`. Does the error message imply that `ar` is not
>>> installed at all on the build server (Usually `ar` is in /usr/bin which is
>>> in the PATH)?
>>> Best,
>>> Mani
>>> _______________________________________________
>>> ros-release mailing list
>>> ros-release at code.ros.org
>>> http://lists.ros.org/mailman/listinfo/ros-release
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.ros.org/pipermail/ros-release/attachments/20140220/a0150dc1/attachment.html>

More information about the ros-release mailing list