1. 程式人生 > >ubuntu deb安裝包製作方法介紹

ubuntu deb安裝包製作方法介紹

方案一,基於dpkg-buildpackage

1.準備工作

1)重新命名目標原始碼目錄,目錄名規則為檔名加大版本號,如下:

2)測試編譯程式碼,清楚殘餘無用檔案

安裝libcurl開發包:
apt-get install libcurl4-gnutls-dev

清楚殘餘檔案(bin/obj)
make clean

3)原始碼打包

2.製作deb包

1)利用dh_make生成debian模板檔案

根據deb包型別選擇對應的Type,-e 後跟包構建者E-mail.

2)修改控制檔案
2.1)增加安裝執行檔案,如:libniscsdk.install

2.2)小版本更新,修改changelog檔案

3)生成deb包:dpkg-buildpackage

[email protected]rtualBox:~/tt/libniscsdk-1.0# dpkg-buildpackage
dpkg-buildpackage: export CFLAGS from dpkg-buildflags (origin: vendor): -g -O2 -fstack-protector --param=ssp-buffer-size=4 -Wformat -Wformat-security
dpkg-buildpackage: export CPPFLAGS from dpkg-buildflags (origin: vendor): -D_FORTIFY_
SOURCE=2 dpkg-buildpackage: export CXXFLAGS from dpkg-buildflags (origin: vendor): -g -O2 -fstack-protector --param=ssp-buffer-size=4 -Wformat -Wformat-security dpkg-buildpackage: export FFLAGS from dpkg-buildflags (origin: vendor): -g -O2 dpkg-buildpackage: export LDFLAGS from dpkg-buildflags (origin: vendor): -Wl,-Bsymbolic-functions -Wl,-z,relro dpkg-buildpackage: 原始碼包 libniscsdk dpkg-buildpackage: 原始碼版本 1.0-1 dpkg-buildpackage: 原始碼修改者 root <
[email protected]
> dpkg-buildpackage: 主機架構 amd64 dpkg-source --before-build libniscsdk-1.0 debian/rules clean dh clean dh_testdir dh_auto_clean make[1]: 正在進入目錄 `/root/tt/libniscsdk-1.0' Cleaning libSDK_VerifyRegister.so ... rm -fr libSDK_VerifyRegister.so make[1]:正在離開目錄 `/root/tt/libniscsdk-1.0' dh_clean dpkg-source -b libniscsdk-1.0 dpkg-source: info: using source format `3.0 (quilt)' dpkg-source: info: building libniscsdk using existing ./libniscsdk_1.0.orig.tar.gz dpkg-source: 警告: 忽略對檔案 libSDK_VerifyRegister.so 的刪除指令 dpkg-source: info: building libniscsdk in libniscsdk_1.0-1.debian.tar.gz dpkg-source: info: building libniscsdk in libniscsdk_1.0-1.dsc debian/rules build dh build dh_testdir dh_auto_configure dh_auto_build make[1]: 正在進入目錄 `/root/tt/libniscsdk-1.0' Building libSDK_VerifyRegister.so ... gcc -g -shared -fPIC -DPIC _API_VerifyRegister.c md5.c cJSON.c -lm -lcurl -o libSDK_VerifyRegister.so make[1]:正在離開目錄 `/root/tt/libniscsdk-1.0' dh_auto_test debian/rules binary dh binary dh_testroot dh_prep dh_installdirs dh_auto_install dh_install dh_installdocs dh_installchangelogs dh_installexamples dh_installman dh_installcatalogs dh_installcron dh_installdebconf dh_installemacsen dh_installifupdown dh_installinfo dh_installinit dh_installmenu dh_installmime dh_installmodules dh_installlogcheck dh_installlogrotate dh_installpam dh_installppp dh_installudev dh_installwm dh_installxfonts dh_installgsettings dh_bugfiles dh_ucf dh_lintian dh_gconf dh_icons dh_perl dh_usrlocal dh_link dh_compress dh_fixperms dh_strip dh_makeshlibs dh_shlibdeps dh_installdeb dh_gencontrol dh_md5sums dh_builddeb dpkg-deb:正在新建軟體包 libniscsdk,包檔案為 ../libniscsdk_1.0-1_amd64.deb。 dpkg-genchanges >../libniscsdk_1.0-1_amd64.changes dpkg-genchanges: 上傳資料中包含完整的原始程式碼 dpkg-source --after-build libniscsdk-1.0 dpkg-buildpackage: 完整上載(包含原始的程式碼) [email protected]:~/tt/libniscsdk-1.0#

完成後整體檔案結構如下:

[email protected]:~# tree tt/
tt/
├── libniscsdk-1.0
│   ├── _API_VerifyRegister.c
│   ├── _API_VerifyRegister.h
│   ├── cJSON.c
│   ├── cJSON.h
│   ├── debian
│   │   ├── changelog
│   │   ├── compat
│   │   ├── control
│   │   ├── copyright
│   │   ├── docs
│   │   ├── emacsen-install.ex
│   │   ├── emacsen-remove.ex
│   │   ├── emacsen-startup.ex
│   │   ├── files
│   │   ├── init.d.ex
│   │   ├── libniscsdk
│   │   │   ├── DEBIAN
│   │   │   │   ├── control
│   │   │   │   └── md5sums
│   │   │   └── usr
│   │   │       ├── include
│   │   │       │   └── _API_VerifyRegister.h
│   │   │       ├── lib
│   │   │       │   └── libSDK_VerifyRegister.so
│   │   │       └── share
│   │   │           └── doc
│   │   │               └── libniscsdk
│   │   │                   ├── changelog.Debian.gz
│   │   │                   ├── copyright
│   │   │                   └── README.Debian
│   │   ├── libniscsdk.cron.d.ex
│   │   ├── libniscsdk.debhelper.log
│   │   ├── libniscsdk.default.ex
│   │   ├── libniscsdk.doc-base.EX
│   │   ├── libniscsdk.install
│   │   ├── libniscsdk.substvars
│   │   ├── manpage.1.ex
│   │   ├── manpage.sgml.ex
│   │   ├── manpage.xml.ex
│   │   ├── menu.ex
│   │   ├── postinst.ex
│   │   ├── postrm.ex
│   │   ├── preinst.ex
│   │   ├── prerm.ex
│   │   ├── README.Debian
│   │   ├── README.source
│   │   ├── rules
│   │   ├── source
│   │   │   └── format
│   │   └── watch.ex
│   ├── Debug.h
│   ├── libSDK_VerifyRegister.so
│   ├── Makefile
│   ├── md5.c
│   ├── md5.h
│   └── README
├── libniscsdk_1.0-1_amd64.changes
├── libniscsdk_1.0-1_amd64.deb
├── libniscsdk_1.0-1.debian.tar.gz
├── libniscsdk_1.0-1.dsc
├── libniscsdk_1.0.orig.tar.gz
└── libniscsdk_1.0.tar.gz

11 directories, 52 files
[email protected]:~# 

方案二,基於dpkg -b

首先了解一下deb包的檔案結構:

它具有DEBIAN和軟體具體安裝目錄(如etc, usr, opt, tmp等)。在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: 建議安裝的其他軟體包和庫檔案。

1.[必備檔案]一個示例control檔案格式如下:

2.增加md5sums檔案,描述檔案md5值,防止檔案包損壞:

3.增加postinst,postrm檔案:

4.放置要安裝的動態連結庫與標頭檔案:
建立目錄 mkdir usr/include,mkdir usr/lib/

5.增加靜態描述檔案,AUTHORS/copyright/README等
6.利用dpkg -b命令,打包生成deb包

這樣,一個deb包就製作完成了,該方法的好處是靜態檔案可以複用,不用每次製作都重新編寫,簡單易用。

相關推薦

ubuntu deb安裝製作方法介紹

方案一,基於dpkg-buildpackage 1.準備工作 1)重新命名目標原始碼目錄,目錄名規則為檔名加大版本號,如下: 2)測試編譯程式碼,清楚殘餘無用檔案 安裝libcurl開發包: apt-get install libcurl4-gnu

ubuntu deb 安裝的命令列安裝

如果ubuntu要安裝新軟體,已有deb安裝包(例如:iptux.deb),但是無法登入到桌面環境。那該怎麼安裝?答案是:使用dpkg命令。 首先要使用 cd 命令到安裝包所在的檔案目錄,然後參考下面的命令進行操作: dpkg命令常用格式如下: sudo dpkg -I iptux.deb #檢

Linux管理命令與Ubuntu安裝nginx的方法

rpm包和deb包是兩種Linux系統下最常見的安裝包格式,在安裝一些軟體或服務的時候免不了要和它們打交道。rpm包主要應用在RedHat系列包括 Fedora等發行版的Linux系統上,deb包主要應用於Debian系列包括現在比較流行的Ubuntu等發行版上。 二者對應的安裝命令分別為rp

ubuntu安裝/檢視已安裝方法

說明:由於圖形化介面方法(如Add/Remove… 和Synaptic Package Manageer)比較簡單,所以這裡主要總結在終端通過命令列方式進行的軟體包安裝、解除安裝和刪除的方法。 一、Ubuntu中軟體安裝方法 1、APT方式

ubuntu安裝依賴關係(問題)& apt管理工具(解決方法

用到ubuntu時難免要安裝千奇百怪包以用於資料的處理與解釋,之前都是有通過#sudo apt-get install,或是通過自行下載之後#sudo dpkg -i 檔名 進行安裝。可是,對於這兩者到底是幹什麼的,還有為什麼包有依賴關係是一直一臉矇蔽的,今天看了幾位大神的帖

製作deb安裝(Debian Binary Package)全過程

1.Getting Started From the Debian Reference 2.2.2 2002-11-30: "The internals of this Debian binary package format are described in the de

6.linux安裝deb安裝

purge linux class 檢查 lin blog div 文件 提取 原文地址:http://www.xitongzhijia.net/xtjc/20150206/37464.html 1、下載需要安裝的deb包,輸入以下命令安裝: sudo dpkg -i

Ubuntu(x86)安裝OpenCV的方法

參考:https://www.cnblogs.com/arkenstone/p/6490017.html 1 安裝依賴 $ sudo apt-get install build-essential $ sudo apt-get install cmake git libgtk2.0-de

visual studio 2017 installer 安裝製作過程出現的問題---無法註冊模組 HRESULT -2147024769 請與您的技術支援人員聯絡

visual studio 2017 installer 安裝包製作過程出現的問題---無法註冊模組 HRESULT -2147024769 請與您的技術支援人員聯絡 使用visual studio 2017 installer製作打包程式時如果用到了外部控制元件需要按以下方式操作:

visual studio 2017 installer 安裝製作過程出現的問題---此安裝程式需要.NET Framework 版本 3.5,請安裝該版本,然後重新執行此安裝程式,可以從Web獲得

visual studio 2017 installer 安裝包製作過程出現的問題---此安裝程式需要.NET Framework 版本 3.5,請安裝該版本,然後重新執行此安裝程式,可以從Web獲得.NET Framework 。要立即做此事嗎?     &nbs

使用VS2010下Visual Studio Installer工程進行軟體安裝製作

                                            &

InstallShield 2010整合 net Framework 4的安裝製作

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

InstallShield 整合 net Framework的安裝製作

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

VS2010安裝製作全過程圖解

VS2010安裝包製作全過程圖解 專案的第一個版本出來了,要做個安裝包,很久沒做過已經有些淡忘了,網上差了差資料,寫了一個,總結下,可能還不是很完善,僅作參考。 1.首先在開啟 VS2010 》新建》專案 2.建立一個安裝專案 Setup1 在“目標計算機上的檔案系統”下我們看見 應用

ubuntu16.04下安裝如何安裝.deb安裝

在Ubuntu下安裝deb包需要使用dpkg命令. Dpkg 的普通用法: 1、sudo dpkg -i <package.deb> 安裝一個 Debian 軟體包,如你手動下載的檔案。 2、sudo dpkg -c <package.deb> 列

Installshield2010 installscript整合第三方軟體的安裝製作

為了保證我們製作的安裝包能正常執行,通常需要在安裝軟體前先安裝一些先決軟體,比如很多web專案工程,都需要先安裝donet ,sql等第三方軟體 1.傳統的辦法是通過在指令碼中判斷登錄檔,呼叫LaunchAppAndWait函式來實現對第三方軟體的呼叫安裝,但這種方法讓

Ubuntu離線安裝jdk7的方法

1.下載軟體包jdk-7u76-linux-x64.tar 2.解壓 先切換到軟體包所在目錄,再執行下面語句解壓檔案: sudo tar -zxvf jdk-7u76-linux-x64.tar.gz -C /opt 3.配置 (1)安裝vim編輯器 sudo apt-g

《Qt5+安裝製作(NSIS)》

NSIS概述  NSIS(Nullsoft Scriptable Install System)是一個開源的 Windows 系統下安裝程式製作程式。它提供了安裝、解除安裝、系統設定、檔案解壓縮等功

Centos7使用yum安裝程式軟體時提示未找到安裝解決方法

查詢程式軟體源,以sshd為例,假設sshd安裝包無法找到,那麼可以通過以下方法解決 yum provides sshd 然後我們就可以安裝*.X86_64的程式軟體源 例如yum ins

ubuntu安裝軟體的方法

今天晚上搗鼓ubuntu下軟體安裝,之前只是在終端敲一下簡單的命令和vim的使用 最近有需求需要通多ubuntu上安裝chrome,嘗試了幾種方法,現總結一下分享給大家,如果有錯誤的地方望給出評論,謝謝! 第一種就只直接搜尋並安裝: 在終端中輸入命令: 首先是搜尋源中有沒有chrome軟體 sudo  ap