Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

El Capitan support #12

Closed
martinbeentjes opened this issue Oct 6, 2015 · 58 comments
Closed

El Capitan support #12

martinbeentjes opened this issue Oct 6, 2015 · 58 comments

Comments

@martinbeentjes
Copy link

Are there any plans on supporting El Capitan?

@mikepurvis
Copy link
Owner

Absolutely! Per #11, it sounds like it should work, especially on a clean El Cap install. Please give it a try and report back.

@hawesie
Copy link
Contributor

hawesie commented Oct 13, 2015

FLTK currently doesn't build on El Capitan: Homebrew/legacy-homebrew#41581

@mikepurvis
Copy link
Owner

Looks like this PR adds head/devel support for FLTK: Homebrew/legacy-homebrew#44806

If you're really impatient, this should get you a working FLTK:

brew reinstall --devel https://raw.githubusercontent.com/dpo/homebrew/ec46018128dde5bf466b013a6c7086d0880930a3/Library/Formula/fltk.rb

Feel free to test it out and PR in an update here to install FLTK upfront, similar to how some other things are taken care of.

@jmtatsch
Copy link

Here are some more issues with El Capitan:

Update: Ah sorry, thought this was some official El Capitan ToDo tracking. So these issues are not really relevant for your installer.

@mikepurvis
Copy link
Owner

