从可执行jar源创建debian包,无需使用任何工具和脚本

时间:2014-09-03 12:15:40

标签: java ubuntu debian executable-jar

我已根据http://packaging.ubuntu.com/html/packaging-new-software.html示例创建了一个包。在此示例中,源是c ++文件。我想从可执行jar文件源创建我的新包。 我找到了maven,ANT和dhBuild工具,但我不想使用这个工具。所以我需要一种方法来使用命令行创建我的包。请给我一些提示或样本以了解最多。

2 个答案:

答案 0 :(得分:4)

目标是创建一个简单地将shell脚本放在我想要的地方的包。

  1. 创建一个目录来构建你的包。有些人使用" deb"和其他人使用"包"。其他人创建了一个目录结构,用于在" deb" (或其他)。

    mkdir deb

  2. 在deb中创建目录结构,表示您希望脚本放置的位置1

  3. mkdir -p ./deb/usr/local/bin

    3.将脚本复制到新目录

    cp /path/to/my/script/myscript.sh ./deb/usr/local/bin/
    

    4.创建一个名为" DEBIAN"的子目录,这将托管包控制文件。

    mkdir -p ./deb/DEBIAN
    Create a control file.
    touch ./deb/DEBIAN/control
    

    5.打开控制文件并输入以下文字。

    Package: myPackagename (no spaces or underscores allowed) 
    Priority: optional Section: 
    misc Maintainer: Maintainer Name <user@mail.com> 
    Architecture: all Version: 1.0       
    Depends: package1, package2, ......... Description: short description here long   description here (don't remove space at the beginning of line) (replace this with an empty line)
    Change ownership: sudo chown -R root:root ./deb
    

    6.创建debian包。

    dpkg -b ./deb /my/output/destination/packagename.deb
    

答案 1 :(得分:0)

我无法理解“不使用debhelper”和“从cmdline创建包”是多么矛盾。

然而,既然你明确地询问了如何“不使用任何工具和脚本”创建包,那么你可以去:

  • 剖析现有的包

    • .deb文件实际上只是一个重命名的 ar 韭菜,所以你可以做 $ ar xf /path/to/package.deb
  • 研究包的内容 $ ls debian-binary control.tar.gz data.tar.gz debian-binary文件包含包的格式版本(通常为2.0

    data.tar.gz文件包含实际的数据文件。

    control.tar.gz包含有关包的控制信息,包括它的名称(和描述),它的依赖关系;还有预安装和安装后脚本等。

  • 一旦你学会了.deb - 文件的内部工作原理,你可以通过反转上述过程来创建一个:

    • 将您的数据转换为data.tar.gz

    • 为您的deb创建控件信息并将其焦点转换为control.tar.gz

    • 创建一个包含您正在使用的二进制版本的debian-binary文件: $ echo "2.0" > debian-binary

    • 通过运行以下命令从这些文件中创建deb $ ar q /tmp/mypackage.deb debian-binary control.tar.gz data.tar.gz

但是,如果您真的知道自己在做什么,则应该只执行上述 。 创建包不是一项简单的任务。 这就是为什么人们创造了许多工具来帮助完成重复性工作。

使用它们!