欧美性猛交xxxx免费看_牛牛在线视频国产免费_天堂草原电视剧在线观看免费_国产粉嫩高清在线观看_国产欧美日本亚洲精品一5区

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

如何從頭開始學(xué)習(xí)為 CardBook 創(chuàng)建一個(gè)Debian包

Linux愛好者 ? 來源:未知 ? 作者:李倩 ? 2018-08-02 17:08 ? 次閱讀

我在 GSoC(LCTT 譯注:Google Summer Of Code,一項(xiàng)針對學(xué)生進(jìn)行的開源項(xiàng)目訓(xùn)練營,一般在夏季進(jìn)行。)的任務(wù)中有一項(xiàng)是為用戶構(gòu)建 Thunderbird擴(kuò)展。一些非常流行的擴(kuò)展,比如Lightning(日歷行事歷)已經(jīng)擁有了 deb 包。

另外一個(gè)重要的用于管理基于 CardDav 和 vCard 標(biāo)準(zhǔn)的聯(lián)系人的擴(kuò)展Cardbook,還沒有一個(gè) deb 包。

我的導(dǎo)師,Daniel鼓勵(lì)我去為它制作一個(gè)包,并上傳到mentors.debian.net。因?yàn)檫@樣就可以使用apt-get來安裝,簡化了安裝流程。這篇博客描述了我是如何從頭開始學(xué)習(xí)為 CardBook 創(chuàng)建一個(gè) Debian 包的。

首先,我是第一次接觸打包,我在從源碼構(gòu)建包的基礎(chǔ)上進(jìn)行了大量研究,并檢查它的協(xié)議是是否與DFSG兼容。

我從多個(gè) Debian Wiki 中的指南中進(jìn)行學(xué)習(xí),比如打包介紹、構(gòu)建一個(gè)包,以及一些博客。

我還研究了包含在Lightning 擴(kuò)展包的 amd64 文件。

Debian 包

創(chuàng)建一個(gè)空的包

我從使用dh_make來創(chuàng)建一個(gè)debian目錄開始。

# Empty project folder

$ mkdir -p Debian/cardbook

# create files

$ dh_make

> --native

> --single

> --packagename cardbook_1.0.0

> --email [email protected]

一些重要的文件,比如 control、rules、changelog、copyright 等文件被初始化其中。

所創(chuàng)建的文件的完整列表如下:

$ find /debian

debian/

debian/rules

debian/preinst.ex

debian/cardbook-docs.docs

debian/manpage.1.ex

debian/install

debian/source

debian/source/format

debian/cardbook.debhelper.lo

debian/manpage.xml.ex

debian/README.Debian

debian/postrm.ex

debian/prerm.ex

debian/copyright

debian/changelog

debian/manpage.sgml.ex

debian/cardbook.default.ex

debian/README

debian/cardbook.doc-base.EX

debian/README.source

debian/compat

debian/control

debian/debhelper-build-stamp

debian/menu.ex

debian/postinst.ex

debian/cardbook.substvars

debian/files

我了解了 Debian 系統(tǒng)中Dpkg包管理器及如何用它安裝、刪除和管理包。

我使用dpkg命令創(chuàng)建了一個(gè)空的包。這個(gè)命令創(chuàng)建一個(gè)空的包文件以及四個(gè)名為.changes、.deb、.dsc、.tar.gz的文件。

.dsc文件包含了所發(fā)生的修改和簽名

.deb文件是用于安裝的主要包文件。

.tar.gz(tarball)包含了源代碼

這個(gè)過程也在/usr/share目錄下創(chuàng)建了README和changelog文件。它們包含了關(guān)于這個(gè)包的基本信息比如描述、作者、版本。

我安裝這個(gè)包,并檢查這個(gè)包安裝的內(nèi)容。我的新包中包含了版本、架構(gòu)和描述。

$ dpkg -L cardbook

/usr

/usr/share

/usr/share/doc

/usr/share/doc/cardbook

/usr/share/doc/cardbook/README.Debian

/usr/share/doc/cardbook/changelog.gz

/usr/share/doc/cardbook/copyright

包含 CardBook 源代碼

在成功的創(chuàng)建了一個(gè)空包以后,我在包中添加了實(shí)際的 CardBook 擴(kuò)展文件。 CardBook 的源代碼托管在 Gitlab 上。我將所有的源碼文件包含在另外一個(gè)目錄,并告訴打包命令哪些文件需要包含在這個(gè)包中。

我使用 vi 編輯器創(chuàng)建一個(gè) debian/install 文件并列舉了需要被安裝的文件。在這個(gè)過程中,我花費(fèi)了一些時(shí)間去學(xué)習(xí)基于 Linux 終端的文本編輯器,比如 vi 。這讓我熟悉如何在 vi 中編輯、創(chuàng)建文件和快捷方式。

當(dāng)這些完成后,我在變更日志中更新了包的版本并記錄了我所做的改變。

$ dpkg -l | grep cardbook

ii cardbook 1.1.0 amd64 Thunderbird add-on for address book

更新完包的變更日志

在重新構(gòu)建完成后,重要的依賴和描述信息可以被加入到包中。 Debian 的control文件可以用來添加額外的必須項(xiàng)目和依賴。

本地 Debian 倉庫

在不創(chuàng)建本地存儲(chǔ)庫的情況下,CardBook 可以使用如下的命令來安裝:

$ sudo dpkg -i cardbook_1.1.0.deb

為了實(shí)際測試包的安裝,我決定構(gòu)建一個(gè)本地 Debian 存儲(chǔ)庫。沒有它,apt-get命令將無法定位包,因?yàn)樗鼪]有在 Debian 的包軟件列表中。

為了配置本地 Debian 存儲(chǔ)庫,我復(fù)制我的包 (.deb)為放在/tmp目錄中的Packages.gz文件。

本地 Debian 倉庫

為了使它工作,我了解了apt的配置和它查找文件的路徑。

我研究了一種在apt-config中添加文件位置的方法。最后,我通過在 APT 中添加*.list文件來添加包的路徑,并使用apt-cache更新APT緩存來完成我的任務(wù)。

因此,最新的 CardBook 版本可以成功的通過apt-get install cardbook來安裝了。

使用 apt-get 安裝 CardBook

修復(fù)打包錯(cuò)誤和 Bugs

我的導(dǎo)師 Daniel 在這個(gè)過程中幫了我很多忙,并指導(dǎo)我如何進(jìn)一步進(jìn)行打包。他告訴我使用Lintian來修復(fù)打包過程中出現(xiàn)的常見錯(cuò)誤和最終使用dput來上傳 CardBook 包。

Lintian 是一個(gè)用于發(fā)現(xiàn)策略問題和 Bug 的包檢查器。它是 Debian 維護(hù)者們在上傳包之前廣泛使用的自動(dòng)化檢查 Debian 策略的工具。

我上傳了該軟件包的第二個(gè)更新版本到 Debian 目錄中的Salsa 倉庫的一個(gè)獨(dú)立分支中。

我從 Debian backports 上安裝 Lintian 并學(xué)習(xí)在一個(gè)包上用它來修復(fù)錯(cuò)誤。我研究了它用在其錯(cuò)誤信息中的縮寫,和如何查看 Lintian 命令返回的詳細(xì)內(nèi)容。

$ lintian -i -I --show-overrides cardbook_1.2.0.changes

最初,在.changes文件上運(yùn)行命令時(shí),我驚訝地看到顯示出來了大量錯(cuò)誤、警告和注釋!

在包上運(yùn)行 Lintian 時(shí)看到的大量報(bào)錯(cuò)

詳細(xì)的 Lintian 報(bào)錯(cuò)

詳細(xì)的 Lintian 報(bào)錯(cuò) (2) 以及更多

我花了幾天時(shí)間修復(fù)與 Debian 包策略違例相關(guān)的一些錯(cuò)誤。為了消除一個(gè)簡單的錯(cuò)誤,我必須仔細(xì)研究每一項(xiàng)策略和 Debian 的規(guī)則。為此,我參考了Debian 策略手冊以及Debian 開發(fā)者參考。

我仍然在努力使它變得完美無暇,并希望很快可以將它上傳到 mentors.debian.net!

如果 Debian 社區(qū)中使用 Thunderbird 的人可以幫助修復(fù)這些報(bào)錯(cuò)就太感謝了。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • 源代碼
    +關(guān)注

    關(guān)注

    96

    文章

    2946

    瀏覽量

    66991
  • Debian
    +關(guān)注

    關(guān)注

    0

    文章

    75

    瀏覽量

    1254

原文標(biāo)題:Debian 打包入門

文章出處:【微信號:LinuxHub,微信公眾號:Linux愛好者】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    MikroElektronika的mikroBUS Click板是否從頭開始的制作?

    的示例代碼,因此您不必從頭開始。2x2按鍵單擊,F(xiàn)LICKER單擊,Arduino UNO單擊Shield我想用Click板創(chuàng)建個(gè)項(xiàng)目來展示它們,但有數(shù)百
    發(fā)表于 10-31 07:10

    請問必須從頭創(chuàng)建BitGen .ut文件嗎?

    我知道ISE會(huì)生成個(gè).ut文件。但是你不使用ISE是什么,切都是命令行。是否必須從頭創(chuàng)建BitGen .ut文件?我還注意到,適用于Vi
    發(fā)表于 07-22 14:48

    如何使用和聲從頭開始設(shè)置HTTP服務(wù)?

    有沒有關(guān)于如何使用和聲從頭開始設(shè)置HTTP服務(wù)的最新教程/設(shè)置?(不是從演示項(xiàng)目開始
    發(fā)表于 04-08 09:39

    ARM嵌入式系統(tǒng)設(shè)計(jì):從頭開始構(gòu)建還是使用SBC?

    些是早期產(chǎn)品的迭代。對于他們而言,開發(fā)個(gè)可在其整個(gè)產(chǎn)品組合中使用的標(biāo)準(zhǔn)平臺(tái)是種可行的替代方案,而不是每個(gè)新產(chǎn)品從頭開始進(jìn)行新設(shè)計(jì)。選擇
    發(fā)表于 10-21 10:11

    如何從頭開始創(chuàng)建個(gè)新的SPC5應(yīng)用程序?

    我正在使用 SPC570S-DISP 開發(fā)板,我正在嘗試創(chuàng)建個(gè)新的應(yīng)用程序表單。我已經(jīng)測試了 IDE 中給出的幾個(gè)示例應(yīng)用程序,它們工作正?!,F(xiàn)在我想從頭開發(fā)這樣
    發(fā)表于 01-16 07:22

    能否連接JTAG調(diào)試器并從頭開始對MCU進(jìn)行編程,因?yàn)镸CU上沒有舊代碼?

    我正在設(shè)計(jì)個(gè)帶有 mimxrt1062 芯片的 PCB。我要把 JTAG 引腳拿出來。我能否連接 JTAG 調(diào)試器并從頭開始對 MCU 進(jìn)行編程,因?yàn)?MCU 上沒有舊代碼?有什么需要注意的嗎?
    發(fā)表于 05-12 06:20

    在三十分鐘內(nèi)創(chuàng)建你的深度學(xué)習(xí)服務(wù)器

    每當(dāng)我開始個(gè)新的項(xiàng)目時(shí),我發(fā)現(xiàn)自己一次又一次地創(chuàng)建個(gè)
    的頭像 發(fā)表于 12-24 16:53 ?487次閱讀

    如何從頭開始EK-RA6M4評估板創(chuàng)建項(xiàng)目

    開始學(xué)習(xí)Pascal樣。從那時(shí)起,我用其他幾種語言編寫了類似的代碼行,主要是為了對新開發(fā)環(huán)境的安裝進(jìn)行完整性檢查。
    發(fā)表于 10-25 14:16 ?759次閱讀

    從頭開始構(gòu)建無人機(jī)

    電子發(fā)燒友網(wǎng)站提供《從頭開始構(gòu)建無人機(jī).zip》資料免費(fèi)下載
    發(fā)表于 11-22 10:35 ?1次下載
    <b class='flag-5'>從頭開始</b>構(gòu)建無人機(jī)

    如何從頭開始制作六足機(jī)器人

    電子發(fā)燒友網(wǎng)站提供《如何從頭開始制作六足機(jī)器人.zip》資料免費(fèi)下載
    發(fā)表于 11-23 09:53 ?2次下載
    如何<b class='flag-5'>從頭開始</b>制作六足機(jī)器人

    PyTorch教程3.4之從頭開始執(zhí)行線性回歸

    電子發(fā)燒友網(wǎng)站提供《PyTorch教程3.4之從頭開始執(zhí)行線性回歸.pdf》資料免費(fèi)下載
    發(fā)表于 06-05 11:25 ?0次下載
    PyTorch教程3.4之<b class='flag-5'>從頭開始</b>執(zhí)行線性回歸

    PyTorch教程4.4之從頭開始實(shí)現(xiàn)Softmax回歸

    電子發(fā)燒友網(wǎng)站提供《PyTorch教程4.4之從頭開始實(shí)現(xiàn)Softmax回歸.pdf》資料免費(fèi)下載
    發(fā)表于 06-05 15:37 ?0次下載
    PyTorch教程4.4之<b class='flag-5'>從頭開始</b>實(shí)現(xiàn)Softmax回歸

    PyTorch教程-3.4. 從頭開始執(zhí)行線性回歸

    ,但從頭開始實(shí)施是確保您真正了解自己在做什么的唯方法。此外,當(dāng)需要自定義模型、定義我們自己的層或損失函數(shù)時(shí),了解引擎蓋下的工作原理將很方便。在本節(jié)中,我們將僅依賴
    的頭像 發(fā)表于 06-05 15:38 ?535次閱讀
    PyTorch教程-3.4. <b class='flag-5'>從頭開始</b>執(zhí)行線性回歸

    為什么從頭開始汽車應(yīng)用設(shè)計(jì)IC很重要

    級和3級自動(dòng)駕駛技術(shù)的好處,這些技術(shù)提供了部分到有條件的轉(zhuǎn)向,加速和制動(dòng)自動(dòng)化。反過來,這些技術(shù)又推動(dòng)了對車內(nèi)半導(dǎo)體內(nèi)容的需求。本文將探討為什么從性能和安全角度出發(fā),從頭開始設(shè)計(jì)汽車IC比重新利用最初設(shè)計(jì)用于其他用途的芯片更好。
    的頭像 發(fā)表于 06-12 14:25 ?706次閱讀

    在Spartan 6 FPGA上從頭開始實(shí)現(xiàn)全加器

    電子發(fā)燒友網(wǎng)站提供《在Spartan 6 FPGA上從頭開始實(shí)現(xiàn)全加器.zip》資料免費(fèi)下載
    發(fā)表于 06-15 10:13 ?0次下載
    在Spartan 6 FPGA上<b class='flag-5'>從頭開始</b>實(shí)現(xiàn)全加器