Bagaimana saya bisa menggunakan file deb lokal di build pbuilder saya?

9

Seringkali saya perlu membuat paket yang bergantung pada paket lain (mis. Membangun dependensi). Alih-alih memiliki semua paket yang pertama kali dibangun di ppa saya (yang kadang-kadang bisa memakan waktu), saya ingin menggunakan direktori hasil dari pbuilder sebagai sumber untuk pbuilder itu sendiri.

Bagaimana saya bisa melakukan ini? Bisakah saya melakukan ini melalui hook?

txwikinger
sumber

Jawaban:

5

Anda dapat menempelnya di repo sederhana yang dibuat dengan paket dpkg-scanpack dan membuatnya tersedia melalui apache. Kemudian perbarui konfigurasi apt pbuilder untuk menggunakan repo Anda.

Dennis Kaarsemaker
sumber
3
Lihat juga wiki.ubuntu.com/PbuilderHowto # Membangun Dengan Paket Lokal. Tidak yakin apakah contoh OTHERMIRROR mereka, terhadap sistem file lokal langsung berfungsi. Saya mengambil rute mudah menggunakan jalur localhost untuk repo paket tambahan saya.
andol
6

Ini bisa dilakukan beberapa cara. Seperti yang disebutkan oleh adol, wiki Ubuntu memiliki contoh yang bagus tentang bagaimana melakukan ini dengan membuat repositori lokal dengan mini-dinstall dan menambahkannya ke konfigurasi pbuilder Anda. Jawaban Dennis tentang menggunakan dpkg-scanpackages juga berfungsi.

Saya telah melakukan ini baru-baru ini dengan apt-ftparchive. Saya suka pendekatan ini karena saya merasa sangat ringan. Inilah contoh yang beranotasi dari apa yang saya lakukan:

# From my ~/.pbuilderrc file

# Location of the dir where you keep pbuilder hook scripts.
HOOKDIR="/home/andrew/.pbuilder-hooks"

# Path to your local repo to be used as a mirror written as apt source line.
OTHERMIRROR="deb file:///home/andrew/pbuilder/local_repo ./"

# Path to your local repo. This tells pbuilder to mount this directory so it is available in the chroot.
BINDMOUNTS="/home/andrew/pbuilder/local_repo"

# As we need to have the apt-ftparchive command, we need to insure this package is installed.
EXTRAPACKAGES="apt-utils"

Anda juga membutuhkan pengait pbuilder:

# From my ~/.pbuilder-hooks/D5update-local-repo file

# Path to the local repo.
LOCAL_REPO="/home/andrew/pbuilder/local_repo"

# Generate a Packages file.
(cd $LOCAL_REPO ; apt-ftparchive packages . > Packages)

# Update to include any new packages in the local repo.
apt-get update

Sekarang yang harus Anda lakukan adalah menjatuhkan paket ke repo lokal Anda dan mereka akan tersedia untuk pbuilder. Jika Anda mencoba untuk membangun rangkaian dependensi, Anda dapat menjadikan Anda direktori hasil pbuilder sebagai direktori repo lokal Anda.

Anda mungkin dapat membayangkan variasi lain tentang ini. Misalnya, Anda bisa menggunakan dput dengan post_upload_command untuk menghasilkan file Paket alih-alih menggunakan hook.

Halaman wiki Debian ini juga bisa membantu.

andrewsomething
sumber
1
File hook perlu dipanggil D05...(dua digit angka) dan perlu dieksekusi. Juga (setidaknya ketika menggunakan pbuilder-dist) setelah menambahkan paket tambahan apt-utils yang harus Anda panggil pbuilder-dist <dist> update --override-configsekali. Dan juga lagi dengan pbuilder-dist Anda perlu mengatur OTHERMIRROR sebagai variabel lingkungan karena mengesampingkan pengaturan config-file.
BubuIIC