ESROCOS / esrocos-docker

Dockerfile and run script for dockerized esrocos installation
1 stars 1 forks source link

Autoproj error when executing ./install_esrocos script #2

Open irenesanznieto opened 3 years ago

irenesanznieto commented 3 years ago

I have followed the different steps, installed the TASTE docker image and started the ESROCOS container too.

However when I try to run the install_esrocos script inside the docker image I get the following error:

root@taste:~# ./install_esrocos
checking out branch: master
ruby-dev installed
--2021-06-29 13:58:22--  https://rock-robotics.org/master/autoproj_bootstrap
Resolving rock-robotics.org (rock-robotics.org)... 37.17.224.128
Connecting to rock-robotics.org (rock-robotics.org)|37.17.224.128|:443... connected.
HTTP request sent, awaiting response... 301 Moved Permanently
Location: https://www.rock-robotics.org/master/autoproj_bootstrap [following]
--2021-06-29 13:58:22--  https://www.rock-robotics.org/master/autoproj_bootstrap
Resolving www.rock-robotics.org (www.rock-robotics.org)... 185.199.109.153, 185.199.108.153, 185.199.110.153, ...
Connecting to www.rock-robotics.org (www.rock-robotics.org)|185.199.109.153|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 30078 (29K) [application/octet-stream]
Saving to: 'autoproj_bootstrap'

autoproj_bootstrap                 100%[===============================================================>]  29.37K  --.-KB/s    in 0.005s  

2021-06-29 13:58:22 (5.57 MB/s) - 'autoproj_bootstrap' saved [30078/30078]

--2021-06-29 13:58:22--  https://raw.githubusercontent.com/ESROCOS/buildconf/master/config.yml
Resolving raw.githubusercontent.com (raw.githubusercontent.com)... 185.199.110.133, 185.199.108.133, 185.199.109.133, ...
Connecting to raw.githubusercontent.com (raw.githubusercontent.com)|185.199.110.133|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 851 [text/plain]
Saving to: 'config.yml'

config.yml                         100%[===============================================================>]     851  --.-KB/s    in 0s      

2021-06-29 13:58:23 (16.8 MB/s) - 'config.yml' saved [851/851]

checking out 
Traceback (most recent call last):
    3: from autoproj_bootstrap:744:in `<main>'
    2: from autoproj_bootstrap:744:in `new'
    1: from autoproj_bootstrap:56:in `initialize'
autoproj_bootstrap:662:in `load_config': this workspace has already been initialized using /usr/bin/ruby2.3, you cannot run autoproj install with /usr/bin/ruby2.5. If you know what you're doing, delete the ruby_executable line in config.yml and try again (RuntimeError)

Would you have any clues as to what I need to modify to complete the installation? Thanks!

irenesanznieto commented 3 years ago

I managed to by-pass this by removing the following line from the config.yml file:

ruby_executable: "/usr/bin/ruby2.3" 

Not sure which ruby version I should be using at this point though, it might be good to fix it on your side if possible.

However, now I'm facing a second issue when compiling:

Command failed
main configuration(/root/esrocos_workspace/autoproj): failed in import phase
    'git --git-dir /root/esrocos_workspace/autoproj/.git commit-tree 6fcbcc4108d97b8dba3e85d9c363c185fa1b4021 -p d56cc99849f9c0f5079d0ef2251d129b5908f261' returned status 128
    see /root/esrocos_workspace/install/log/main configuration-import.log for details
    last 10 lines are:

    Run

      git config --global user.email "you@example.com"
      git config --global user.name "Your Name"

    to set your account's default identity.
    Omit --global to set the identity only in this repository.

    fatal: unable to auto-detect email address (got 'root@taste.(none)')
Setting options to build TASTE models for gui/vizkit3d_taste
Setting options to build TASTE models for tools/libpus
Setting options to build TASTE models for tools/imagetransfer
  installing OS packages: ant, avahi-daemon, build-essential, castxml, freeglut3-dev, ivy, libavahi-client-dev, libavahi-core-dev, libboost-all-dev, libcunit1-dev, libeigen3-dev, libignition-math2-dev, libjpeg-dev, liblua5.2-dev, libomniorb4-dev, libopencv-dev, libopenscenegraph-dev, libqt4-dev, libqt4-opengl-dev, libqtwebkit-dev, libqwt5-qt4-dev, libsigc++-2.0-dev, libtinyxml-dev, libv4l-dev, libxml-xpath-perl, libyaml-cpp-dev, lua5.2, omniidl, omniorb-nameserver, openjdk-8-jdk, pyside-tools, python3-jsonschema, python3-mako, python3-pyside, python3-simplejson, qt4-designer, qt4-qmake, ruby-facets, ruby-thor
