Menggunakan dependensi lokal di pbuilder

Saya mencoba membuat serangkaian paket menggunakan pbuilder. Paket-paket ini bergantung satu sama lain, jadi untuk memudahkan saya memiliki repositori lokal yang saya kelola menggunakan reprepro. Repositori lokal ini berisi semua dependensi (dari versi sebelumnya).

root@openpanel-builder ~ # export REPREPRO_BASE_DIR=/root/repository
root@openpanel-builder ~ # reprepro list lenny libgrace
lenny|main|amd64: libgrace 0.9.38.1230
lenny|main|i386: libgrace 0.9.38.1230
lenny|main|source: libgrace 0.9.38.1230

Namun, ketika saya mencoba membuat paket dependen, dependensi ini tidak ditemukan.

root@openpanel-builder ~ # pbuilder build --basetgz /var/cache/pbuilder/lenny-i386.tgz  --bindmounts /root/repository /tmp/bldqaJocd/openpanel-core_0.9.12.368.dsc 
I: using fakeroot in build.
Current time: Wed Dec  8 10:46:17 UTC 2010
pbuilder-time-stamp: 1291805177
Building the build Environment
 -> extracting base tarball [/var/cache/pbuilder/lenny-i386.tgz]
 -> creating local configuration
 -> copying local configuration
 -> mounting /proc filesystem
 -> mounting /dev/pts filesystem
-> Mounting /root/repository
 -> policy-rc.d already exists
Obtaining the cached apt archive contents
Installing the build-deps
 -> Attempting to satisfy build-dependencies
 -> Creating pbuilder-satisfydepends-dummy package
Package: pbuilder-satisfydepends-dummy
Version: 0.invalid.0
Architecture: i386
Maintainer: Debian Pbuilder Team <[email protected]>
Description: Dummy package to satisfy dependencies with aptitude - created by pbuilder
 This package was created automatically by pbuilder and should
Depends: debhelper (>= 5), libgrace-dev, libgrace-pcre-dev, zlib1g-dev, sqlite3, libpcre3-dev, libsqlite3-dev
dpkg-deb: building package `pbuilder-satisfydepends-dummy' in `/tmp/satisfydepends-aptitude/pbuilder-satisfydepends-dummy.deb'.
Reading package lists... Done
Building dependency tree       
Reading state information... Done
aptitude is already the newest version.
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
Selecting previously deselected package pbuilder-satisfydepends-dummy.
(Reading database ... 9671 files and directories currently installed.)
Unpacking pbuilder-satisfydepends-dummy (from .../pbuilder-satisfydepends-dummy.deb) ...
dpkg: dependency problems prevent configuration of pbuilder-satisfydepends-dummy:
 pbuilder-satisfydepends-dummy depends on debhelper (>= 5); however:
  Package debhelper is not installed.
 pbuilder-satisfydepends-dummy depends on libgrace-dev; however:
  Package libgrace-dev is not installed.
 pbuilder-satisfydepends-dummy depends on libgrace-pcre-dev; however:
  Package libgrace-pcre-dev is not installed.
 pbuilder-satisfydepends-dummy depends on zlib1g-dev; however:
  Package zlib1g-dev is not installed.
 pbuilder-satisfydepends-dummy depends on sqlite3; however:
  Package sqlite3 is not installed.
 pbuilder-satisfydepends-dummy depends on libpcre3-dev; however:
  Package libpcre3-dev is not installed.
 pbuilder-satisfydepends-dummy depends on libsqlite3-dev; however:
  Package libsqlite3-dev is not installed.
dpkg: error processing pbuilder-satisfydepends-dummy (--install):
 dependency problems - leaving unconfigured
Errors were encountered while processing:
 pbuilder-satisfydepends-dummy
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Initializing package states... Done
Writing extended state information... Done
The following packages are BROKEN:
  pbuilder-satisfydepends-dummy 
The following NEW packages will be installed:
  bsdmainutils{a} debhelper{a} file{a} gettext{a} gettext-base{a} groff-base{a} html2text{a} intltool-debian{a} libmagic1{a} libpcre3{a} libpcre3-dev{a} libpcrecpp0{a} libsqlite3-0{a} libsqlite3-dev{a} 
  man-db{a} po-debconf{a} sqlite3{a} zlib1g-dev{a} 
The following packages are RECOMMENDED but will NOT be installed:
  curl libcompress-zlib-perl libmail-box-perl libmail-sendmail-perl lynx wget 
0 packages upgraded, 18 newly installed, 0 to remove and 0 not upgraded.
Need to get 181kB/7488kB of archives. After unpacking 21.2MB will be used.
The following packages have unmet dependencies:
  pbuilder-satisfydepends-dummy: Depends: libgrace-dev which is a virtual package.
                                 Depends: libgrace-pcre-dev which is a virtual package.
The following actions will resolve these dependencies:

[---snip---]

Current status: 0 broken [-1].
Aptitude couldn't satisfy the build dependencies
E: pbuilder-satisfydepends failed.
Copying back the cached apt archive contents
 -> unmounting /root/repository filesystem
 -> unmounting dev/pts filesystem
 -> unmounting proc filesystem
 -> cleaning the build env 
    -> removing directory /var/cache/pbuilder/build//14563 and its subdirectories

Ketika saya login menggunakan pbuilder --login, paket hanya tersedia setelah apt-get update. Apakah ada cara untuk memperbarui data apt secara otomatis di dalam chroot pbuilder saat menggunakan pbuilder --build?


person Ondergetekende    schedule 08.12.2010    source sumber


Jawaban (2)


Saya menggunakan resep di sini untuk situasi serupa dengan Anda.

Kesimpulan:

  1. Siapkan image pbuilder Anda sehingga ia memeriksa pembaruan pada repo lokal Anda.
  2. Siapkan hook untuk memperbarui repo Anda setiap kali Anda membangun.
person bstpierre    schedule 28.01.2011
comment
Apakah memperbarui gambar pbuilder berfungsi dengan baik untuk Anda? Saya perhatikan bahwa saya sebaiknya melakukan apt-get update/upgrade/dist-upgrade pada gambar sesekali dan menyimpan pembaruan tersebut sebagai gambar baru, jika tidak maka pembaruan cenderung gagal... - person Alexis Wilke; 29.11.2015

Ada beberapa informasi yang cukup komprehensif tentang cara menangani situasi seperti ini di dokumen Ubuntu (sama relevannya jika Anda tidak menggunakan Ubuntu)

person obeattie    schedule 19.12.2010
comment
Dokumen-dokumen tersebut menjelaskan dengan tepat solusi yang saya coba hindari: lakukan langkah pembaruan tambahan sebelum membangun. - person Ondergetekende; 17.01.2011