• ubuntu 制作deb 包


    ubuntu下打包制作deb安装包

    http://www.th7.cn/system/lin/201406/61012.shtml

     
    2014-06-22 20:16:45CSDN-yangbingzhou-点击数:
     

    最近写了一个小程序,打算做成deb发布,折腾了两天,终于找到了一个简单的deb制作方法

    1、首先要编译好程序,获得程序的可执行文件

    2、新建一个文件夹,例如在用户目录下新建mydeb文件夹

    3、在mydeb文件夹建立如下结构的文件夹和文件

    |——mydeb
         |————usr
               |————lib
                     |——可执行文件(安装后,就在你的/usr/lib生成相应的可执行文件)
               |————share

                                                |————icons 

                             |——deb.png(图标文件生成到/usr/share/icons/)

                     |————applications                           
                             |——deb.desktop(桌面文件生成到/usr/share/applications/)
                     
         |————DEBIAN(大写、用来制作打包文件)
                |————control(描述deb包的信息必须的文件)

    4、改写各个文件

    deb.desktop可以先建立一个txt文本,输入如下内容:

    [Desktop Entry]
    Name=mydeb                                                        #这个是程序名称
    Comment=制作deb的工具                                        #注释
    Exec=/usr/bin/deb-creator                                     #可执行文件存放的位置
    Icon=/usr/share/icons/deb-creator-icon.png          #图标存放的位置
    Terminal=false                                                      #是否使用终端
    Type=Application                                                  #应用类型
    X-Ubuntu-Touch=true                                            #这个暂时我也不知道是什么用的
    Categories=Development                                      #分类的位置
    Name[zh_CN]=desktop

    注意:#的内容都要删除,不要有任何注释等不必要的信息,否则有时会出现启动程序错误。
    Categories可以取以下值,表示程序的启动快捷方式放在哪个菜单下:应用菜单Application;Network放在互联网(Internet);办公 Office;图形 Graphics;声音和视频 AudioVideo;系统工具 System;编程 Development;附件 Utility;影音 AudioVideo;游戏 Game;首选项 Settings(GNOME;GTK;Settings;HardwareSettings;);系统管理 System;Settings;

    control文件内容输入如下内容:

    package: mydeb                                                            #安装包的名称
    version: 1.0.0                                                                #版本
    architecture: i386                                                         #平台
    maintainer: young                                                        #维护者
    description: you can description the deb           #描述安装包的信息

    5、打包

    避免 E: mydeb: wrong-file-owner-uid-or-gid usr/ 1001/1001     类型警告

    chown -R root:root mydeb

    在mydeb文件夹的路径上,输入:sudo dpkg -b mydeb mydeb_1.0.0_i386.deb 打包

    (deb包正确的命名规则program-name_version_architeture.deb。所有的值最好与它们在control文件里对应的语句相
    同)

    6、测试

    sudo dpkg -imydeb_1.0.0_i386.deb 安装(在应用程序编程菜单的附件下)
    sudo dpkg -P mydeb 卸载

    以上只是简单制作一个deb的过程,一些制作deb的其他细节问题,以后再慢慢探究。

    7 解包

    新建两个目录 extrat DEBIAN

    dpkg -X sogoupinyin_1.2.0.0048_amd64.deb extract/
    
    dpkg -e sogoupinyin_1.2.0.0048_amd64.deb DEBIAN/

    ====================

    http://blog.csdn.net/zkdemon/article/details/8003734 

    http://forum.ubuntu.org.cn/viewtopic.php?f=56&t=454338

    -----

     Lintian

    lintian mydeb_1.0.0_all.deb 

     

    Ubuntu下的deb包制作详解

    分类: linux
    QT程序制作deb包并安装在应用程序菜单

    制作原理:
    打包:将QT制作的源程序(没有编译的)用debian压缩打包(这里是用脚本对源程序再
    编译)
    安装:将deb包中的源程序解压(默认解压到根目录)到规定系统文件中并编译(postinst
    脚本)
    卸载:将解压的所有文件删除(postrm脚本)
    例子:
    1.新建deb包文件myded
    |——mydeb
         |————application
               |——addressbook(此目录存放QT的源程序和configure脚本)
               |————lib
                     |——addressbook.desktop(桌面文件为了cp
    到/usr/share/applications/)
                     |——addressbook.png(图标文件为了cp到/usr/share/pixmaps/)
         |————DEBIAN(大写、用来制作打包文件)
                |————control(描述deb包的信息必须的文件)
                |————postinst(软件安装后执行的脚本、chomod 755 postinst加可执
    行权限)
                |————postrm(软件卸载后执行的脚本、chomod 755 postrm加可执行
    权限)

    2.各个文件的具体制作
    **********************************
    addressbook目录:
    **********************************
    addressbook中存放编写的源程序(QT4编写的),为了可在不同的环境可安装对源程序
    不进行编译,写一个configure脚本在安装后编译
    configure脚本内容(chomod 755 configure)
    #!/bin/bash
    PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
    export PATH
    qmake -project #编译生成.pro项目文件
    qmake          #编译生成Makefile文件
    echo -e "run configure Ok!"
    (这里生成的Makefie文件不make是为了可以解压再使用)

    ***********************************
    lib目录:
    ***********************************
    addressbook.desktop文件内容
    [Desktop Entry] #必写
    Encoding=UTF-8  #编码
    Exec=addressbook  #可执行程序名称 在/usr/bin/中
    Name=addressbook  #程序名
    Name[zh_CN]=地址簿 #程序中文名
    X-KDE-StartupNotify=true #是否启动通知
    Comment=addressbook  #注释
    Icon=/usr/share/pixmaps/addressbook.png #图标位置
    Terminal=false #是否使用终端
    Type=Application  #类型
    Categories=Application;Utility; #放在附件菜单项中,也可以放在其他菜单项中
    Categories第一个一般为Application
    第二个一般为
    互联网(Internet)Network
    办公 Office
    图形 Graphics
    声音和视频 AudioVideo
    系统工具 System
    编程 Development
    附件 Utility
    影音 AudioVideo
    游戏 Game
    首选项 Settings(GNOME;GTK;Settings;HardwareSettings;)
    系统管理 System;Settings;

    addressbook.png下载
    http://www.iconpng.com/


    ****************************************************************** 
    DEBIAN内容

    *******************************************************************
    DEBIAN目录中起码具有control文件,其次还可能具有 postinst(postinstallation)、 
    postrm(postremove)、preinst(preinstallation)、prerm(preremove)、copyright (版
    权)、changlog (修订记录)和conffiles等。
    control: 这个文件主要描述软件包的名称(Package),版本(Version)以及描述
    (Description)等,是deb包必须具备的描述性文件,以便于软件的安装管理和索引。
    同时为了能将软件包进行充分的管理,可能还具有以下字段:
    Section: 这个字段申明软件的类别,常见的有`utils’, `net’, `mail’, `text’, 
    `x11′ 等;
    Priority: 这个字段申明软件对于系统的重要程度,如`required’, `standard’, 
    `optional’, `extra’ 等;
    Essential: 这个字段申明是否是系统最基本的软件包(选项为yes/no),如果是的话,
    这就表明该软件是维持系统稳定和正常运行的软件包,不允许任何形式的卸载(除非进
    行强制性的卸载)
    Architecture:申明软件包结构,如基于`i386′, ‘amd64’,`m68k’, `sparc’, 
    `alpha’, `powerpc’ 等;
    Source: 软件包的源代码名称;
    Depends: 软件所依赖的其他软件包和库文件。如果是依赖多个软件包和库文件,彼此之
    间采用逗号隔开;
    Pre-Depends: 软件安装前必须安装、配置依赖性的软件包和库文件,它常常用于必须的
    预运行脚本需求;
    Recommends: 这个字段表明推荐的安装的其他软件包和库文件;
    Suggests: 建议安装的其他软件包和库文件。
    *************************************
    ★★control文件内容
    Package: addressbook
    Version:0.1
    Section: utils   #类别
    Priority: extra  #重要程度:额外的
    Maintainer: cqy <qingtang166@qq.com>
    Architecture: i386
    Description: The software is a opensource package
    from cqy qingtang166@qq.com

    **********************************************
    ★★postinst(软件安装后执行的脚本、执行chomod 755 postinst加可执行权限)内容
    #!/bin/sh
    dire="/usr/share/addressbook"
    PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
    export PATH
    mkdir -p $dire #在/usr/share/中新建目录存放程序
    mv -f /application $dire/ #将解压到根目录的程序移动到新建好的目录中
    cd $dire/application/addressbook/  #进入程序目录
    ./configure #执行脚本生成Makefile
    make #编译
    echo "install Ok!"  #安装完成
    ln -s $dire/application/addressbook/addressbook /usr/bin/addressbook  #为应
    用程序建立链接,链接到/usr/bin/addressbook上(可任意调用addressbook程序)
    cp -rf $dire/application/lib/addressbook.png /usr/share/pixmaps/      #把图
    标文件addressbook.png放在/usr/share/pixmaps/中
    cp -rf $dire/application/lib/addressbook.desktop /usr/share/applications/ #
    把桌面文件addressbook.desktop放在/usr/share/applications/中
    echo "Ok!"

    ****************************************************************************
    ★★postrm(软件卸载后执行的脚本、执行chomod 755 postrm加可执行权限)
    #!/bin/sh
    dire="/usr/share"
    PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
    export PATH
    rm -rf $dire/addressbook  #删除产生的文件
    rm -rf /usr/bin/addressbook
    rm -rf $dire/pixmaps/addressbook.png
    rm -rf $dire/applications/addressbook.desktop
    echo "delete this software is Ok!"

    ***********************************************************************
    回到mydeb所在目录执行
    sudo dpkg -b mydeb addressbook_0.1_i386.deb 打包(deb包正确的命名规则program-
    name_version_architeture.deb。所有的值应该与它们在control文件里对应的语句相
    同)
    得到addressbook_0.1_i386.deb包

    sudo dpkg -i addressbook_0.1_i386.deb 安装(在应用程序开始菜单的附件下)
    sudo dpkg -P addressbook 卸载

    http://blog.csdn.net/small_qch/article/details/6967654

    单个执行文件怎么打包成deb?[已解决]7楼careone正解!

    2013-11-16 13:30韶华倾负lcyxv 分类:操作系统/系统故障 | 浏览338次
     
    2013-11-16 21:38 提问者采纳
     
    1 下载一个其他的 deb 软件包,解压缩后得到2个压缩包: data.tar.gz , control.tar.gz;
    2 解压 control.tar.gz ,得到 control 文件(在这个文件中修改软件包依赖关系),删除另外的 md5sums 文件;
    3 把自已的文件放在 /usr/local/bin/xxx 文件;

    http://zhidao.baidu.com/link?url=f4nQF6SrowNeumrRfoGAk1Cs5_loiM7m2LWjL_eLgYjCCqNlOQyw2Fq4wVNrNG_qU7JCyb2baiCHBsDSvZoM3fcwqSrx7ZnGUfrcls4XVBq

    http://bbs.feng.com/read-htm-tid-6507786.html

    http://www.ithov.com/linux/104576.shtml

  • 相关阅读:
    bootstrap 下的 validation插件
    关于“SQL Server 阻止了对组件 'Ad Hoc Distributed Queries' 的 STATEMENT'OpenRowset/OpenDatasource' 的访问 ”
    从ActionFilterAttribute向view传送数据
    在MVC中写Filter时经常filterContext无法代码提示HttpContext的方法和属性的原因
    MVC MODEL中排除有些属性不需要验证时的方法
    powerdesigner设置唯一键,但不是主键的方式
    无软驱加载raid驱动安装windows2003及其他微软操作系统
    Bootstrap
    bootstrap 简洁、直观、强悍的前端开发框架,让web开发更迅速、简单
    [转]Web UI 设计命名规范
  • 原文地址:https://www.cnblogs.com/okgogo2000/p/4516665.html
Copyright © 2020-2023  润新知