How to separate the build and install steps
See original GitHub issueRight now:
catkin config --install-space /opt/ros/indigo
catkin build
...
catkin --install
sudo catkin build
Gets you this:
Error: Attempting to build a catkin workspace using build space: "..." but that build space's
most recent configuration differs from the commanded one in ways which will cause problems.
Fix the following options or use `catkin clean -b` to remove the build space:
- install: False (stored) is not True (commanded)
In ros-install-osx, the desire not to run the entire build as root is dealt with by simply having /opt/ros/foo
owned by the user rather than root, so everything is as the user (following the Homebrew model). But there are packaging and other use cases where separating the build and install steps is desirable. Is there truly something dangerous being blocked here, or does is it getting caught in a dragnet of potentially dangerous behaviours?
If the latter, can we put in an exemption that allows running just the install step on an already-built workspace?
Issue Analytics
- State:
- Created 8 years ago
- Comments:5 (4 by maintainers)
Top Results From Across the Web
How to Build Stairs (with Pictures) - wikiHow
1. Measure the height of the area where you will install the stairs. This is also called the total rise. If you don’t...
Read more >How to Build Deck Stairs - The Family Handyman
1. Picture a stair slope in your mind to estimate about a 40-degree slope and guess at a landing point.
Rest a straight board...
Read more >Build from source - TensorFlow
Build a TensorFlow pip package from source and install it on Ubuntu Linux and macOS. While the instructions might work for other systems,...
Read more >How To... | TeamCity On-Premises Documentation - JetBrains
The necessary steps to update the Java installation depend on the ... To configure automatic start of a TeamCity build agent, see the ......
Read more >Installing Gradle - Gradle User Manual
Prerequisites; Installing with a package manager; Installing manually; Verifying installation; Next steps. You can install the Gradle build tool on Linux, ...
Read more >Top Related Medium Post
No results found
Top Related StackOverflow Question
No results found
Troubleshoot Live Code
Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start FreeTop Related Reddit Thread
No results found
Top Related Hackernoon Post
No results found
Top Related Tweet
No results found
Top Related Dev.to Post
No results found
Top Related Hashnode Post
No results found
Top GitHub Comments
Well it correctly warns you that building it without
--install
and then re-building it with--install
may fail in unexpected ways. The first time goes like this:The second time (if it let you) you’d get:
The problem with that is pkg B may not rebuild it’s binaries and libraries since no build configs or source files changed (even if you force a re-run of CMake), but the libraries it should link against have changed (which would break usage of
RPATH
for example), and ever generated code might reference the wrong thing (devel space of previous packages rather than their install spaces). So it’s best, when changing that option, to rebuild everything after cleaning.The root issue, as I see it, is that you want to introduce the
--install
after building so you can do that asroot
, but that’s just not a good idea in my opinion because any other files created by the tool will then be owned by root.make
does a pretty good job of avoiding this, but it’s still problematic with tools likepip
and others.Hi, is there anything new about this issue, or do I have to implement that “–sudo-install” option?