We shouldn't need pcl --HEAD— I'm running PCL 1.7.2 from the bottle without a problem (per https://github.com/Homebrew/homebrew-science/issues/2852).

I also don't recommend Ogre 1.9 and never have— these instructions have only ever recommended Ogre 1.7 in order to have working rviz and gazebo simultaneously.

@hawesie
Copy link
Contributor

hawesie commented Oct 14, 2015

I have an El Capitan install running with this script as at #15

@anlif
Copy link

anlif commented Oct 15, 2015

I'm having some issues with linking when building the ROS source. Specifically with compressed_image_transport and pcl_ros. For compressed_image_transport I get:

ld: library not found for -ltbb

But with brew install tbb I get Warning: tbb-4.3-20150611 already installed. Similar issue with pcl. Any idea why the linker can't find the installed libraries? I just upgraded from Yosemite to El Capitan.

@mikepurvis
Copy link
Owner

@anlif Which toolchain are you using? Per #4, there is a known issue with tbb in XCode (vs. the command-line tools).

@anlif
Copy link

anlif commented Oct 16, 2015

@mikepurvis Thanks for the tip Mike. For some reason I wasn't able to locate that issue myself. I had the full XCode toolkit, but currently testing with the command-line tools. I'm new to OSX so I didn't even know that it existed.

Edit: Just completed building using the fixes suggested by @hawesie. Thanks for the help.

@jriesen
Copy link

jriesen commented Oct 19, 2015

One issue I've run across is that DYLD_LIBRARY_PATH is apparently no longer exported to subshells in El Capitan unless you disable SIP. (Apparently, this has been a hassle for an assortment of development projects out there; just Google for "DYLD_LIBRARY_PATH El Capitan".) This means I run into frustrating problems like:

$ rosrun turtlesim turtlesim_node 
dyld: Library not loaded: librospack.dylib
  Referenced from: /opt/ros/indigo/bin/rospack
  Reason: image not found
find: ftsopen: No such file or directory
[rosrun] Couldn't find executable named turtlesim_node below 
find: ftsopen: No such file or directory
$ echo $DYLD_LIBRARY_PATH
/Users/jriesen/Source/catkin_ws/devel/lib:/opt/ros/indigo/lib
$ ls /opt/ros/indigo/lib/librospack.dylib
/opt/ros/indigo/lib/librospack.dylib

I know this is not an issue with your script (which runs brilliantly, by the way, thank you so much!), just wanted to mention it's an issue with ROS on El Capitan.

As far as I can tell, this is only an issue with rosrun -- it's the only ROS utility in /opt/ros/indigo/bin/ that's a bash script, everything else is Python or C++.

My quick-and-dirty fix for this (for anyone else having trouble) was to add export DYLD_LIBRARY_PATH=$DYLD_LIBRARY_PATH:/opt/ros/indigo/lib to the start of /opt/ros/indigo/bin/rosrun, which resolves the issue.

@mikepurvis
Copy link
Owner

@jriesen Sounds like something which should be addressed upstream— maybe create an issue on that repo?

For now perhaps there's a way to detect that SIP is active, and supply a warning to the user. Would you be willing to investigate that and supply a pull request here for such a thing?

hawesie added a commit to hawesie/mongodb_store that referenced this issue Oct 26, 2015
…h library paths not getting passed properly. SOme mention of this is here mikepurvis/ros-install-osx#12
hawesie added a commit to hawesie/mongodb_store that referenced this issue Oct 26, 2015
…h library paths not getting passed properly. SOme mention of this is here mikepurvis/ros-install-osx#12
hawesie added a commit to hawesie/mongodb_store that referenced this issue Oct 26, 2015
…h library paths not getting passed properly. SOme mention of this is here mikepurvis/ros-install-osx#12
@moriarty
Copy link

Hi, thanks for the repository. I just got everything to build on El Capitan.

I had some issues, I wanted to document them here:

  1. -ltbb errors: needed to accept the terms and conditions for the command line tools Linker error on -ltbb when building with XCode toolchain (vs. CLT) #4

  2. A few like this one:

    [ 96%] Linking CXX shared library
    /Users/alex/ros_ws/indigo_desktop_full_ws/devel/lib/libpcl_ros_segmentation.dylib
    ld: library not found for -lpcl_segmentation
    

    and also:

    ld: library not found for -lpcl_common
    ld: library not found for -lpcl_io
    

    The fix was to find and replace all of the following in the file:
    src/perception_pcl/pcl_ros/CMakeLists.txt

    pcl_segmentation -> ${PCL_SEGMENTATION_LIBRARIES}
    pcl_io -> ${PCL_SEGMENTATION_LIBRARIES}
    pcl_common -> ${PCL_COMMON_LIBRARIES}

    EDIT: upstream, these have been removed ros-perception/perception_pcl@b21adf3

  3. I had problems with ros_pcl and GLEW.
    ld: framework not found GLEW
    This fixed it: PCLConfig.cmake needs to be updated for OS X PointCloudLibrary/pcl#1289 (comment)

@moriarty
Copy link

I also needed the DYLD_LIBRARY_PATH fix suggested by @jriesen to get rosrun working

@jihoonl
Copy link

jihoonl commented Oct 29, 2015

I got turtlesim working in El Capitan with the following fixes. Thanks to @moriarty

  1. pcl_ros glew not found error are fixed by
  2. DYLD_LIBRARY_PATH fixed rosrun. Thanks to @jriesen and @moriarty

@jihoonl
Copy link

jihoonl commented Oct 30, 2015

Quite funny. I was testing the installation with another mac machine. It turned out that it required two pass compilation to compile pcl_ros. I have tested with macbook pro mid 2010 and iMac Late 2012

First pass
It gets

-- Could NOT find openni (missing:  OPENNI_LIBRARY OPENNI_INCLUDE_DIRS) 
** WARNING ** apps features related to openni will be disabled
CMake Error at /usr/local/share/pcl-1.8/PCLConfig.cmake:46 (message):
  simulation is required but glew was not found
Call Stack (most recent call first):
  /usr/local/share/pcl-1.8/PCLConfig.cmake:650 (pcl_report_not_found)
  /usr/local/share/pcl-1.8/PCLConfig.cmake:813 (find_external_library)
  CMakeLists.txt:8 (find_package)


-- Configuring incomplete, errors occurred!
See also "/Users/jihoonl/research/ros/opt/indigo/indigo_desktop_full_ws/build/pcl_ros/CMakeFiles/CMakeOutput.log".
[pcl_ros] <== '/Users/jihoonl/research/ros/opt/indigo/indigo_desktop_full_ws/build/pcl_ros/build_env.sh /usr/local/bin/cmake /Users/jihoonl/research/ros/opt/indigo/indigo_desktop_full_ws/src/perception_pcl/pcl_ros -DCATKIN_DEVEL_PREFIX=/Users/jihoonl/research/ros/opt/indigo/indigo_desktop_full_ws/devel -DCMAKE_INSTALL_PREFIX=/opt/ros/indigo -DCMAKE_BUILD_TYPE=Release -DPYTHON_LIBRARY=/usr/local/Cellar/python/2.7.10_2/Frameworks/Python.framework/Versions/2.7/lib/libpython2.7.dylib -DPYTHON_INCLUDE_DIR=/usr/local/Cellar/python/2.7.10_2/Frameworks/Python.framework/Versions/2.7/include/python2.7' failed with return code '1'

Failed   <== pcl_ros                          [ 5.4 seconds ]                                                                                         

This is fixed by changing GLEW_INCLUDE_DIR in PCLConfig.cmake as suggested in http://stackoverflow.com/questions/26311715/solving-a-difficult-compilation-issue#comment52777960_28347643

Then
it gets

ld: framework not found GLEW
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make[2]: *** [/Users/jihoonl/research/ros/opt/indigo/indigo_desktop_full_ws/devel/lib/pcl_ros/convert_pcd_to_image] Error 1
make[1]: *** [CMakeFiles/convert_pcd_to_image.dir/all] Error 2
make: *** [all] Error 2
[pcl_ros] <== '/Users/jihoonl/research/ros/opt/indigo/indigo_desktop_full_ws/build/pcl_ros/build_env.sh /usr/bin/make --jobserver-fds=3,4 -j' failed with return code '2'

Failed   <== pcl_ros                          [ 38.5 seconds ]                                                                                        

This gets fixed with PointCloudLibrary/pcl#1289 (comment).

@grafoteka
Copy link

Hi @mikepurvis which version of ROS have you installed? Jade or Indigo? Works right?

Thanks

@mikepurvis
Copy link
Owner

I'm still running Yosemite + Indigo. Would like to do a El Cap install in Parallels at some point, but it's an extremely slow process— virtualization of OS X itself is awful.

@gareth-cross
Copy link

The DYLD_LIBRARY_PATH issue also affected catkin_make run_tests for me. This was because the build.make file generated for run_tests executes workspace/build/catkin_generated/env_cached.sh, which switches to the sh shell, where DYLD_LIBRARY_PATH was not defined to include /opt/ros/jade/lib.

A quick workaround is simply to run the gtest binary directly, the path to which is spat out by ROS' run_tests.py script anyways. Example output of the run_tests script:

run_tests.py: execute commands
  /Users/gareth/Documents/workspace/devel/lib/foo/gtest_foo --gtest_output=xml:/Users/gareth/Documents/workspace/build/test_results/foo/gtest-gtest_foo.xml
dyld: Library not loaded: libroscpp.dylib
  Referenced from: /Users/gareth/Documents/vworkspace/devel/lib/foo/gtest_foo
  Reason: image not found

Copy-paste the command and the tests run for package foo w/ no issues.

@l0g1x
Copy link

l0g1x commented Nov 16, 2015

brew install homebrew/science/pcl -HEAD

didnt work for me, but brew install homebrew/science/pcl did (without -HEAD, just as @mikepurvis suggested he used pcl 1.7)

Krystians-MacBook-Pro:~ krystian$ brew install homebrew/science/pcl
==> Installing pcl from homebrew/homebrew-science
==> Downloading https://homebrew.bintray.com/bottles-science/pcl-1.7.2.el_capitan.bottle.2.tar.gz
######################################################################## 100.0%
==> Pouring pcl-1.7.2.el_capitan.bottle.2.tar.gz
==> Caveats
.app bundles were installed.
Run `brew linkapps pcl` to symlink these to /Applications.
==> Summary
🍺  /usr/local/Cellar/pcl/1.7.2: 1070 files, 122M
Krystians-MacBook-Pro:~ krystian$

@weichnn
Copy link

weichnn commented Nov 20, 2015

I install ros indigo in EL Cap. but I get this problem. Suggestion of @jriesen cannot deal with it...Am I do anything wrong?..

$ rosrun turtlesim turtlesim_node
dyld: Library not loaded: librospack.dylib
  Referenced from: /Users/weichend/ros_catkin_ws/install_isolated/bin/rospack
  Reason: image not found
find: ftsopen: No such file or directory
[rosrun] Couldn't find executable named turtlesim_node below
find: ftsopen: No such file or directory
$ echo $DYLD_LIBRARY_PATH
/Users/weichend/ros_catkin_ws/install_isolated/lib
$ ls /opt/ros/indigo/lib/librospack.dylib
ls: /opt/ros/indigo/lib/librospack.dylib: No such file or directory

@l0g1x
Copy link

l0g1x commented Nov 20, 2015

sudo vim /opt/ros/indigo/bin/rosrun and place DYLD_LIBRARY_PATH=$DYLD_LIBRARY_PATH:/opt/ros/indigo/lib in there

@spaghetti-
Copy link
Contributor

Linking is horribly broken on my install on el cap for some reason.

Lots of library not found errors (for example, for rospack)

I fixed a few with install_name_tool but what could be the cause of this issue?

@angerhang
Copy link

I would also vote for the removal of exit 1 since the error message simply doesn't make sense

These instructions are about to install Python from Homebrew. However, there are already
pip packages installed against the system python, in the following path:

    /Library/Python/2.7/site-packages/

To proceed, please uninstall these packages:

    for i in six==1.10.0; do sudo pip uninstall -y ; done

Or change the error message to something better :) Otherwise it is more difficult for those who are installing via curl.

