rock-learning / bolero

Behavior Optimization and Learning for Robots
https://rock-learning.github.io/bolero
Other
63 stars 29 forks source link

Install bolero on Fedora Workstation #111

Open d3rhans opened 4 years ago

d3rhans commented 4 years ago

Hi,

although the installation process for bolero is specifically tailored for Ubuntu/Debian, I managed to install it on Fedora Workstation 31 with some manual pre- and post installation steps

pre-installation Manually install the dependencies:

sudo dnf install python3-numpy python3-sklearn python3-scipy python3-matplotlib \
python3-devel python3-Cython python3-pyyaml  python3.nose eigen3 eigen3-devel \
yaml-cpp yaml-cpp-devel jsoncpp jsoncpp-devel cmake

then proceed with the bolero bootstrap script. It'll complain about not finding apt-get (which is Debain specific) but fortunately will do nothing about it. Note: Some other dependencies were probably already installed on my system (like a C++ compiler).

post-installation After the installation the compiled modules (dmp, promp...) weren't found after sourcing the bolero env.sh. After checking the paths set by env.sh I found a discrepancy.

env.sh sets:

export PYTHONPATH="~/Code/bolero/bolero-dev/install/lib/python3.7/site-packages:$PYTHONPATH"

whereas the python modules are installed in lib64 not lib. After changing the path in env.sh manually everything seems to work. I've only tried a few simple examples yet, but no errors so far.

Maybe this information can be put/linked in the installation instruction as the procedure should be similar for other non-Debian-based Linux distributions.

Additional thoughts Initially I tried to install all bolero components and non-os dependencies manually by following the cmake/make/make install wokrflow. In theory that should install everything in /usr/local by default without the need to load some env.sh and mess with environment variables. Unfortunately that did not work out as planned. I noticed two things so far:

I'll investigate this further and hopefully come up with a way to install bolero in a FHS conform way on any Linux System.

best regards,

Hans

AlexanderFabisch commented 4 years ago

although the installation process for bolero is specifically tailored for Ubuntu/Debian, I managed to install it on Fedora Workstation 31 with some manual pre- and post installation steps

We provide an installation script for Ubuntu. That of course should not exclude other operating systems. It is just not tested and we do not provide support. We should not do any magic in the installation process anyway.

pre-installation

We could try to collect these information in the wiki. I can give you write access if you want to write it down. We can link to it from the readme.

sudo dnf install ...

Seriously Fedora calls its package manager dnf? Did Not Finish? :)

env.sh sets:

export PYTHONPATH="~/Code/bolero/bolero-dev/install/lib/python3.7/site-packages:$PYTHONPATH"

whereas the python modules are installed in lib64 not lib. After changing the path in env.sh manually everything seems to work. I've only tried a few simple examples yet, but no errors so far.

So you are using pybob to install individual packages or do you install them manually? Any idea how to find out the correct installation path in pybob? If you don't use pybob it should just be fine since python setup.py install will put everything to your default installation folder that will be automatically included in Python.

* cmake complained about many thinks (inlcuding several deprecation warnings about policies that will be removed in future versions). This might be due to the fact, that bolero states cmake 2.6 as minimum version (which is 11 years old) and probably some tinkering with cmake commands I haven't figured out yet.

Yes, would be nice if you could collect these information. It makes sense to update the installation scripts.

* All generated makefiles are missing and uninstall target, therefore the only way to remove the installed components is to manually find and delete them in /usr/local

Yes, it is not automatically generated by CMake, see here. We would have to manually implement that.

d3rhans commented 4 years ago

We should not do any magic in the installation process anyway.

magic was not the first thing that came to mind ;)

I can give you write access

Please do

Seriously Fedora calls its package manager dnf? Did Not Finish? :)

dandified yum, to be precise

So you are using pybob to install individual packages or do you install them manually? Any idea how to find out the correct installation path in pybob?

pybob, it is weird, that it chooses to install in bolero-dev/install/lib64 but puts lib instead of lib64 in the env.sh. I'll check the details of the installation process to figure out what is happening here.

Yes, would be nice if you could collect these information. It makes sense to update the installation scripts.

I will

Yes, it is not automatically generated by CMake

I know, but imagine the fun I had search for all the bolero stuff in /usr/local :)

So if you grant me access to the wiki, I'll document useful information to get bolero running on other Linux Distributions besides Debian based ones. Next thing I'll do is figure the cmake related issues out, once I've done that it should be no big deal to install bolero via cmake without relying on any other tools - at least as an alternative to the current installation procedure.