title: Marketo打包小记 tags: Marketo, debian, KDE

Marketo依赖于libmdcpp,先得给libmdcpp打包。libmdcpp是我为写marketo而fork的一个C++的Markdown Parser。

最终效果是按照下面步骤可以生成deb包并安装:

# 注:这是在Ubuntu15.10中的测试效果
git clone https://github.com/sadhen/libmdcpp.git
git clone https://github.com/sadhen/marketo.git

# 安装libmdcpp和libmdcpp-dev
sudo apt-get install g++ cmake libboost-regex-dev devscripts debhelper
dpkg-buildpackage -us -uc -b
sudo dpkg -i ../libmdcpp*deb

# 安装marketo
cd ../marketo
git submodule init
git submodule update
sudo apt install qt5-default libqt5webkit5-dev extra-cmake-modules libkf5i18n-dev libkf5coreaddons-dev libkf5xmlgui-dev libkf5texteditor-dev libkf5webkit-dev breeze
ln -s /usr/lib/libmdcpp.so.1.0 /usr/lib/libmdcpp.so
dpkg-buildpackage -us -uc -b
sudo dpkg -i ../marketo*deb

下面是libmdcpp的打包过程,记录以备忘。

准备

安装好整个过程中需要用到的工具(可以边做边装)。

准备好源码包,用dh_make生成源代码目录下的debian/模板。

git clone https://github.com/sadhen/libmdcpp.git
mkdir libmdcpp-0.1
cd libmdcpp
git archive --format=tar.gz -o ../libmdcpp-0.1/latest.tar.gz HEAD
cd ../libmdcpp-0.1
tar xvzf latest.tar.gz
rm latest.tar.gz
cd ..
tar cvzf libmdcpp-0.1.tar.gz libmdcpp-0.1/
cd libmdcpp-0.1
dh_make -f ../libmdcpp-0.1.tar.gz

修改debian目录中必须内容

元数据的修改参照了discount这个类似的包的写法。另外,最重要的是包之间依赖关系的填写。这可以使用debian的包管理器提供的dpkg-depcheck

另外,指定需要安装的内容也至关重要,具体是在后缀为install的文件中指定。

编译打包

dpkg-buildpackage -us -uc # 打包
./debian/rule clean # 清理

成功后将debian/这个目录移动到git管理的源代码目录下。

参考

Debian 新维护人员手册