Debian

建構沒有捆綁在一起的相關軟體包的 Debian 軟體包

  • September 8, 2021

當我建構一個 debian 包時,通常會建構許多捆綁在一起的相關包,以及foo-dbgsym-*版本和foo-doc包。

例如,即使是相對簡單的包,如make, 也會建構額外的包:

make-dbgsym_4.2.1-1.2_amd64.deb
make-guile-dbgsym_4.2.1-1.2_amd64.deb
make-guile_4.2.1-1.2_amd64.deb
make_4.2.1-1.2_amd64.deb

我可以告訴建構系統只建構make而不是建構make-guile嗎?

這是我用於建構包的過程:

apt-get source make
cd make*
dpkg-buildpackage --build=binary --no-sign

是否有一個通用過程可以指定我要建構哪些包?

Make是一個簡單的例子,但是較大的包會建構許多我不感興趣的包版本,需要安裝依賴庫,並且建構過程需要更長的時間。

dbgsym可以使用建構noautodbgsym選項禁用軟體包:

DEB_BUILD_OPTIONS=noautodbgsym dpkg-buildpackage -us -uc

通過更改--build.dpkg-buildpackage

除此之外,沒有通用的方法來挑选和選擇要建構的包和要安裝的依賴項。特別是,建構依賴項與它們相關的二進制包無關。

一些包支持建構配置文件;您可以通過Build-Profilesdebian/control. 在此類包中,dpkg-buildpackage-P選項選擇適當的配置文件,有時與建構選項結合使用。例如,在帶有nocheck配置文件的包上,

DEB_BUILD_OPTIONS=nocheck dpkg-buildpackage -Pnocheck

將跳過與測試相關的建構依賴項(如果有)並跳過執行測試。

事實上,最新版本的make軟體包聲稱提供了一個noguile建構配置文件,所以應該可以跳過 Guile

dpkg-buildpackage -Pnoguile -us -uc

除了配置文件定義不完整

始終可以編輯debian/control以刪除不相關的包,並debian/rules刪除不相關的建構步驟。

引用自:https://unix.stackexchange.com/questions/668055