O slideshow foi denunciado.
Utilizamos seu perfil e dados de atividades no LinkedIn para personalizar e exibir anúncios mais relevantes. Altere suas preferências de anúncios quando desejar.
淺談Debian套件打包 
Wen Liao
Disclaimer 
投影片資料為作者整理資料及個人意見,沒有經 
過嚴謹確認,請讀者自行斟酌,更歡迎除錯指教
目標 
● 了解 
○ Debian套件的結構 
○ 如何打包Debian套件 
● 不包含 
○ 套件版本名稱規則規則 
○ sign一個套件 
○ 上傳打包好的debian套件 
○ 標準套件的貢獻流程 (RFP/ITP...等) 
○ A...
說故事時間
很久很久以前
很多Linux軟體是這樣安裝的
./configure
make
make install
如果發生了 
hey_hey.h: No such file or directory
你要找出hey_hey.h是那一個 
套件,拉原始碼下來安裝
喔
那找到的套件又來一樣的狀況 
怎麼辦?
找到的套件需要的套件又來一 
樣的狀況怎麼辦?
找到的套件需要的套件需要的 
套件又來一樣的狀況怎麼辦?
加碼
找到了套件,編譯完成才發現 
版本不同,砍掉重練
我只是想要用軟體為什麼要變 
成組裝工程式設計師? 
┴─┴︵╰(‵□′╰
現在
apt-get install 套件 
收工
可喜可賀,可喜可樂
測試環境
Outline 
● 拖台錢 
● Debian 套件結構 
● Debian 套件打包 (節錄) 
● 延伸討論和結論 
● 參考資料 
● Q & A
關於Debian - 大事記 (引用自Wikipidia) 
● 1993 - Ian Murdock 公佈 Debian (Debra + 
Ian) 
● 1996 - 1997 1.x 版 
● 1998 - 2000 2.x 版 (AP...
Debian特性 (引用自Wikipidia) 
● Linux distribution主流之一 
○ 衍生: Ubuntu, Mint 
● 自由軟體的擁護者 
● 支援Linux和kFreeBSD kernel 
● 套件管理 
Fron...
Release分類 (引用自Wikipidia) 
● Stable (代號會更動) 
○ 穩定版,一般來說當Testing版套件穩定後就會freeze, 
之後只針對free的套件版本更新安全和操作的錯誤修 
正更新。 
● Testing ...
開發流程 (引用自Wikipidia) 
今天要談的 
部份
開發流程 (引用自Wikipidia)
套件分類 (引用自Wikipidia) 
● main 
○ 符合DFSG定義的自由軟體,包含在官方安裝套件 
● non-free 
○ 不符合DFSG定義的套件,可能是 
■ proprietary 軟體 
■ 含有必須伴隨軟體存在不可變動...
Outline 
● 拖台錢 
● Debian 套件結構 
● Debian 套件打包 (節錄) 
● 延伸討論和結論 
● 參考資料 
● Q & A
從下載的地方 
複製grep套件 
deb檔使用ar 打包 
套件內容 
● [窄宅看的] ar 可以參考static library 
deb格式版本
data.tar.xz 存放最後安裝到 / 的檔案
control.tar.gz包含md5sums和control 
檔
control檔 (續)
比對apt-cache取得的套件資訊
Outline 
● 拖台錢 
● Debian 套件結構 
● Debian 套件打包 (節錄) 
● 延伸討論和結論 
● 參考資料 
● Q & A
自行打包套件方式 
● 取得source,決定版本號碼 
● 依特定檔案格式取名稱以及解壓縮 
● dh_make產生debian目錄 
● 修改debian目錄內的資訊 
● 使用工具產生及驗證deb檔案
偽. demo
_原始套件版號.orig 
版號前分隔字元不 
同! 
這是autotools包 
裝的tarball 
● tarball先改名稱為 -> 套件名稱_版號.orig.tar.gz 
● 解壓縮tarball,確認解壓縮後的目錄名稱是 
○ 套...
切換目錄 
使用dh_make產生debian目錄及template 
debian 目錄 
偷懶不解釋
使用dpkg-buildpackage 產生deb檔,並且不 
要sign source以及.changes 
* 產生deb檔還有其他方式如debuild和pbuilder,不提
生出來的deb檔
剛才偷懶都沒改debian下面的資料,檢 
查的下場...慘不忍睹
Outline 
● 拖台錢 
● Debian 套件結構 
● Debian 套件打包 (節錄) 
● 延伸討論和結論 
● 參考資料 
● Q & A
延伸討論 
● debian目錄內的檔案和格式相關規範 
● apt-get source 套件名稱 
○ 取得repository打包的source檔和debian設定 
● 如何在source套件中管理的patch? 
○ hint: qu...
延伸討論 
● 更嚴謹的檢查和打包方式 
○ pbuilder 
○ debuild 
● apt-get install lxde裝了好幾個套件怎麼辦到 
的? 
● lib-xxx 和lib-xxx-dev以及lib-xxx-dbg是同一個...
結論 
● debian的套件由ar 組成,裏面包含 
○ 最後安裝到系統的檔案 
○ 套件相關metadata 
○ 套件格式 
● 自行打包套件方式 
○ 取得source,決定版本號碼 
○ 依特定檔案格式取名稱以及解壓縮 
○ dh_m...
結論 
● (認真) 這是一個避重就輕的分享 
○ 類比:寫個Hello World很簡單,寫個不會segmentation 
fault的link list就要點功力和技術了。 
● 真正有趣的的是延伸討論的主體
Outline 
● 拖台錢 
● Debian 套件結構 
● Debian 套件打包 (節錄) 
● 延伸討論和結論 
● 參考資料 
● Q & A
參考資料 
● [Meta-Package] Debian 打包系列(正體中文) 
● Debian Packaging Tutorial (PDF, 大推) 
● Wikipedia: deb (file format) 
● Ubuntu ...
Outline 
● 拖台錢 
● Debian 套件結構 
● Debian 套件打包 (節錄) 
● 延伸討論和結論 
● 參考資料 
● Q & A
淺談Debian套件打包
Próximos SlideShares
Carregando em…5
×

淺談Debian套件打包

淺談Debian套件打包

  • Seja o primeiro a comentar

淺談Debian套件打包

  1. 1. 淺談Debian套件打包 Wen Liao
  2. 2. Disclaimer 投影片資料為作者整理資料及個人意見,沒有經 過嚴謹確認,請讀者自行斟酌,更歡迎除錯指教
  3. 3. 目標 ● 了解 ○ Debian套件的結構 ○ 如何打包Debian套件 ● 不包含 ○ 套件版本名稱規則規則 ○ sign一個套件 ○ 上傳打包好的debian套件 ○ 標準套件的貢獻流程 (RFP/ITP...等) ○ APT相關遠端目錄結構說明
  4. 4. 說故事時間
  5. 5. 很久很久以前
  6. 6. 很多Linux軟體是這樣安裝的
  7. 7. ./configure
  8. 8. make
  9. 9. make install
  10. 10. 如果發生了 hey_hey.h: No such file or directory
  11. 11. 你要找出hey_hey.h是那一個 套件,拉原始碼下來安裝
  12. 12.
  13. 13. 那找到的套件又來一樣的狀況 怎麼辦?
  14. 14. 找到的套件需要的套件又來一 樣的狀況怎麼辦?
  15. 15. 找到的套件需要的套件需要的 套件又來一樣的狀況怎麼辦?
  16. 16. 加碼
  17. 17. 找到了套件,編譯完成才發現 版本不同,砍掉重練
  18. 18. 我只是想要用軟體為什麼要變 成組裝工程式設計師? ┴─┴︵╰(‵□′╰
  19. 19. 現在
  20. 20. apt-get install 套件 收工
  21. 21. 可喜可賀,可喜可樂
  22. 22. 測試環境
  23. 23. Outline ● 拖台錢 ● Debian 套件結構 ● Debian 套件打包 (節錄) ● 延伸討論和結論 ● 參考資料 ● Q & A
  24. 24. 關於Debian - 大事記 (引用自Wikipidia) ● 1993 - Ian Murdock 公佈 Debian (Debra + Ian) ● 1996 - 1997 1.x 版 ● 1998 - 2000 2.x 版 (APT) ● 2002 ~ 3.x ~ (GUI安裝、多平台、Free firmware)
  25. 25. Debian特性 (引用自Wikipidia) ● Linux distribution主流之一 ○ 衍生: Ubuntu, Mint ● 自由軟體的擁護者 ● 支援Linux和kFreeBSD kernel ● 套件管理 Front end apt-tools: 透過repository更新及套件相依問題 dpkg: 處理系統上已安裝套件和獨立的deb檔案
  26. 26. Release分類 (引用自Wikipidia) ● Stable (代號會更動) ○ 穩定版,一般來說當Testing版套件穩定後就會freeze, 之後只針對free的套件版本更新安全和操作的錯誤修 正更新。 ● Testing (代號會更動) ○ 下一版Stable的release ○ 套件版本號碼介於Stable和Unstable之間 ○ 套件在進入Frozen前可進版 ● Unstable (代號固定: Sid) ○ 不提供安裝方式,必須從Testing更新
  27. 27. 開發流程 (引用自Wikipidia) 今天要談的 部份
  28. 28. 開發流程 (引用自Wikipidia)
  29. 29. 套件分類 (引用自Wikipidia) ● main ○ 符合DFSG定義的自由軟體,包含在官方安裝套件 ● non-free ○ 不符合DFSG定義的套件,可能是 ■ proprietary 軟體 ■ 含有必須伴隨軟體存在不可變動的區塊如,不公開 binary等。 ● contrib ○ 雖然套件大致本身符合DFSG定義的自由軟體,但是 仍然有少數的瑕疵如相依於non-free套件等 ● 請比對/etc/apt/source.list ;)
  30. 30. Outline ● 拖台錢 ● Debian 套件結構 ● Debian 套件打包 (節錄) ● 延伸討論和結論 ● 參考資料 ● Q & A
  31. 31. 從下載的地方 複製grep套件 deb檔使用ar 打包 套件內容 ● [窄宅看的] ar 可以參考static library deb格式版本
  32. 32. data.tar.xz 存放最後安裝到 / 的檔案
  33. 33. control.tar.gz包含md5sums和control 檔
  34. 34. control檔 (續)
  35. 35. 比對apt-cache取得的套件資訊
  36. 36. Outline ● 拖台錢 ● Debian 套件結構 ● Debian 套件打包 (節錄) ● 延伸討論和結論 ● 參考資料 ● Q & A
  37. 37. 自行打包套件方式 ● 取得source,決定版本號碼 ● 依特定檔案格式取名稱以及解壓縮 ● dh_make產生debian目錄 ● 修改debian目錄內的資訊 ● 使用工具產生及驗證deb檔案
  38. 38. 偽. demo
  39. 39. _原始套件版號.orig 版號前分隔字元不 同! 這是autotools包 裝的tarball ● tarball先改名稱為 -> 套件名稱_版號.orig.tar.gz ● 解壓縮tarball,確認解壓縮後的目錄名稱是 ○ 套件名稱-版號
  40. 40. 切換目錄 使用dh_make產生debian目錄及template debian 目錄 偷懶不解釋
  41. 41. 使用dpkg-buildpackage 產生deb檔,並且不 要sign source以及.changes * 產生deb檔還有其他方式如debuild和pbuilder,不提
  42. 42. 生出來的deb檔
  43. 43. 剛才偷懶都沒改debian下面的資料,檢 查的下場...慘不忍睹
  44. 44. Outline ● 拖台錢 ● Debian 套件結構 ● Debian 套件打包 (節錄) ● 延伸討論和結論 ● 參考資料 ● Q & A
  45. 45. 延伸討論 ● debian目錄內的檔案和格式相關規範 ● apt-get source 套件名稱 ○ 取得repository打包的source檔和debian設定 ● 如何在source套件中管理的patch? ○ hint: qulit
  46. 46. 延伸討論 ● 更嚴謹的檢查和打包方式 ○ pbuilder ○ debuild ● apt-get install lxde裝了好幾個套件怎麼辦到 的? ● lib-xxx 和lib-xxx-dev以及lib-xxx-dbg是同一個 套件,那麼這要怎麼寫?
  47. 47. 結論 ● debian的套件由ar 組成,裏面包含 ○ 最後安裝到系統的檔案 ○ 套件相關metadata ○ 套件格式 ● 自行打包套件方式 ○ 取得source,決定版本號碼 ○ 依特定檔案格式取名稱以及解壓縮 ○ dh_make產生debian目錄 ○ 修改debian目錄內的資訊 ○ 使用工具產生及驗證deb檔案
  48. 48. 結論 ● (認真) 這是一個避重就輕的分享 ○ 類比:寫個Hello World很簡單,寫個不會segmentation fault的link list就要點功力和技術了。 ● 真正有趣的的是延伸討論的主體
  49. 49. Outline ● 拖台錢 ● Debian 套件結構 ● Debian 套件打包 (節錄) ● 延伸討論和結論 ● 參考資料 ● Q & A
  50. 50. 參考資料 ● [Meta-Package] Debian 打包系列(正體中文) ● Debian Packaging Tutorial (PDF, 大推) ● Wikipedia: deb (file format) ● Ubuntu Wiki: DebPackaging (正體中文) ● Debian new maintainer’s guide ● Debian Package ($4大大文件,正體中文)
  51. 51. Outline ● 拖台錢 ● Debian 套件結構 ● Debian 套件打包 (節錄) ● 延伸討論和結論 ● 參考資料 ● Q & A

    Seja o primeiro a comentar

    Entre para ver os comentários

  • johnccw

    Sep. 27, 2014
  • piliwilliam

    Sep. 27, 2014
  • benuxwei

    Sep. 27, 2014
  • fu4k6pingu

    Sep. 27, 2014
  • ssusereb6ca4

    Sep. 27, 2014
  • carlos3023

    Oct. 1, 2014
  • louisje

    Oct. 1, 2014
  • aerover

    Nov. 21, 2014
  • muhaha03

    Nov. 23, 2014
  • zack9433

    Jan. 8, 2015
  • tedchang

    Jan. 28, 2015
  • ssuser8fbed7

    Mar. 28, 2016
  • leonyanliang

    Mar. 31, 2016
  • kemditkb

    Jul. 28, 2016
  • Chengchiatseng

    Dec. 1, 2016
  • SmallSea

    May. 16, 2017
  • taihsiang

    Aug. 31, 2018
  • 23011316

    Jan. 25, 2019
  • IanLi1

    Jun. 26, 2020

淺談Debian套件打包

Vistos

Vistos totais

4.360

No Slideshare

0

De incorporações

0

Número de incorporações

1.566

Ações

Baixados

39

Compartilhados

0

Comentários

0

Curtir

19

×