I'm writing a Dockerfile for a container to simulate an environment based on Ubuntu Xenial and ROS Kinetic. Now, as part of getting the environment up and running, I'll have to run a custom build script. It stops with saying:
-- Could not find the required component 'camera_info_manager'. The following CMake
error indicates that you either need to install the package with the same name or ch
ange your environment so that it can be found.
CMake Error at /opt/ros/kinetic/share/catkin/cmake/catkinConfig.cmake:83 (find_packa
ge):
Could not find a package configuration file provided by
"camera_info_manager" with any of the following names:
camera_info_managerConfig.cmake
camera_info_manager-config.cmake
Add the installation prefix of "camera_info_manager" to CMAKE_PREFIX_PATH
or set "camera_info_manager_DIR" to a directory containing one of the above
files. If "camera_info_manager" provides a separate development package or
SDK, be sure it has been installed.
Call Stack (most recent call first):
flir_spinnaker_driver/CMakeLists.txt:10 (find_package)
-- Configuring incomplete, errors occurred!
See also "/home/eis/build/CMakeFiles/CMakeOutput.log".
See also "/home/eis/build/CMakeFiles/CMakeError.log".
Invoking "cmake" failed
root#0573de1e074a:/home/eis# echo $CMAKE_PREFIX_PATH
/opt/ros/kinetic:/usr/share/camera_info_manager/cmake:/usr/share/camera_info_manager
/cmake/camera_info_managerConfig.cmake
root#0573de1e074a:/home/eis#
I have installed package libcamera-info-manager-dev&libcamera-info-manager0d and found camera_info_managerConfig.cmake in /usr/share/camera_info_manager /cmake/ and modified CMAKE_PREFIX_PATH like:
export CMAKE_PREFIX_PATH=$CMAKE_PREFIX_PATH:/usr/share/camera_info_manager/cmake:/usr/share/camera_info_manager
I've also added /usr/share/camera_info_manager and /usr/include/camera_info_manager:
echo $CMAKE_PREFIX_PATH /opt/ros/kinetic:/usr/share/camera_info_manager/cmake:/usr/share/camera_info_manager /cmake/camera_info_managerConfig.cmake:/usr/share/camera_info_manager:/usr/include/c amera_info_manager
but I'm still stuck on this.
What else should I be looking at? Thanks!
Related
I have a kinda weird problem. I'm currently messing around with the VRX-Simulator, which simulates an unmanned-watersurface-vehicle.
For the installation I followed the guide on https://bitbucket.org/osrf/vrx/wiki/tutorials/SystemSetupInstall.
Then I tried to modify some of the files and tried to rebuild the project.
This was the point when I noticed it always used the "old" version of my simulation within gazebo.
From now on no matter what I did (I even deleted the whole catkin workspace folder) ROS somehow managed to always launch the original version of my simulation even without any build/src folder existing when I used roslaunch.
roslaunch vrx_gazebo sandisland.launch
So my question would be how can I get rid of my simulation/model and where does ros/gazebo cache my simulation?
You most probably installed the package with the command from the tutorial sudo apt install ros-melodic-vrx-gazebo. So the package launched with roslaunch vrx_gazebo sandisland.launch was not in your catkin workspace. If you want to get rid of it you can uninstall it with sudo apt remove ros-melodic-vrx-gazebo. But this is not strictly necessary.
There are several ways to find out where some ros package is located, try running some of these commands:
rospack find vrx_gazebo will show you where the package used is located
roscd vrx_gazebo will take you to the folder where it is installed something like
/opt/ros/melodic/share/vrx_gazebo
If you also followed the tutorials installing from source code then the issue most likely was not sourcing the built packages. The last line of the guide is a bit misleading. The line *Remember to run this command every time you open a new terminal. is meant to reference the command source ~/vrx_ws/devel/setup.bash
Whether the installed package or the package built from source is used depends on which order they are listed in the environment variable ROS_PACKAGE_PATH. This variable is modified by both source /opt/ros/melodic/setup.bash and source ~/vrx_ws/devel/setup.bash. So have a look at the variable after each step with printenv | grep ROS or echo $ROS_PACKAGE_PATH. Theoretically if you source your terminal in the order I had the source commands it should be using the package built from source, you can verify with the rospack find ... and roscd ... commands mentioned earlier.
In the end it is probably easier to add the sourcing commands to your .bashrc file so you would not forget to source the terminals as mentioned in the ROS installation tutorial. You can add the sourcing of the workspace to the the same file, you will just have to be aware that you would need to change the file, should you want to use a different workspace.
http://wiki.ros.org/melodic/Installation/Ubuntu#melodic.2BAC8-Installation.2BAC8-DebEnvironment.Environment_setup
relevant command from the tutorial:
echo "source /opt/ros/melodic/setup.bash" >> ~/.bashrc
you could do the same for the workspace:
echo "source ~/vrx_ws/devel/setup.bash" >> ~/.bashrc
And after running those commands run exec bash to get the changes into the current terminal. All future terminals will have those commands already loaded.
I am trying to migrate a huge project having visual studio and maven projects to bazel. I need to access our in house maven server which is encrypted. To get access I need the load the maven_jar skylark extension since the default impl does not support encryption (get error 401). using the extension leads to a lot of troubles, like:
ERROR: BUILD:4:1: no such package '#org_bouncycastle_bcpkix_jdk15on//jar': Traceback (most recent call last):
File ".../external/bazel_tools/tools/build_defs/repo/maven_rules.bzl", line 280
_maven_artifact_impl(ctx, "jar", _maven_jar_build_file_te...)
File ".../external/bazel_tools/tools/build_defs/repo/maven_rules.bzl", line 248, in _maven_artifact_impl
fail(("%s: Failed to create dirs in e...))
org_bouncycastle_bcpkix_jdk15on: Failed to create dirs in execution root.
The main issue seems to be the shell that needs to be provided to bazel in BAZEL_SH environment variables:
I am working under windows
I am using bazel 0.23.2
bazel seems to run a bash command using "bash" directly and not the one provided by env variable.
I got a ubuntu shell installed in windows. bazel was using everything from ubuntu, especially when using maven (settings.xml was using from ubuntu ~/.m2 and not from windows user)
after uninstalling ubuntu and making sure that bash in a cmd ends up in "command not found" I also removed the BAZEL_SH env var and bazel throws the message above
after setting the BAZEL_SH variable again it fails with the same error message
I am assuming that bazel gets a bash from somewhere or is ignoring the env variable. My questions are:
1. How to setup a correct shell?
2. Is BAZEL_SH needed when using current version?
For me the doc at bazel website about setup is outdated.
Cheers
Please consider using rules_jvm_external to manage your Maven dependencies. It supports both Windows and private repositories using HTTP Basic Authentication.
For me the doc at bazel website about setup is outdated.
The Bazel team is aware of this and will be updating our docs shortly.
My Pybind project seems to be compiling fine on my system, but when I perform unit testing on travis, it throws the following error:
-- Found PythonInterp: /opt/pyenv/shims/python3.7 (found version "1.4")
CMake Error at 3rdparty/pybind11/tools/FindPythonLibsNew.cmake:95 (message):
Python config failure:
pyenv: python3.7: command not found
The `python3.7' command exists in these Python versions:
3.7
3.7.1
This seems to be something to do with virtualenv which I have never used. I currently have no idea how to solve this issue, and given that its in a travis instance, i'm not sure how to recreate it on my system so I may fix it
What is happening in your case is that the wrong Python version is being used by travis.
For example, if you are using Ubuntu 16.04 (Xenial) in your .travis.yml configuration, you have to specify the version you want for Python when you call CMAKE.
For example, something like
cmake -DCMAKE_BUILD_TYPE=Release -DPYTHON_EXECUTABLE=$(python-config --prefix)/bin/python3.5 -DPYTHON_LIBRARY=$(python-config --prefix)/lib/libpython3.5m.so -DPYTHON_INCLUDE_DIR=$(python-config --prefix)/include/python3.5m ..
Other versions of Ubuntu will have different versions of Python.
References:
https://github.com/vgc/vgc/issues/42
https://github.com/pybind/pybind11/issues/99#issuecomment-207782425
just to add to Murilo's answer, you could use Miniconda as a workaround as well, and configure CMAKE in a similar way by just changing the paths to the ones in your Miniconda env. I ran into issues when using multiple jobs for different Ubuntu distributions (xenial and bionic), which had somewhat different paths to the python libraries and headers.
Here there's a link to a travis with miniconda snippet which you could use to setup miniconda along a travis build.
You can then use the following CMAKE configuration in your travis.yml file (note that the environment with name travis_env was created with python=3.6):
script:
# ...
- cmake -DCMAKE_BUILD_TYPE=Release -DPYTHON_EXECUTABLE=$HOME/miniconda/envs/travis_env/bin/python3.6 -DPYTHON_LIBRARY=$HOME/miniconda/envs/travis_env/lib/libpython3.6m.so -DPYTHON_INCLUDE_DIR=$HOME/miniconda/envs/travis_env/include/python3.6m ..
# ...
I've always been able to compile sources from git repository https://github.com/GNOME/vala.git on my PC running "Linux Mint 18.3 Cinnamon 64-bit". I have the latest valac (0.42.4-0ubuntu1~16.04~valateam0) installed.
The last successful compile I did was from version 0.40.0.257-40b5-dirty. Today, I downloaded the latest vala.git, but when i run ./configure I get:
./configure: line 12579: syntax error near unexpected token `$flag,TEST_CFLAGS="$TEST_CFLAGS $flag"'
./configure: line 12579: ` AX_CHECK_COMPILE_FLAG($flag,TEST_CFLAGS="$TEST_CFLAGS $flag")'
Do I need to make additional environment changes? Not sure were to go from here.
Compiling Vala from source is a good start in contributing back to the Vala project. Vala currently uses autotools as its build system. For Ubuntu AX_CHECK_COMPILE_FLAG is provided by a separate package: autoconf-archive. See the autotools syntax error with ax_check_compile_flag answer on Stack Overflow for more details. So you should just need to install autoconf-archive.
By the way the main repository for Vala is in GNOME's GitLab instance: https://gitlab.gnome.org/GNOME/vala You may want to clone that one instead. The GitLab instance also allows issues to be raised and merge requests to be submitted.
I am trying to configure my Dreamhost VPS (running Debian and PHP5.3) to enable a PHP app to use an OAuth service provided by Autodesk, but the apps keeps failing because it can't find the OAuth class.
I installed the liboauth-php package using aptitude, and restarted the Apache server, but I get a "Fatal error: Class 'OAuth' not found" error.
I researched other pages here on stackoverflow that refer to installing OAuth, PECL and Pear and tried various suggestions I found in other threads, but they have each run into other problems.
I expect that I need to add the following declaration to the php.ini file so that the PHP parser can find the OAuth class, and then put the oauth.so file in the proper directory:
[PHP_OAUTH]
extension=oauth.so
Unfortunately I can't find a oauth.so shared object on the system.
So I thought maybe I could build one using PECL, since the aptitude install of liboauth-php package didn't fix this problem. Unfortunately PECL wasn't installed either. I tried "pear pickle" to install the PECL package but this too failed with this error:
PHP Warning: PHP Startup: Unable to load dynamic library '/imagick.so' - /imagick.so: cannot open shared object file: No such file or directory in Unknown on line 0
Unable to open package2.xml
When that failed, I tried upgrading pear but it also fails with the same error.
PHP Warning: PHP Startup: Unable to load dynamic library '/imagick.so' - /imagick.so: cannot open shared object file: No such file or directory in Unknown on line 0
Unable to open package2.xml
I tried using aptitude to install ndn-php53-imagick, php5-imagick and ndn-phpimagick but the last one failed:
Unpacking ndn-phpimagick (from .../ndn-phpimagick_3.0.1-0_amd64.deb) ...
dpkg: error processing /var/cache/apt/archives/ndn-phpimagick_3.0.1-0_amd64.deb (--unpack):
trying to overwrite '/etc/php53/conf.d/imagick.ini', which is also in package ndn-php53-imagick 3.0.1-6
configured to not write apport reports
dpkg-deb: subprocess paste killed by signal (Broken pipe)
Errors were encountered while processing:
/var/cache/apt/archives/ndn-phpimagick_3.0.1-0_amd64.deb
E: Sub-process /usr/bin/dpkg returned an error code (1)
A package failed to install.
How can I get an oauth.so file or otherwise get the OAuth class recognized by the PHP parser?
The Debian package (as you noticed) does not include oauth.so (I'm not sure why, but it is Debian so could be anything), and I have been unable to find a package for it.
http://bquery.com/blog/post/php_oauth_extension_-_debian_squeeze_installation/
So far thats the only answer I have found. Note that the libpcre-dev might be libpcre3-dev (depends on Debian version), and you will need to install php-pear (php5-pear) to get the pecl command, and php5-dev for pecl to actually work (package dependency hell for just one shared lib).
imagick (ImageMagick) is (should be) unrelated to pear, oauth, pickle, and everything else. Its just an image processing package (resize/rotate/edit images).
After its all installed be sure the extension=oauth.so line is in your php.ini for the proper php (cli vs apache vs ...).