Overview
- 任意のROSパッケージをdebパッケージ化し,再配布可能にする。
- beginner_tutorialsを例として、deb化する。
動作確認環境
- Ubuntu 16.04 x64 on Virtualbox
- ROS Kinetic Kame
0. 前提
すでにrosがインストールされ、~/catkin_ws/src/
下に、beginner_tutorials
パッケージが展開されていることとします。
1. 環境構築
パッケージ作成に必要なツールをインストールします。
$ sudo apt install python-bloom fakeroot dpkg-dev debhelper
2. CMakeLists.txtを編集する
beginner_tutorialsのCMakeLists.txt
に、次のコマンドを追記します。
CMakeLists.txt
install(TARGETS talker listener
ARCHIVE DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION}
LIBRARY DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION}
RUNTIME DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION}
)
インストールしたいノードは、すべてinstall()
を記載しなければなりません(pythonノードも含む)。
3. 依存関係を編集する
package.xml
に記載した依存関係は、自動的にdpkgの依存関係に登録されます。
rosとは直接関係ない実行依存も、すべて記載することをおすすめします(例えばflaskとか)。
package.xml
<?xml version="1.0"?>
<!-- %Tag(FULLTEXT,-1)% -->
<package format="2">
<!-- %Tag(NAME)% -->
<name>beginner_tutorials</name>
<!-- %EndTag(NAME)% -->
<!-- %Tag(VERSION)% -->
<version>0.1.0</version>
<!-- %EndTag(VERSION)% -->
<!-- %Tag(DESC)% -->
<description>The beginner_tutorials package</description>
<!-- %EndTag(DESC)% -->
<!-- %Tag(MAINTAINER)% -->
<maintainer email="you@yourdomain.tld">Your Name</maintainer>
<!-- %EndTag(MAINTAINER)% -->
<!-- %Tag(LICENSE)% -->
<license>BSD</license>
<!-- %EndTag(LICENSE)% -->
<!-- %Tag(URLS)% -->
<url type="website">http://wiki.ros.org/beginner_tutorials</url>
<!-- %EndTag(URLS)% -->
<!-- %Tag(AUTHORS)% -->
<author email="you@yourdomain.tld">Jane Doe</author>
<!-- %EndTag(AUTHORS)% -->
<!-- %Tag(DEPS)% -->
<buildtool_depend>catkin</buildtool_depend>
<build_depend>roscpp</build_depend>
<build_depend>rospy</build_depend>
<build_depend>std_msgs</build_depend>
<exec_depend>roscpp</exec_depend>
<exec_depend>rospy</exec_depend>
<exec_depend>std_msgs</exec_depend>
<exec_depend>python-flask</ecec_depend> ←このように必要に応じて追記
<!-- %EndTag(DEPS)% -->
<!-- %Tag(EXPORT)% -->
<!-- %EndTag(EXPORT)% -->
</package>
<!-- %EndTag(FULLTEXT)% -->
4. debパッケージの作成
以下のコマンドを実行します。
$ cd ~/catkin_ws/src/beginner_tutorials
$ bloom-generate rosdebian --os-name ubuntu --os-version xenial --ros-distro kinetic
$ fakeroot debian/rules binary
すると、一つ下のディレクトリに、debパッケージが作成されています。
5. インストール (任意)
通常のdebパッケージのインストールと同様に、dpkg
コマンドで行います。
$ sudo dpkg -i ros-kinetic-beginner-tutorials_0.1.0-0xenial_amd64.deb