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

Installation on macOS #1700

Closed
joansola opened this issue Jun 30, 2022 · 39 comments
Closed

Installation on macOS #1700

joansola opened this issue Jun 30, 2022 · 39 comments

Comments

@joansola
Copy link

Trying to install on macOS Monterey, following the MacOS installation instructions:

Starting with

brew upgrade

and then the first instruction line:

brew tap gepetto/homebrew-gepetto

produces the following errors:

(base) vermicelle:hidro_lib jsola$ brew tap gepetto/homebrew-gepetto
==> Tapping gepetto/gepetto
Cloning into '/usr/local/Homebrew/Library/Taps/gepetto/homebrew-gepetto'...
remote: Enumerating objects: 745, done.
remote: Counting objects: 100% (36/36), done.
remote: Compressing objects: 100% (9/9), done.
remote: Total 745 (delta 32), reused 27 (delta 27), pack-reused 709
Receiving objects: 100% (745/745), 216.90 KiB | 1.55 MiB/s, done.
Resolving deltas: 100% (356/356), done.
Error: Invalid formula: /usr/local/Homebrew/Library/Taps/gepetto/homebrew-gepetto/Formula/gepetto-viewer-corba.rb
gepetto-viewer-corba: Invalid bottle tag symbol
Error: Invalid formula: /usr/local/Homebrew/Library/Taps/gepetto/homebrew-gepetto/Formula/omniorbpy.rb
omniorbpy: undefined method `cellar' for #<BottleSpecification:0x00007fe894b1ab00>
Error: Invalid formula: /usr/local/Homebrew/Library/Taps/gepetto/homebrew-gepetto/Formula/[email protected]
eigenpy@2: Invalid bottle tag symbol
Error: Invalid formula: /usr/local/Homebrew/Library/Taps/gepetto/homebrew-gepetto/Formula/gepetto-viewer.rb
gepetto-viewer: Invalid bottle tag symbol
Error: Invalid formula: /usr/local/Homebrew/Library/Taps/gepetto/homebrew-gepetto/Formula/osgqt.rb
osgqt: undefined method `cellar' for #<BottleSpecification:0x00007fe895c24770>
Error: Invalid formula: /usr/local/Homebrew/Library/Taps/gepetto/homebrew-gepetto/Formula/open-scene-graph-with-colladadom.rb
open-scene-graph-with-colladadom: Invalid bottle tag symbol
Error: Cannot tap gepetto/gepetto: invalid syntax in tap!
@olivier-stasse
Copy link
Member

conda is the way to go.
conda install pinocchio -c conda-forge

@joansola
Copy link
Author

thanks Olivier!

Maybe you want to update the doc :-)

@joansola
Copy link
Author

May I ask this here: Does conda apply also to gepetto-viewer and croccoddyl?

@olivier-stasse
Copy link
Member

olivier-stasse commented Jun 30, 2022

The best doc is the readme.md the website is indeed a bit outdated.

For crocoddyl yes:
https://anaconda.org/conda-forge/crocoddyl

As an exercice I let you find by yourself for gepetto-viewer
😀

@joansola
Copy link
Author

Hahaha found it!!

thanks!!

@cmastalli
Copy link
Member

Hahaha found it!!

thanks!!

Gepetto viewer is not yet available on the Apple chip.

@jcarpent
Copy link
Contributor

jcarpent commented Jul 1, 2022

I will try to update the recipes on Brew, but honestly, conda is much more flexible.

@jcarpent jcarpent closed this as completed Jul 1, 2022
@jcarpent
Copy link
Contributor

jcarpent commented Jul 1, 2022

@joansola Happy to see you onboard.

@joansola
Copy link
Author

joansola commented Jul 1, 2022

Justin, conda is ok, don't bither to do this brew update!

@joansola
Copy link
Author

joansola commented Jul 1, 2022

I will migrate all my brew packages to conda, though, since they seem to conflict quite a lot. Any suggestion?

@jcarpent
Copy link
Contributor

jcarpent commented Jul 1, 2022

If you have conflicts, I would say just do brew unlink to shadow them from the rest.

@joansola
Copy link
Author

joansola commented Jul 1, 2022

It is difficult to see what is going on. I will post here the number of conflicts I had when installing gepetto-viewer via conda, and also all the brew packages I have. Conflicts and packages do not match much... so maybe someone can shed some light to see what is the recommended course of action.

@joansola
Copy link
Author

joansola commented Jul 1, 2022

  1. CONDA INSTALLATION OF GEPETTO-VIEWER