@mikepurvis
Copy link
Owner

You have been heard: c344dd7

@angerhang
Copy link

Ok almost there. I don't know why the executable is not found when I tried to run turtlesim:

Hangs-MBP:turtlesim Hang$ rosrun turtlesim turtlesim_node
[rosrun] Couldn't find executable named turtlesim_node below /Users/Hang/ros_catkin_ws/src/ros_tutorials/turtlesim

I also tried rosmake turtlesimwhich didn't seem to work.

@spmaniato
Copy link
Contributor

@angerhang Have you sourced the ROS installation? The script echoes that, but doesn't do it for you:

echo "Installation successful, please source the ROS workspace:"
echo
echo "  source ${ROS_INSTALL_DIR}/setup.bash" # For example, source /opt/ros/indigo/setup.bash

I'm asking because rosrun seems to be looking in the wrong directory.

@angerhang
Copy link

Actually I did source but it still didn't work.

I just solved it by uninstalling everything and ./install again. I was mixing the install script and the tutorial from the ros website which apparently should be the direct cause.

But now everything works like magic.
Thank you @spaghetti- @mikepurvis : )

@abi93k
Copy link

abi93k commented Feb 25, 2016

DYLD bug
I get the following error when I use roslaunch

ImportError: dlopen(/Users/Abhishek/ros_catkin_ws/install_isolated/lib/python2.7/site-packages/tf/_tf.so, 2): Library not loaded: libtf2_ros.dylib
  Referenced from: /Users/Abhishek/ros_catkin_ws/install_isolated/lib/python2.7/site-packages/tf/_tf.so
  Reason: image not found