Command failed
autoproj: failed in osdeps phase
    '/usr/bin/sudo DEBIAN_FRONTEND=noninteractive apt-get install -y openjdk-8-jdk ant ivy lua5.2 liblua5.2-dev libyaml-cpp-dev python3-pyside pyside-tools python3-jsonschema python3-mako python3-simplejson libcunit1-dev libeigen3-dev libboost-all-dev build-essential libtinyxml-dev libqt4-dev qt4-qmake libqt4-opengl-dev qt4-designer libqtwebkit-dev libopenscenegraph-dev libignition-math2-dev ruby-thor freeglut3-dev libqwt5-qt4-dev omniidl libomniorb4-dev omniorb-nameserver libxml-xpath-perl avahi-daemon libavahi-client-dev libavahi-core-dev libsigc++-2.0-dev ruby-facets libopencv-dev libv4l-dev castxml libjpeg-dev' returned status 100
    see /root/esrocos_workspace/install/log/autoproj-osdeps.log for details
    last 10 lines are:

    Reading package lists...
    Building dependency tree...
    Reading state information...
    Package python3-pyside is not available, but is referred to by another package.
    This may mean that the package is missing, has been obsoleted, or
    is only available from another source

    E: Unable to locate package openjdk-8-jdk
    E: Package 'python3-pyside' has no installation candidate
    E: Unable to locate package pyside-tools
  operating system: debian - 10,buster
  WARN: osdeps definition for cmake, previously defined in /home/taste/.autoproj/gems/ruby/2.5.0/gems/autoproj-2.13.0/lib/autoproj/default.osdeps overridden by /root/esrocos_workspace/autoproj/remotes/rock.core/rock.osdeps:
  WARN:   resp. apt-dpkg: cmake
  WARN:         osdep: build-essential
  WARN:   and   apt-dpkg: cmake
  WARN: osdeps definition for control/sdformat, previously defined in /root/esrocos_workspace/autoproj/remotes/rock/rock.osdeps overridden by /root/esrocos_workspace/autoproj/remotes/esrocos.core/esrocos.osdeps:
  WARN:   resp. apt-dpkg: libsdformat6-dev
  WARN: osdeps definition for boost, previously defined in /root/esrocos_workspace/autoproj/remotes/rock/rock.osdeps overridden by /root/esrocos_workspace/autoproj/remotes/esrocos.core/esrocos.osdeps:
  WARN:   resp. apt-dpkg: libboost-dev, libboost-graph-dev, libboost-program-options-dev, libboost-regex-dev, libboost-thread-dev, libboost-filesystem-dev, libboost-iostreams-dev, libboost-system-dev
  WARN:   and   apt-dpkg: libboost-all-dev
  ERROR: Unable to detect shell type. Please set the SHELL environment variable or disable 
shell helpers altogether by setting the shell_helpers configuration variable to false.
Setting options to build TASTE models for gui/vizkit3d_taste
Setting options to build TASTE models for tools/libpus
Setting options to build TASTE models for tools/imagetransfer
  typelib: using the castxml importer
  set up Ruby package utilrb
  configured CMake for tools/config
  configuring CMake for rtt
  ERROR: got an error processing rtt, waiting for pending jobs to end
  configured CMake for control/urdfdom_headers
  set up Ruby package tools/metaruby
  configuring CMake for control/sdformat
  environment already up-to-date