[first a super long list of conflicts...]
// then this:
Package eigenpy conflicts for:
hpp-fcl -> eigenpy
pinocchio -> eigenpy

Package nss conflicts for:
qt -> qt-main=5.15.4 -> nss[version='>=3.74,<4.0a0|>=3.77,<4.0a0|>=3.78,<4.0a0']
qt -> nss[version='>=3.39,<4.0a0|>=3.47,<4.0a0|>=3.73,<4.0a0|>=3.46,<4.0a0|>=3.45,<4.0a0']

Package filelock conflicts for:
conda-build -> filelock
anaconda==2021.05 -> filelock==3.0.12=pyhd3eb1b0_1

Package charls conflicts for:
tifffile -> imagecodecs[version='>=2021.11.20'] -> charls[version='>=2.1.0,<2.2.0a0|>=2.2.0,<2.3.0a0|>=2.3.4,<2.4.0a0']
anaconda==2021.05 -> charls==2.2.0=h23ab428_0
anaconda==2021.05 -> imagecodecs==2021.3.31=py39h2ea9c00_0 -> charls[version='>=2.2.0,<2.3.0a0']

Package wurlitzer conflicts for:
spyder-kernels -> wurlitzer[version='>=1.0.3']
anaconda==2021.05 -> wurlitzer==2.1.0[build='py37hecd8cb5_0|py39hecd8cb5_0|py38hecd8cb5_0']
spyder -> spyder-kernels[version='>=2.3.1,<2.4.0'] -> wurlitzer[version='>=1.0.3']
anaconda==2021.05 -> spyder-kernels==1.10.2=py37hecd8cb5_0 -> wurlitzer[version='>=1.0.3']

Package jdcal conflicts for:
anaconda==2021.05 -> openpyxl==3.0.7=pyhd3eb1b0_0 -> jdcal
openpyxl -> jdcal
anaconda==2021.05 -> jdcal==1.4.1=py_0

Package immutables conflicts for:
sniffio -> contextvars[version='>=2.1'] -> immutables[version='0.5|0.6|>=0.9']
distributed -> contextvars -> immutables[version='0.5|0.6|>=0.9']

Package bkcharts conflicts for:
dask -> bokeh -> bkcharts[version='>=0.2']
distributed -> bokeh[version='>=0.12.3'] -> bkcharts[version='>=0.2']
bokeh -> bkcharts[version='>=0.2']
anaconda==2021.05 -> bkcharts==0.2[build='py37_0|py39hecd8cb5_0|py38_0']

Package mock conflicts for:
pytables -> mock
anaconda==2021.05 -> mock==4.0.3=pyhd3eb1b0_0
anaconda==2021.05 -> pytables==3.6.1=py37h5bccee9_0 -> mock

Package pytoolconfig conflicts for:
spyder -> rope[version='>=0.10.5'] -> pytoolconfig
rope -> pytoolconfig
python-language-server -> rope[version='>=0.10.5'] -> pytoolconfig

Package pyobjc-core conflicts for:
watchdog -> pyobjc-framework-cocoa[version='>=4.2.2'] -> pyobjc-core[version='7.3.*|8.0.*|8.1.*|8.2.*|8.4.*|8.4.1.*|8.5.*|>=7.1|>=6.2.2|>=6.2.1|>=6.1|>=5.1']
applaunchservices -> pyobjc-framework-coreservices -> pyobjc-core[version='>=8.5']

Package pyls-spyder conflicts for:
spyder -> pyls-spyder[version='>=0.1.1|>=0.3.0|>=0.3.2|>=0.3.2,<0.4.0|>=0.4.0']
anaconda==2021.05 -> pyls-spyder==0.3.2=pyhd3eb1b0_0
anaconda==2021.05 -> spyder==4.2.5=py37hecd8cb5_0 -> pyls-spyder[version='>=0.3.2']

Package ply conflicts for:
anaconda==2021.05 -> ply==3.11[build='py37_0|py39hecd8cb5_0|py38_0']
sip -> ply

Package lazy-object-proxy conflicts for:
anaconda==2021.05 -> astroid==2.5=py37hecd8cb5_1 -> lazy-object-proxy[version='>=1.4,<2']
anaconda==2021.05 -> lazy-object-proxy==1.6.0[build='py37h9ed2024_0|py39h9ed2024_0|py38h9ed2024_0']
astroid -> lazy-object-proxy[version='1.4.*|>=1.4,<2|>=1.4.0']
pylint -> astroid[version='>=2.11.6,<2.12.0'] -> lazy-object-proxy[version='1.4.*|>=1.4,<2|>=1.4.0']