Any fixes ?

@ramamoorthyluxman
Copy link

I think the fix given by jriesen should solve your bug..

add, export DYLD_LIBRARY_PATH=$DYLD_LIBRARY_PATH:/opt/ros/indigo/lib, in the beginning of this file - /opt/ros/indigo/bin/rosrun

@moriarty
Copy link

I just got it working on El Capitan + Indigo.

First, I had a protobuf + gazebo issues, but I think it is rare #33

All of the issues were then pcl_ros issues:

  1. Replace pcl_ros 1.2.7 with 1.3.0, which is for jade. I just modified the .rosinstall file. Its for jade but only a few commits ahead of the one needed (ros-perception/perception_pcl@b21adf3).

    - tar:
        local-name: perception_pcl/pcl_ros
        uri: https://github.com/ros-gbp/perception_pcl-release/archive/release/jade/pcl_ros/1.3.0-0.tar.gz
        version: perception_pcl-release-release-jade-pcl_ros-1.3.0-0
    
  2. There was a pcl_ros + python issue: osx10.10.4 pcl_ros + brewed python trouble and solution #10. pcl is looking for python in 2.7.10_2 and I had 2.7.11 replace, 2.7.11 with in the following command with the version ls -la shows. Thanks @kpykc

    pushd /usr/local/Cellar/python
    ls -la 
    ln -s 2.7.11 2.7.10_2
    popd
    
  3. There was an Eigen3 issue: Eigen3 cmake module not found. ros-perception/perception_pcl#106 (comment)

  4. There was the usual GLEW issue: PCLConfig.cmake needs to be updated for OS X PointCloudLibrary/pcl#1289 (comment)

  5. And there is the DYLD_LIBARY_PATH issue El Capitan support #12 (comment)

Thanks again @mikepurvis

@hawesie
Copy link
Contributor

hawesie commented Mar 21, 2016

On a recent El Capitan reinstall I ran into a problem where the map_server only produced all black maps. To fix this I had to install SDL_image from source with the compilation flag SDL_IMAGE_USE_COMMON_BACKEND set. I don't know if this is due to some quirk on my machine, or a more general fault.

@luqiang21
Copy link

@jriesen Thank you so much. I can't use rosrun after updating OS. Follow your instruction, I solved the problem.

@fdsa1860
Copy link

@weichnn I guess you installed separately in the folder ~/ros_catkin_ws/
So you should add ~/ros_catkin_ws/install_isolated/lib/ to your path instead.

@roiscpens
Copy link

roiscpens commented Apr 29, 2016

I try to install ROS on El Capitan by following intruction on ros.org, but error happen on resolving dependencies as follows:

$ rosdep install --from-paths src --ignore-src --rosdistro jade -y
executing command [sudo -H pip install -U nose]
Password:
Downloading/unpacking nose
  Running setup.py egg_info for package nose
    no previously-included directories found matching 'doc/.build'
Installing collected packages: nose
  Running setup.py install for nose
    error: could not create '/System/Library/Frameworks/Python.framework/Versions/2.7/man': Operation not permitted
    Complete output from command /usr/bin/python -c "import setuptools;__file__='/tmp/pip-build/nose/setup.py';exec(compile(open(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --record /tmp/pip-FXoKP5-record/install-record.txt --single-version-externally-managed:
    running install
running build
running build_py
running install_lib
running install_data
creating /System/Library/Frameworks/Python.framework/Versions/2.7/man
error: could not create '/System/Library/Frameworks/Python.framework/Versions/2.7/man': Operation not permitted
----------------------------------------
Command /usr/bin/python -c "import setuptools;__file__='/tmp/pip-build/nose/setup.py';exec(compile(open(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --record /tmp/pip-FXoKP5-record/install-record.txt --single-version-externally-managed failed with error code 1 in /tmp/pip-build/nose
Storing complete log in /var/root/Library/Logs/pip.log
ERROR: the following rosdeps failed to install
  pip: command [sudo -H pip install -U nose] failed

Any fix ?

@mikepurvis
Copy link
Owner

@kerapansapi The instructions in this repo are very different from the ones on ros.org; the problem that you are running to is exactly the kind of thing we try to mitigate, by staying away from the system installations of things, and sticking to Homebrew's python, non-sudo pip use, etc.

@gunshi
Copy link

gunshi commented May 2, 2016

Hi, I'm facing the librospack.dylib not loaded(reason:image not found) issue, that many have mentioned here before.
The output of

echo $DYLD_LIBRARY_PATH

is

/Users/gunshigupta/ros_catkin_ws/install_isolated/lib:/Users/gunshigupta/ros_catkin_ws/install_isolated/lib

So i have placed