Command failed
rtt(/root/esrocos_workspace/tools/rtt): failed in configure phase
    'cmake -DCMAKE_INSTALL_PREFIX=/root/esrocos_workspace/install -DCMAKE_MODULE_PATH= -DCMAKE_PREFIX_PATH= -DOROCOS_TARGET=gnulinux -DBUILD_TESTING=OFF -DENABLE_CORBA=YES -DCORBA_IMPLEMENTATION=OMNIORB -DDEFAULT_PLUGIN_PATH=/ -DPLUGINS_ENABLE_SCRIPTING=OFF -DORO_DISABLE_PORT_DATA_SCRIPTING=ON -DENABLE_TESTS=OFF -DCMAKE_EXPORT_COMPILE_COMMANDS=ON -DCMAKE_BUILD_TYPE=Release -DROCK_TEST_ENABLED=OFF /root/esrocos_workspace/tools/rtt' returned status 1
    see /root/esrocos_workspace/install/log/rtt-configure.log for details
    last 10 lines are:

    CMake Error at config/check_depend.cmake:78 (message):
      Boost_INCLUDE_DIR not found ! Add it to your CMAKE_PREFIX_PATH !
    Call Stack (most recent call first):
      CMakeLists.txt:105 (INCLUDE)

    -- Configuring incomplete, errors occurred!
    See also "/root/esrocos_workspace/tools/rtt/build/CMakeFiles/CMakeOutput.log".

I understand these packages are not installed by default on the images. I'll try installing them by hand and re-launching the compilation.

Any help fixing these issues is welcome!

maltewi commented 3 years ago
Setting options to build TASTE models for tools/imagetransfer
  installing OS packages: ant, avahi-daemon, build-essential, castxml, freeglut3-dev, ivy, libavahi-client-dev, libavahi-core-dev, libboost-all-dev, libcunit1-dev, libeigen3-dev, libignition-math2-dev, libjpeg-dev, liblua5.2-dev, libomniorb4-dev, libopencv-dev, libopenscenegraph-dev, libqt4-dev, libqt4-opengl-dev, libqtwebkit-dev, libqwt5-qt4-dev, libsigc++-2.0-dev, libtinyxml-dev, libv4l-dev, libxml-xpath-perl, libyaml-cpp-dev, lua5.2, omniidl, omniorb-nameserver, openjdk-8-jdk, pyside-tools, python3-jsonschema, python3-mako, python3-pyside, python3-simplejson, qt4-designer, qt4-qmake, ruby-facets, ruby-thor
Command failed
autoproj: failed in osdeps phase
    '/usr/bin/sudo DEBIAN_FRONTEND=noninteractive apt-get install -y openjdk-8-jdk ant ivy lua5.2 liblua5.2-dev libyaml-cpp-dev python3-pyside pyside-tools python3-jsonschema python3-mako python3-simplejson libcunit1-dev libeigen3-dev libboost-all-dev build-essential libtinyxml-dev libqt4-dev qt4-qmake libqt4-opengl-dev qt4-designer libqtwebkit-dev libopenscenegraph-dev libignition-math2-dev ruby-thor freeglut3-dev libqwt5-qt4-dev omniidl libomniorb4-dev omniorb-nameserver libxml-xpath-perl avahi-daemon libavahi-client-dev libavahi-core-dev libsigc++-2.0-dev ruby-facets libopencv-dev libv4l-dev castxml libjpeg-dev' returned status 100
    see /root/esrocos_workspace/install/log/autoproj-osdeps.log for details
    last 10 lines are:

    Reading package lists...
    Building dependency tree...
    Reading state information...
    Package python3-pyside is not available, but is referred to by another package.
    This may mean that the package is missing, has been obsoleted, or
    is only available from another source

    E: Unable to locate package openjdk-8-jdk
    E: Package 'python3-pyside' has no installation candidate
    E: Unable to locate package pyside-tools
  operating system: debian - 10,buster

These OS dependencies are installed by autoproj. The dependency is defined in the manifest.xml files of the individual source packages. To find out why a OS dep is required, try autoproj show name_of_the_osdep.

When the name of the OS dep changed in the OS's package management system (apt-get), you can specialized the name for different versions. This is done by adjusting autoproj.osdeps in the esrocos buildconf (or in another buildconf if the poackaeg is OS dep is defined there). Have a look e.g. at the rock-package_set for an example how to specialized for certain debian versions.

main configuration(/root/esrocos_workspace/autoproj): failed in import phase
    'git --git-dir /root/esrocos_workspace/autoproj/.git commit-tree 6fcbcc4108d97b8dba3e85d9c363c185fa1b4021 -p d56cc99849f9c0f5079d0ef2251d129b5908f261' returned status 128
    see /root/esrocos_workspace/install/log/main configuration-import.log for details
    last 10 lines are:

    Run

      git config --global user.email "you@example.com"
      git config --global user.name "Your Name"

    to set your account's default identity.
    Omit --global to set the identity only in this repository.

    fatal: unable to auto-detect email address (got 'root@taste.(none)')