Package assimp conflicts for:
gepetto-viewer -> assimp[version='>=5.0.1,<5.1.0a0|>=5.2.3,<5.2.4.0a0|>=5.2.4,<5.2.5.0a0']
pinocchio -> hpp-fcl[version='>=2.0.1,<2.1.0a0'] -> assimp[version='>=4.1.0,<4.2.0a0|>=5.0.1,<5.1.0a0|>=5.2.0,<5.3.0a0|>=5.2.1,<5.3.0a0|>=5.2.3,<5.2.4.0a0|>=5.2.4,<5.2.5.0a0']
hpp-fcl -> assimp[version='>=4.1.0,<4.2.0a0|>=5.0.1,<5.1.0a0|>=5.2.0,<5.3.0a0|>=5.2.1,<5.3.0a0|>=5.2.3,<5.2.4.0a0|>=5.2.4,<5.2.5.0a0']

Package conda-content-trust conflicts for:
conda-token -> conda-content-trust
anaconda-navigator -> conda-token -> conda-content-trust

Package python-pathlib2 conflicts for:
ipython -> pickleshare -> python-pathlib2
pickleshare -> python-pathlib2
spyder -> pickleshare[version='>=0.4'] -> python-pathlib2

Package imagecodecs-lite conflicts for:
tifffile -> imagecodecs-lite[version='>=2019.4.20']
scikit-image -> tifffile[version='>=2019.7.26'] -> imagecodecs-lite[version='>=2019.4.20']

Package fastcache conflicts for:
anaconda==2021.05 -> fastcache==1.1.0[build='py38h1de35cc_0|py37h1de35cc_0|py39h9ed2024_0']
sympy -> fastcache

Package qtconsole conflicts for:
anaconda==2021.05 -> jupyter==1.0.0=py37_7 -> qtconsole[version='>=5.0.3']
spyder -> qtconsole[version='>=4.2|>=4.6.0|>=4.7.7|>=5.0.1|>=5.0.3|>=5.1.0|>=5.1.0,<5.2.0|>=5.2.1,<5.3.0|>=5.3.0,<5.4.0']
anaconda==2021.05 -> qtconsole==5.0.3=pyhd3eb1b0_0
jupyter -> qtconsole

Package pyqtwebengine conflicts for:
spyder -> pyqtwebengine[version='<5.16']
spyder -> pyqt[version='>=5.6,<5.16'] -> pyqtwebengine==5.12.1[build='py38h721a93c_5|py39hef7122c_6|py38hb240fba_8|py39he44290a_8|py37hab5ec1f_8|py310hea9ccf3_8|py38h721a93c_7|py37h5ae2165_7|py39hef7122c_7|py36hb40023b_7|py36hb40023b_6|py38h721a93c_6|py37h5ae2165_6']

Package qtconsole-base conflicts for:
spyder -> qtconsole[version='>=5.3.0,<5.4.0'] -> qtconsole-base[version='>=5.2.2,<5.2.3.0a0|>=5.3.0,<5.3.1.0a0|>=5.3.1,<5.3.2.0a0']
qtconsole -> qtconsole-base[version='>=5.2.2,<5.2.3.0a0|>=5.3.0,<5.3.1.0a0|>=5.3.1,<5.3.2.0a0']
jupyter -> qtconsole -> qtconsole-base[version='>=5.2.2,<5.2.3.0a0|>=5.3.0,<5.3.1.0a0|>=5.3.1,<5.3.2.0a0']

Package ripgrep conflicts for:
anaconda==2021.05 -> ripgrep==12.1.1=0
conda-build -> ripgrep

Package pywavelets conflicts for:
anaconda==2021.05 -> scikit-image==0.18.1=py37hb2f4e1b_0 -> pywavelets[version='>=0.4.0']
scikit-image -> pywavelets[version='>=0.4.0|>=1.1.1']
anaconda==2021.05 -> pywavelets==1.1.1[build='py37haf1e3a3_2|py39he3068b8_4|py38haf1e3a3_2']

Package mysql-libs conflicts for:
qt -> mysql-libs[version='>=8.0.21,<8.1.0.0a0|>=8.0.22,<8.1.0.0a0|>=8.0.23,<8.1.0.0a0|>=8.0.27,<8.1.0a0']
qt -> qt-main=5.15.4 -> mysql-libs[version='>=8.0.28,<8.1.0a0|>=8.0.29,<8.1.0a0']The following specifications were found to be incompatible with your system:

  - feature:/osx-64::__osx==10.16=0
  - feature:|@/osx-64::__osx==10.16=0
  - applaunchservices -> __osx
  - ipykernel -> __osx
  - ipywidgets -> ipykernel[version='>=4.5.1'] -> __osx
  - jupyter -> ipykernel -> __osx
  - jupyter_console -> ipykernel -> __osx
  - jupyter_server -> ipykernel -> __osx
  - notebook -> ipykernel -> __osx
  - qtconsole -> ipykernel[version='>=4.1'] -> __osx
  - spyder -> applaunchservices[version='>=0.3.0'] -> __osx
  - spyder-kernels -> ipykernel[version='>=6.9.2,<7.0.0'] -> __osx
  - widgetsnbextension -> ipykernel[version='>=4.5.1'] -> __linux
  - widgetsnbextension -> ipykernel[version='>=4.5.1'] -> __osx
  - widgetsnbextension -> ipykernel[version='>=4.5.1'] -> __win

Your installed version is: 10.16

@joansola
Copy link
Author

joansola commented Jul 1, 2022

  1. BREW LIST
(base) vermicelle:install jsola$ brew list
==> Formulae
adns			ffmpeg			gnutls			libarchive		libsamplerate		meson			poco			srt
android-platform-tools	ffmpeg@4		go			libass			libsndfile		metis			protobuf		subversion
aom			flac			gobject-introspection	libassuan		libsodium		mpdecimal		pugixml			suite-sparse
apr			fltk			gpgme			libavif			libsoxr			mpfr			pyqt@5			szip
apr-util		fontconfig		graphite2		libb2			libtasn1		[email protected]		python			tbb
autoconf		freetype		graphviz		libbluray		libtiff			netcdf			python3			tbb@2020
automake		frei0r			gts			libcerf			libtool			netpbm			python@2		tcl-tk
bash-completion		fribidi			gtsam			libconfig		libunistring		nettle			[email protected]		telnet
bdw-gc			gcc			guile			libde265		libusb			nghttp2			[email protected]		tesseract
bibtex2html		gd			harfbuzz		libev			libvidstab		ninja			[email protected]		theora
boost			gdb			hdf5			libevent		libvmaf			npth			qcachegrind		tinyxml2
[email protected]		gdbm			hevea			libffi			libvorbis		numpy			qhull			unbound
[email protected]		gdk-pixbuf		hugo			libgcrypt		libvpx			ocaml			qt			utf8cpp
brotli			gettext			icu4c			libgpg-error		libx11			openblas		qt5			utf8proc
c-ares			gflags			ilmbase			libheif			libxau			opencore-amr		qt@5			vtk
ca-certificates		ghostscript		imagemagick		libidn			libxcb			opencv			rav1e			webp
cairo			giflib			imath			libidn2			libxdmcp		openexr			readline		wget
ceres-solver		git			isl			libksba			libxext			openjpeg		rtmpdump		x264
cjson			git-flow		jasper			liblqr			libxrender		[email protected]		rubberband		x265
clang-format		git-gui			jbig2dec		libmpc			libyaml			opus			sdl2			xmlto
cmake			gl2ps			jemalloc		libnghttp2		liquidprompt		p11-kit			shared-mime-info	xorgproto
cmocka			glew			jpeg			libogg			little-cms2		pango			sip			xvid
dav1d			glib			jpeg-turbo		libomp			lua			pcre			six			xz
docbook			glog			jpeg-xl			libpng			lz4			pcre2			snappy			yaml-cpp
docbook-xsl		gmp			jsoncpp			libpthread-stubs	lzo			picocom			speex			zeromq
double-conversion	gnu-getopt		lame			libraw			m4			pinentry		sphinx			zimg
doxygen			gnupg			leptonica		librist			mbedtls			pixman			sphinx-doc		zstd
eigen			gnuplot			libaec			librsvg			mercurial		pkg-config		sqlite

==> Casks
qlmarkdown

@joansola
Copy link
Author

joansola commented Jul 1, 2022

This installation process took several hours.

@jcarpent
Copy link
Contributor

jcarpent commented Jul 1, 2022

Hi Joan.
You cannot mix brew and conda ... This is not compatible.
I would say that gepetto-viewer is not the right choice as it is no more maintained by Gepetto.
On the other side, I would encourage you to use meshcat as main viewer: it simple and easy to use and install.

What are your needs?

@jcarpent
Copy link
Contributor

jcarpent commented Jul 1, 2022

