utexas-bwi / bwi-update Goto Github PK
View Code? Open in Web Editor NEWUpdate tool for maintenance of ROS workspaces and system binaries
Update tool for maintenance of ROS workspaces and system binaries
I can't believe I forgot to call so many functions I had already written. Oh wel... I'll release an updated copy soon. Remember to run sudo apt-get update before running system sync.
If the script fails for some reason, then it does not remove /tmp/bwi-update and future users cannot run the script.
-Todd
otherwise you won't be able to remove old packages if the rosinstall file changes underneath you.
configuration files should only be removed on purge.
This was run on a former Lucid workstation that was recently upgraded to Precise. There was not much installed before running bwi-update with the --system option.
$ bwi-update --sync
[Installing gazebo models in /home/joq/ros/gazebo]
requesting all changes
adding changesets
adding manifests
adding file changes
added 96 changesets with 664 changes to 393 files (+3 heads)
updating to branch default
345 files updated, 0 files merged, 0 files removed, 0 files unresolved
- Done
[Initializing workspace of type: catkin in /home/joq/ros/catkin_ws]
/bin/bash: wstool: command not found
[Removing workspace from /home/joq/ros/catkin_ws]
- Workspace does not exist in /home/joq/ros/catkin_ws
[Initializing workspace of type: rosbuild in /home/joq/ros/rosbuild_ws]
ERROR in config: Is not a local file, nor a valid URL [/home/joq/ros/catkin_ws/devel] : unknown url type: /home/joq/ros/catkin_ws/devel
[Removing workspace from /home/joq/ros/rosbuild_ws]
- Workspace does not exist in /home/joq/ros/rosbuild_ws
[Merging https://raw.github.com/utexas-bwi/segbot/master/rosinstall/segbot.rosinstall in /home/joq/ros/rosbuild_ws]
Traceback (most recent call last):
File "/usr/bin/bwi-update", line 612, in <module>
error_code = synchronizeUserSpace()
File "/usr/bin/bwi-update", line 516, in synchronizeUserSpace
rosinstallROSPackage(rosinstall_target,build_type,ws[build_type])
File "/usr/bin/bwi-update", line 334, in rosinstallROSPackage
success = callWsCommand(["merge","--confirm-all","--target-workspace="+ws,rosinstall_file],type,ws)
File "/usr/bin/bwi-update", line 139, in callWsCommand
return call(["/bin/bash","-c","unset ROS_WORKSPACE && " + command + " " + " ".join(args)],cwd=ws,verbose=verbose,verbose_error=verbose_error)
File "/usr/bin/bwi-update", line 124, in call
p = subprocess.Popen(command, stdout=subprocess.PIPE, cwd=cwd)
File "/usr/lib/python2.7/subprocess.py", line 679, in __init__
errread, errwrite)
File "/usr/lib/python2.7/subprocess.py", line 1249, in _execute_child
raise child_exception
OSError: [Errno 2] No such file or directory: '/home/joq/ros/rosbuild_ws'
On a fresh Precise system, I ran:
$ sudo apt-add-repository ppa:piyushk/bwi
$ sudo apt-get update && sudo apt-get install bwi-update
$ sudo bwi-update --system --config https://raw.github.com/utexas-bwi/bwi/master/bwi-update-config/system_config.yaml
$ sudo bwi-update --system --sync
It failed because the ROS package repository is not yet defined:
[Installing/Removing packages from apt-get]
- Installing ros-groovy-desktop-full...
E: Unable to locate package ros-groovy-desktop-full
- Failed
- Installing ros-groovy-rx...
E: Unable to locate package ros-groovy-rx
- Failed
- Installing ros-groovy-rxgraph...
and so on...
This is a low priority enhancement issue.
It looks like the code was in better shape than I remembered. We write everything to a tmp directory inside /tmp, and remove it before exit. I don't plan to fix this issue tomorrow.
Forgot to catch stderr when checking the mercurial repo existed while setting up the user space. This error is harmless and should be suppressed.
The CS machines may not have rosdep installed. Use a no-rosdep flag to prevent error while trying to perform rosdep update.
If we point the tool to local configuration files, the files aer being copied over instead of being resolved. This means that subsequent changes to the configuration file are lost unless bwi-update --config is run again.
Can be solved by using urllib.urlopen
From Jack's testing in #4:
It took me two tries to compile:
$ rosmake gazebo_plugins segbot_apps segbot_gazebo
The first attempt failed, because I had not yet initialized rosdep:$ sudo rosdep init
$ rosdep update
Mostly to learn how to produce a system python package using stdeb
This allows plain cmake packages to be built. This will require ros/catkin#423 to push through.
This command does not shut down cleanly with control-C:
$ roslaunch segbot_gazebo bwi_test_world.launch
Usually, it hangs for a while, then logs this error:
[gazebo-1] escalating to SIGTERM
The SIGTERM usually works, but sometimes the system monitor shows a gzserver process hanging around. If that happens, the segbot_gazebo will no longer launch. Killing gzserver from the system monitor gets things working again.
I do not know what causes this, but I have seen it happen on more than one system.
use wstool instead of messing around with hg. Modify the config file appropriately.
Forgot to cleanup the temp directory post-run. If the super user ends up creating the directory, a regular user won't be able to save to it.
Once the initial chain of workspaces are initialized, subsequent changes to workspaces (addition/removal) is not supported without breaking the chain.
This will probably required upgrading the configuration file format
While updating my .bashrc (by hand), I noticed what looks like an error in ~/.bwi/workspace.bash:
source /home/joq/ros/rosbuild_ws/devel/setup.bash
I think that line should be:
source /home/joq/ros/rosbuild_ws/setup.bash
Unlike catkin workspaces, rosbuild workspaces have no devel/ subdirectory.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.