export DYLD_LIBRARY_PATH=$DYLD_LIBRARY_PATH:/Users/gunshigupta/ros_catkin_ws/install_isolated/lib

in the bash file for rosrun placed in /Users/gunshigupta/ros_catkin_ws/install_isolated/bin.
However now i get a different error, and the command that produces it is:

rosrun libuvc_camera camera_node

The error is
[rospack] Error: package 'libuvc_camera' not found
(I removed the camera location information from the command because I wasn't sure I was providing the correct vendor and location ID, and just wanted to see what output this would give, so is that leading to the problem?)
The only info about the camera I found in system info was:
FaceTime HD Camera (Built-in):

Model ID: UVC Camera VendorID_1452 ProductID_34057
Unique ID: 0xfa20000005ac8509

There is no location ID and the vendor ID seems wrong, since the IDs i've seen people supply on the forums and tutorials are all in hex format starting with 0x. What info should I supply to the command, and is the error i'm getting right now related to the missing camera information?
(I did try with rosrun libuvc_camera camera_node _vendor:="1452" _product:="34057"
as well)
Any help would be appreciated. Thanks.

@gunshi
Copy link

gunshi commented May 2, 2016

Edit: I understand the libuvc_camera error, since the package needs to be installed by me and did not come with indigo, but I still wanted to ask about the IDs.

@justinthomas
Copy link
Contributor

Sorry. Please disregard that previous comment. Somehow a reference for a pull request in my repo somehow snuck in here.

@OmenderSharma28
Copy link

OmenderSharma28 commented Jun 3, 2016

10%] Built target libjasper
[ 10%] Built target libpng
[ 14%] Built target IlmImf
[ 18%] Built target opencv_core
[ 22%] Built target opencv_imgproc
[ 24%] Built target opencv_imgcodecs
[ 25%] Linking CXX shared library ../../lib/libopencv_videoio.dylib
Undefined symbols for architecture x86_64:
"_CMBlockBufferCreateWithMemoryBlock", referenced from:
.
.
.

ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make[2]: *** [lib/libopencv_videoio.3.1.0.dylib] Error 1
make[1]: *** [modules/videoio/CMakeFiles/opencv_videoio.dir/all] Error 2
make: *** [all] Error 2

error coming up during make . What should i do to fix it?

@mikepurvis
Copy link
Owner

El Cap has a pretty good story now.

@spaghetti-
Copy link
Contributor

Just a heads up: the badge on the readme still says yosemite so if the install is fully supported by the script on El Cap we should change that.

@vietvudanh
Copy link

vietvudanh commented Jun 24, 2016

@mikepurvis: Thank you so much for this, I have just struggled with install ROS by myself, this repo really saved me.

However, there is one thing that I still wondering, and may sound silly but: How do you install packages on OSX? Is there any packages for brew like apt-get install for Ubuntu?

@spaghetti-
Copy link
Contributor

@vietvudanh what do you mean? there are lots of packages for brew, check out brew.sh

@vietvudanh
Copy link

@spaghetti- I mean ROS package for brew. I.e I'm trying to install this: urg-node for Indigo.

@mikepurvis
Copy link
Owner

@vietvudanh You can build whatever you want from source, or if there are specific packages you'd like included in the initial workspace, you can add them to the ROS_EXTRA_PACKAGES env var.

@vietvudanh
Copy link

vietvudanh commented Jun 26, 2016

@mikepurvis: Thank you, I am aware of that. I am just wondering if there is anyway to install by brew.

freshNfunky added a commit to freshNfunky/ros-indigo that referenced this issue Aug 11, 2016
modify CMakeList.txt with this patch:

- error finding library pcl_io:
„ld: library not found for -lpcl_io“

mikepurvis/ros-install-osx#12

Patch-File:

https://github.com/ros-perception/perception_pcl/blob/b21adf3b0bf290752e
82d502392c2f81382c8508/pcl_ros/CMakeLists.txt

edit file:
- change Eigen3 to Eigen
- remove Testing at line 177
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests