1. 程式人生 > >deb包的製作

deb包的製作

停止一個軟體包的相關程序,要解除安裝軟體包的相關檔案前執行。
if [ "$1" = "remove" -o "$1" = "deconfigure" ]; then
#需要執行的指令碼
fi

4、解除安裝後執行指令碼debian/postrm

修改相關檔案或連線,和/或解除安裝軟體包所建立的檔案。
#!/bin/sh
if [ "$1" = "upgrade" ] ; then
需要執行的指令碼
elif [ "$1" = "remove" ] || [ "$1" = "purge" ] ; then
需要執行的指令碼
fi

5、debian/changelog

changelog提供版本修改資訊,幫助下載軟體包的人瞭解軟體包中是否有他們需要知道的資訊,決定著生成的deb包的版本號。格式如下:
package (version) distribution(s); urgency=urgency
[optional blank line(s), stripped]
* change details
more change details
[blank line(s), included in output of dpkg-parsechangelog]
* even more change details
[optional blank line(s), stripped]
-- maintainer name [two spaces] date
(注:date可以使用命令date -R獲取)

6、debian/control

control決定著deb包的包名、編譯依賴和執行依賴。用dh_make生成的預設control檔案格式如下(行號是為了新增解釋,我們在這裡特意加入的):
1 Source: demo
2 Section: unknown
3 Priority: extra
4 Maintainer: steveyg
5 Build-Depends: debhelper (>=9)
6 Standards-Version: 1.0.0
7 Homepage: <insert the upstream URL, if relevant>
8
9 Package: demo
10 Architecture: amd64
11 Depends: ${shlibs:Depends}, ${misc:Depends}
12 Description: <insert up to 60 chars description>
13 <insert long description, indented with spaces>
1-7行是原始碼的control資訊,9-13是二進位制包的control資訊。
第 1 行是原始碼包的名稱。
第 2 行是該原始碼包要進入發行版中的分類。
第 3 行是描述使用者安裝該包的重要程度。由於這是一個常規優先順序的軟體,並不與其他軟體包衝突,我們將優先順序改為 optional。
每個軟體包都有一個維護者指定的優先順序,用於包管理系統。這些優先順序是:
必須的(Required):系統運轉所必須的軟體包。包括修復系統缺陷所必須的所有工具。不能刪除這些軟體包,否則系統可能會崩潰,且甚至有可能無法用 dpkg 恢復。僅有這類包的系統是不可用的,但是它為系統管理員啟動系統安裝其它軟體提供足夠的功能。
重要的(Important):在任何類 Unix 系統上均安裝有該級別軟體包。沒有這類包,其它的包無法在系統上正常運轉或使用,Emacs,X11,TeX 等大型應用程式不在此列。此類包構成基本系統。
一般的(Standard):Linux 系統裡的一般軟體包,構成小型字元系統。這是使用者什麼也不選也會預設安裝的軟體包. 不包括大型軟體, 但是 Emacs(與其說它是一個應用軟體,不如說它是基礎構件)一小部分 TeX 和 LaTeX(不支援X)除外。
可選的(Optional):軟體包包含了所有的你想要安裝的檔案,如果你一開始不知道它是什麼。或者沒有特殊的需要。這包括 X11,所有的 TeX 和許多應用程式。
額外的(Extra):這類包不是與其它高優先順序的軟體衝突,只有知道它的用途才可能對你有用,就是因為特別的原因而不能進入"可選"優先順序。
第 4 行是原始碼維護者的名字和郵箱。
第 5 行是原始碼的編譯依賴。
第 6 行是此軟體包所依據的“Debian Policy Manual” 標準版本號。
第 7 行是原始碼的主頁。
第 9 行是二進位制軟體包的名稱。通常情況下與原始碼包相同,但不是必須的。
第 10 行是目標機架構,指明二進位制包的型別。如果你的軟體包是平臺獨立的(例如一個 shell 或 Perl 指令碼,或一些文件),將這項改變為 all,否則寫成any。
第 11 行顯示了 Debian 軟體包系統中最強大的特性之一。每個軟體包都可以和其他軟體包有各種不同的關係。除 Depends 外,還有 Recommends、Suggests、Pre-Depends、Breaks、Conflicts、Provides 和 Replaces。
第 12 行是軟體的簡短描述。
第 13 行是軟體的詳細描述。

7、debian/compat

定義相容級別,Ubuntu Kylin下保持預設值即可。

8、debian/copyright

包含原始碼的版權和許可,dh_make 可以給出一個 copyright 檔案的模板。

9、debian/install

一些檔案可以通過該install指令碼,在軟體安裝時安裝到系統的指定路徑下,也可以選擇python的setup模組等進行安裝操作。

10、debian/links

建立額外的符號連結。

11、debian/rules

rules檔案本質上是一個Makefile檔案,這個Makefile檔案定義了建立deb格式軟體包的規則。打包工具按照rules檔案指定的規則,完成編譯,將軟體安裝到臨時安裝目錄,清理編譯目錄等操作,並依據安裝到臨時目錄的檔案來生成deb格式的軟體包。
dh_make 會生成一個使用 dh 命令的非常簡單但非常強大的預設的 rules 檔案:
#!/usr/bin/make -f
# -*- makefile -*-
# Uncomment this to turn on verbose mode.
#export DH_VERBOSE=1
%:
dh [email protected]
一般沒有特殊要求的情況下,原始碼包使用預設配置就可以了



相關推薦

製作DEB的方法

由於個人水平有限,難免有很多不適當的地方,有什麼翻譯錯誤的,請多多指教^_^ 原文地址 Chapter 1. Getting started The Right Way 這一章沒做記錄 Chapter 2. First steps 2.1 建立debian包的工作流  

從原始碼開始製作deb

1. create 一個目錄 如下 mkdir hello 2. c 原始碼如下 [email protected]:~/deb# cat hello.c #include <stdio.h> int main(int argc, char* ar

Ubuntu下製作併發布deb

想做有關linaro ubuntu的開發,在wiki上介紹說首先需要熟悉linaro ubuntu的Deb包製作流程,參考網址所述 1. 在2.2.3. Upload your GPG key to Launchpad這一步,第一次匯入key完成後,launchpad網站會

製作Ubuntu deb的三種方法

original url: http://www.cnblogs.com/sunyubo/archive/2010/08/27/2282129.html 一、使用deb包 1. 檢視deb包含有哪些檔案(不安裝) $ dpkg -c xxx.deb // 安裝前根據deb檔案檢視 $ dpkg -L deb

deb製作

停止一個軟體包的相關程序,要解除安裝軟體包的相關檔案前執行。if [ "$1" = "remove" -o "$1" = "deconfigure" ]; then #需要執行的指令碼 fi4、解除安裝後執行指令碼debian/postrm修改相關檔案或連線,和/或解除安裝軟體包所建立的檔案。#!/bin/s

ubuntu deb安裝製作方法介紹

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

ubuntu下製作簡單的deb

目錄結構 被打包之前,檔案結構如下: makeDeb │ ├── DEBIAN   │ └── control  // 1 安裝資訊 └── usr     ├── share │ └── applications

checkinstall 製作rpm或者deb

使用checkinstall製作安裝包的優點:第一:便於管理,如果是通過原始碼包make install安裝後,以後想解除安裝軟體,會很麻煩,需要一個目錄一個目錄的刪除,但是如果使用製作的包安裝後,直接可以通過rpm -e  軟體包(centos)或者dpkg remove

Ubuntu下製作deb的方法詳解

1 認識deb包 1.1 認識deb包 deb是Unix系統(其實主要是Linux)下的安裝包,基於 tar 包,因此本身會記錄檔案的許可權(讀/寫/可執行)以及所有者/使用者組。 由於 Unix 類系統對許可權、所有者、組的嚴

Ubuntu16.04下製作deb的方法詳解

1 認識deb包 1.1 認識deb包 deb是Unix系統(其實主要是Linux)下的安裝包,基於 tar 包,因此本身會記錄檔案的許可權(讀/寫/可執行)以及所有者/使用者組。 由於 Unix 類系統對許可權、所有者、組的嚴格要求,而 d

dpkg安裝deb缺少依賴的解決方法

deb 解決 執行 -i pkg 缺少 install all 依賴包 使用 dpkg -i *.deb 命令安裝的時候提示依賴包沒有安裝 解決方法: 1、解決依賴問題 執行:apt-get -f -y install 2、安裝deb包 執行:dpkg -i *.deb

dpkg: deb的操作命令

-s dpkg log 顯示 key 文件 con pre AC dpkg -i package.deb #安裝包 dpkg -r package #刪除包 dpkg -P package #刪除包(包括配置文件) dpkg -L p

Ubuntu下deb的安裝方法

hat ppi 系統 nop 下載 方法 信息 class 不同的 deb是debian linus的安裝格式,跟red hat的rpm非常相似,最基本的安裝命令是:dpkg -i file.deb dpkg 是Debian Package的簡寫,是為Debian 專門

不得不說的Fedora和CentOS安裝deb方法

文章來自公眾號:睿江雲端計算 轉載請說明出處 使用Alien將RPM轉換成DEB 在本文中,我們將為你介紹alien,一個用於在各種不同的Linux包格式相互轉換的工具,其最常見的用法是將.rpm轉換成.deb(或者反過來)。 相信很多用linux(比如Fedora)桌面作日常工作用的朋友

【iOS】iOS馬甲製作+OC、Swift垃圾程式碼生成指令碼

文章目錄 一、馬甲包介紹 1、什麼是馬甲包 2、為什麼要製作馬甲包 3、怎麼製作馬甲包 二、OC垃圾程式碼生成指令碼 三、Swift垃圾程式碼生成指令碼

Composer製作以及釋出!

Composer.json內容   有可能會用到的bug: 當使用php5自帶的file_get_contents方法來獲取遠端檔案的時候(在我的自動化測試框架中有類似呼叫需求),有時候會出現file_get_contents(): failed to

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

linux deb的安裝與解除安裝

通過deb包安裝軟體: sudo dpkg -i package_file.deb 解除安裝: sudo dpkg -r package_name 注意,解除安裝時候是package_file.deb對應的package name 若不知道package name,可以通過

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

                                            &