1. 程式人生 > >從原始碼開始製作deb包

從原始碼開始製作deb包

1. create 一個目錄 如下
mkdir hello

2. c 原始碼如下
[email protected]:~/deb# cat hello.c
#include <stdio.h>
int main(int argc, char* argv[])
{
     printf("Hello world!\n");
     return 0;
}
[email protected]:~/deb# cat Makefile
OBJS=hello.o
CC=gcc -g
all:$(OBJS)
        $(CC) -o hello $(OBJS)
clean:
        rm -f *.o hello
.PHONY:all clean

3. 我們make一下,測試程式編譯是否有問題,然後在./hello檢查程式是否正確執行.如果沒問題進行下一步,如果有問題我們檢查程式程式碼

[email protected]:~/deb# make
gcc -g -c -o hello.o hello.c
gcc -g -o hello hello.o

4、我們清理下剛才編譯程式的垃圾,make clean一下
make clean
5、輸入命令,切回上級目錄
cd ..
6、 改名:因為檔名必須包含檔名還有版本號
mv hello hello-1.0
說明:檔名後必須用-,不能用_
tar zcvf hello_1.0.tar.gz hello-1.0
cd hello-1.0
[email protected]:~/hello-1.0# dh_make -e [email protected]
gmail.com -f ../hello_1.0.tar.gz

Type of package: single binary, indep binary, multiple binary, library, kernel module, kernel patch?
 [s/i/m/l/k/n] s

Maintainer name : root
Email-Address : [email protected]
Date : Thu, 10 Jul 2014 16:25:54 +0800
Package Name : hello
Version : 1.0
License : blank
Type of Package : Single
Hit <enter> to confirm:
Done. Please edit the files in the debian/ subdirectory now. You should also
check that the hello Makefiles install into $DESTDIR and not in / .
#tar zcvf hello_1.0.orig.tar.gz hello-1.0
說明:壓縮包的名字必須是包含檔名及版本號

7、開始打包
dpkg-buildpackage



[email protected]
:~/hello-1.0# dpkg-buildpackage
dpkg-buildpackage: 原始碼包 hello
dpkg-buildpackage: 原始碼版本 1.0-1
dpkg-buildpackage: source distribution unstable
dpkg-buildpackage: 原始碼修改者 root <[email protected]>
dpkg-buildpackage: 主機架構 amd64
 dpkg-source --before-build hello-1.0
 debian/rules clean
dh clean
   dh_testdir
   dh_auto_clean
make[1]: 正在進入目錄 `/root/hello-1.0'
rm -f *.o hello
make[1]:正在離開目錄 `/root/hello-1.0'
   dh_clean
 dpkg-source -b hello-1.0
dpkg-source: info: using source format `3.0 (quilt)'
dpkg-source: info: building hello using existing ./hello_1.0.orig.tar.gz
dpkg-source: 警告: 忽略對檔案 hello.o 的刪除指令
dpkg-source: 警告: 忽略對檔案 hello 的刪除指令
dpkg-source: info: building hello in hello_1.0-1.debian.tar.gz
dpkg-source: info: building hello in hello_1.0-1.dsc
 debian/rules build
dh build
   dh_testdir
   dh_auto_configure
   dh_auto_build
make[1]: 正在進入目錄 `/root/hello-1.0'
gcc -g -g -O2 -fstack-protector --param=ssp-buffer-size=4 -Wformat -Werror=format-security -D_FORTIFY_SOURCE=2 -c -o hello.o hello.c
gcc -g -o hello hello.o
make[1]:正在離開目錄 `/root/hello-1.0'
   dh_auto_test
 debian/rules binary
dh binary
   dh_testroot
   dh_prep
   dh_auto_install
   dh_installdocs
   dh_installchangelogs
   dh_perl
   dh_link
   dh_compress
   dh_fixperms
   dh_strip
   dh_makeshlibs
   dh_shlibdeps
   dh_installdeb
   dh_gencontrol
dpkg-gencontrol: 警告: Depends field of package hello: 未知的替換變數 ${shlibs:Depends}
dpkg-gencontrol: 警告: File::FcntlLock not available; using flock which is not NFS-safe
   dh_md5sums
   dh_builddeb
dpkg-deb:正在新建軟體包 hello,包檔案為 ../hello_1.0-1_amd64.deb。
 dpkg-genchanges >../hello_1.0-1_amd64.changes
dpkg-genchanges: 上傳資料中包含完整的原始程式碼
 dpkg-source --after-build hello-1.0
dpkg-buildpackage: 完整上載(包含原始的程式碼)
[email protected]:~/hello-1.0#

打包成功,看到上級目錄有 deb包就成功了( 我這裡為hello_1.0-1_amd64.deb)
[email protected]:~/hello-1.0# ls ../hello
hello-1.0/ hello_1.0-1.debian.tar.gz hello_1.0.tar.gz
hello_1.0-1_amd64.changes hello_1.0-1.dsc
hello_1.0-1_amd64.deb hello_1.0.orig.tar.gz

相關推薦

原始碼開始製作deb

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

轉 Docker 開始製作基礎映象[centos]

轉自 https://blog.csdn.net/bolg_hero/article/details/50263569 http://www.oschina.net/news/62897/docker-hub-contains-high-risk-vulnerabilities 這裡有個統計,do

開始製作人臉表情的資料集

一、背景 人臉表情識別網上已有很多教程,大多基於fer2013資料集展開的。現在的問題就在於fer2013資料集的數量太少,表情的區分度不夠明顯,大部分基於此資料集的模型,其識別精度僅有70%左右。 因此我想自己從零開始製作人臉表情,而且是非常誇張,有趣的人臉表情,用於後續的表情識別實驗。這

開始製作一款打卡類小程式

這學期受某人所託,給學院做了一款打卡小程式。其效果如下: 一個類似論壇的社群,可發帖、評論、回覆。 打卡可換算積分,一天只能打卡一次,且有今日打卡排行榜實時展示。 跑步也可換算積分,換算的規則男女有別。 這個小程式的上線成本比較高,需要營業執照,還有

Redux 原始碼解讀 —— 原始碼開始學 Redux

已經快一年沒有碰過 React 全家桶了,最近換了個專案組要用到 React 技術棧,所以最近又複習了一下;撿起舊知識的同時又有了一些新的收穫,在這裡作文以記之。 在閱讀文章之前,最好已經知道如何使用 Redux(不是 React-Redux)。 一、準備環境 為了更好的解讀原始碼,我們可以把

深入Vue.js原始碼開始(二)

從入口開始 我們之前提到過 Vue.js 構建過程,在 web 應用下,我們來分析 Runtime + Compiler 構建出來的 Vue.js,它的入口是 src/platforms/web/entry-runtime-with-compiler.js: 摘選entry-runtime-with-co

開始製作基於Unity引擎的寶石消消樂——開篇設計(一)

市場上有些消消樂真好玩,比如hxxxxxpop,pxxxxsaga這類,所以這下想自己從零開始先做一個消消樂,然後再一點點新增遊戲內容進去,順便問下有沒有遊戲公司要找程式撈一下我。 前言 市場上已經有很多消消樂的遊戲了,前段時間剛想做一個簡單的消消樂,在網上翻了

手把手教你原始碼開始搭建自己的以太坊公鏈(四)部署及連線多個節點

1. 使用相同的創世區塊檔案genesis.json 創世區塊genesis.json檔案內容如下: { "config": { "chainId": 100, "homestea

微信小程式-開始製作一個跑步微信小程式

一、準備工作 1、註冊一個小程式賬號,得用一個沒註冊過公眾號的郵箱註冊。 2、註冊過程中需要很多認證,有很多認證,比較繁瑣,如果暫時只是開發測試,不進行提審、釋出的話,只要完成營業執照號填寫就可以了,不需要完成微信認證。 3、註冊完賬號,登入,在主頁面左邊列表中點選設定,然後再

Docker 開始製作基礎映象[centos]

試驗如下:在centos7機器上做centos映象 直接參考這個指令碼 ./mkimage-yum.sh -y /etc/yum.conf centos7 執行如上指令碼,成功後,就可以看到映象了【docker images】,概要說明一下,主要是如下幾步: 1.tmp目錄下建立臨時目錄和檔案系統

製作DEB的方法

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

0開始製作一個簡單的OS(bochs bios bximage)

1.      安裝硬體環境模擬器bochs------------Ubuntu下原始碼安裝bochs(裸機純硬體) Bochs是一個x86硬體平臺的開源模擬器。它可以模擬各種硬體的配置。Bochs模擬的是整個PC平臺,包括I/O裝置、記憶體和BIOS。更為有趣的是,甚

使用asp.net開始製作設計一個網站之一

使用ASP.NET從零開始製作設計網站之一 (蔣惠全 楚東明) ☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆    小問號:蔣老師,告訴你一個好訊息,我應聘成功了!謝謝您!回頭再打給您,我要告訴爸媽一聲。

實戰:開始製作一個跑步微信小程式

一、準備工作 首先註冊一個小程式賬號,得用一個沒註冊過公眾號的郵箱註冊。 註冊過程中需要很多認證,比較繁瑣。如果暫時只是開發測試,不進行提審、釋出的話,只要完成營業執照號的填寫就可以了,不需要完成微信認證。 註冊完賬號,並使用該帳號進行登入。 在主頁面左邊列表中點

使用ASP.NET開始製作設計網站之十二

使用ASP.NET從零開始製作設計網站之十二  (蔣惠全 楚東明) ☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆ 第十一個任務:後臺新聞資訊及新聞類別的新增與管理一到目前為止,我們網站的靜態首頁面已經做好了,下面

使用ASP.NET開始製作設計網站之五

使用ASP.NET從零開始製作設計網站之五 (蔣惠全 楚東明) ☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆    四個任務:使用photoshop完成設計與切圖 第三天,小問號又準時地來到我的辦公室。  小

使用ASP.NET開始製作設計網站之四

使用ASP.NET從零開始製作設計網站之四 (蔣惠全 楚東明) ☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆  第三個任務:如何備案 ??  一個小時後,小問號又來到我的辦公室。   小問號:空間已經幫助

使用ASP.NET開始製作設計網站之九

使用ASP.NET從零開始製作設計網站之九 (蔣惠全 楚東明) ☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆  第八個任務:使用SQL Server2005建立資料庫 時間一天一天過去了,小問號每天按部就

開始製作一個個人網站(2017.12.8更新,未完成)

1 你需要準備什麼(包括軟體和服務): IntelliJ IDEA2017.1 旗艦版(非常重要,因為社群版(IntelliJ IDEA CE)沒辦法新增tomcat Service 由於JetBrains破解器的存在大家可以比(si)較(wu)順(ji)暢

Ubuntu下製作deb的方法詳解

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