Don't forget to execute the steps taht are written there. Maybe it's a good idea to update install_esrocos with a check if the GIT config is set? With e.g. git config --global --list it should be possible to add a check.

rtt(/root/esrocos_workspace/tools/rtt): failed in configure phase
    'cmake -DCMAKE_INSTALL_PREFIX=/root/esrocos_workspace/install -DCMAKE_MODULE_PATH= -DCMAKE_PREFIX_PATH= -DOROCOS_TARGET=gnulinux -DBUILD_TESTING=OFF -DENABLE_CORBA=YES -DCORBA_IMPLEMENTATION=OMNIORB -DDEFAULT_PLUGIN_PATH=/ -DPLUGINS_ENABLE_SCRIPTING=OFF -DORO_DISABLE_PORT_DATA_SCRIPTING=ON -DENABLE_TESTS=OFF -DCMAKE_EXPORT_COMPILE_COMMANDS=ON -DCMAKE_BUILD_TYPE=Release -DROCK_TEST_ENABLED=OFF /root/esrocos_workspace/tools/rtt' returned status 1
    see /root/esrocos_workspace/install/log/rtt-configure.log for details
    last 10 lines are:

    CMake Error at config/check_depend.cmake:78 (message):
      Boost_INCLUDE_DIR not found ! Add it to your CMAKE_PREFIX_PATH !
    Call Stack (most recent call first):
      CMakeLists.txt:105 (INCLUDE)

Apparently there's a dependency to boost which is not captured within the manifest.xml. As boost is neede by many packages a manual installation might be an okay solution. Nevertheless it would be good to add the apt-get install boost... line also to install_esrocos.

irenesanznieto commented 3 years ago

Hi Malte, thank you very much for your feedback!

I have managed to work around the installation issues as follows [documenting it mostly for future fixes to the various repos by the maintainers]:

1. Fix java installation:
apt-add-repository 'deb http://security.debian.org/debian-security stretch/updates main' && apt-get update

2. Python pyside installation: 
apt install python3-dev
apt-get install -y qt4-default // not sure if required
easy_install -U PySide
easy_install --user PySide2

Dependencies that I removed locally so that it stopped trying to install pyside from apt-get:

vim tool-src/install/03_debian.sh → remove “python3-pyside” from the debian installation   // not sure if required
vim esrocos_workspace/tools/libpus/manifest.xml  → remove “python3-pyside & pytools deps” // did the trick!

Unfortunately this does not seem the end of the issues, there is yet another error wen compiling the "rice" dependency. It seems that somehow the compilation is trying to find the sources inside /root/tool-src/air/air, when the sources are in /root/tool-src/air/. I am still trying to find how to solve this issue, any pointers are welcome!

Command failed
autoproj: failed in osdeps phase
    '/root/esrocos_workspace/.autoproj/bin/bundle install --path /home/taste/.autoproj/gems --shebang /usr/bin/ruby2.5 --binstubs /root/esrocos_workspace/install/gems/bin' returned status 5
    see /root/esrocos_workspace/install/log/autoproj-osdeps.log for details
    last 10 lines are:

    Gem files will remain installed in /home/taste/.autoproj/gems/ruby/2.5.0/gems/rice-3.0.0 for inspection.
    Results logged to
    /home/taste/.autoproj/gems/ruby/2.5.0/extensions/x86_64-linux/2.5.0/rice-3.0.0/gem_make.out

    An error occurred while installing rice (3.0.0), and Bundler cannot continue.
    Make sure that `gem install rice -v '3.0.0' --source 'https://rubygems.org/'` succeeds before bundling.

    In Gemfile:
      rice
failed to run autoproj osdeps on the newly installed autoproj (/root/esrocos_workspace/.autoproj/bin/autoproj)
Traceback (most recent call last):
    1: from autoproj_bootstrap:748:in `<main>'
autoproj_bootstrap:714:in `call_stage2': failed to execute autoproj install-stage2 (RuntimeError)