I will update gepetto-viewer recipe from conda to account for latest release.
You also should use mamba instead of conda (c++ version of conda with better conflict managers).

@joansola
Copy link
Author

joansola commented Jul 1, 2022

I need to install pinoccio, croccoddyl, and a viewer. Pep Marti, oru student, is using them in his PhD thesis. Also, he is using gepetto-viewer. But maybe we can change to this other viewer meshcat.

Thanks for all this. Since I barely started with conda, and I still have to get rid of brew packages, I will then switch directly to mamba if you say it's more convenient!

@olivier-stasse
Copy link
Member

mamba is working beautifully with robostack.

@joansola
Copy link
Author

joansola commented Jul 1, 2022

robostack is kind of an improved robotpkg?

@joansola
Copy link
Author

joansola commented Jul 1, 2022

Sorry I'm super newbie on these things

@jcarpent
Copy link
Contributor

jcarpent commented Jul 1, 2022

robostack is ROS in conda. Nice port by the conda creators, which is pretty useful for computations over clusters, etc.

@jcarpent
Copy link
Contributor

jcarpent commented Jul 1, 2022

For me, brew is too restrictive and too monolithic. Conda is very flexible and very powerful.

@joansola
Copy link
Author

joansola commented Jul 1, 2022

Oh, having ROS in MacOS is allso something that I would like. So robostack offers this? cool!

Then between conda and mamba, what should I chose?

@jcarpent
Copy link
Contributor

jcarpent commented Jul 1, 2022

both. Install conda and mamba within your conda base environment.

@jcarpent
Copy link
Contributor

jcarpent commented Jul 1, 2022

Oh, having ROS in MacOS is allso something that I would like. So robostack offers this? cool!

Yes.

@joansola
Copy link
Author

joansola commented Jul 1, 2022

ah ok

@joansola
Copy link
Author

joansola commented Jul 1, 2022

OK I'll do all this and see how it works. Thanks!

@jcarpent
Copy link
Contributor

jcarpent commented Jul 1, 2022

@olivier-stasse
Copy link
Member

An alternative is that with the robotstack you have use rviz (noetic) or rviz2 (galactic).

@joansola
Copy link
Author

joansola commented Jul 1, 2022

Cool! Should I use this (closed issue) communication channel with you guys until I have my system running?

@jcarpent
Copy link
Contributor

jcarpent commented Jul 1, 2022

Could you move to Gepetto's riot channel instead?

@joansola
Copy link
Author

joansola commented Jul 1, 2022

Sure. Can you put a link here?

@jcarpent
Copy link
Contributor

jcarpent commented Jul 1, 2022

@cmastalli
Copy link
Member

@joansola I am preparing a large PR next week, which it will contain more support of meshcat in Crocoddyl. Currently, you can use it but without the display of contact forces (only robot motion)

The only thing you will need to compile Crocoddyl by source, as it might take a month to release this code.

@joansola
Copy link
Author

joansola commented Jul 3, 2022

OK I got you on Matrix, but for what concerns this thread I will just post updates here. Thanks Justin, Olivier and Carlos for your inputs!

So: I managed to get my Mac clean of Brew and reinstalled all from conda. It is indeed quite powerful and I could find all packages I needed --- with the exception of yaml-cpp which I compiled from source. -- Actually apriltag also because the only package I could find was on robostack.

Now on to croccoddyl and other geppetto packages :-D

@traversaro
Copy link
Contributor

So: I managed to get my Mac clean of Brew and reinstalled all from conda. It is indeed quite powerful and I could find all packages I needed --- with the exception of yaml-cpp which I compiled from source. -- Actually apriltag also because the only package I could find was on robostack.

Hi @joansola ! In theory there is yaml-cpp in conda-forge (see
https://github.com/conda-forge/yaml-cpp-feedstock). There is any feature missing there for which you had to compile it from source? Thanks!

@joansola
Copy link
Author

joansola commented Jul 3, 2022

Hi Silvio @traversaro ! Nice to meet you here

Let me recap a little bit and tell you what I found missing. It was a bit of a chaos and I am not sure of all the details.

I think it was only the apriltag library. The only option through conda was via a robostack ros module and I did not like it. I tried however, but conda replied it was incompatible with my OS version (Monterey). So since I had the sources, I compiled from source, here

Regarding yaml-cpp, I did install from conda, so OK. I just wrote my last comment a little too quick I guess :-D

@traversaro
Copy link
Contributor

Perfect! Sorry for the direct question, I was just afraid something was wrong with the yaml-cpp package from conda-forge .

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants