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′ 等;
required’,
Priority: 這個欄位申明軟體對於系統的重要程度,如standard’,
optional’, extra’ 等;
i386′, ‘amd64’,
Essential: 這個欄位申明是否是系統最基本的軟體包(選項為yes/no),如果是的話,這就表明該軟體是維持系統穩定和正常執行的軟體包,不允許任何形式的解除安裝(除非進行強制性的解除安裝)
Architecture:申明軟體包結構,如基於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
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