Як я можу використовувати локальні файли .deb у своїх побудовах pbuilder?


9

Часто мені потрібно створити пакети, від яких залежить інший пакет (тобто побудувати залежності). Замість того, щоб усі ці пакунки спочатку збиралися в моїй ppa (що іноді може зайняти деякий час), я хотів би використовувати каталог результатів з pbuilder як джерело для самого pbuilder.

Як я можу це зробити? Чи можу це зробити через гачок?

Відповіді:


5

Ви можете вставити їх у просту репо, створену за допомогою dpkg-scanpackages, і зробити це доступним через apache. Потім оновіть підходящу конфігурацію pbuilder, щоб використовувати ваше репо.


3
Дивіться також wiki.ubuntu.com/PbuilderHowto#Building з локальними пакетами . Не впевнений, чи спрацьовує їхній приклад OTHERMIRROR проти локальної файлової системи. Я взяв простий шлях використання шляху до localhost для мого додаткового репо-пакету.
andol

6

Це можна зробити декількома способами. Як згадував adol, у вікі Ubuntu є чудовий приклад того, як це зробити, створивши локальний сховище з mini-dinstall і додавши це до конфігурації свого pbuilder. Відповідь Денніса про використання dpkg-scanpackages також працює.

Я робив це нещодавно з apt-ftparchive. Мені подобається такий підхід, оскільки я вважаю його дуже легким. Ось пояснений приклад того, що я роблю:

# 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"

Вам також потрібен гак будівельника:

# 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

Тепер все, що вам потрібно зробити, це скинути пакети у місцеве репо, і вони будуть доступні для pbuilder. Якщо ви намагаєтеся побудувати ланцюжок залежностей, ви можете зробити каталог результатів pbuilder як ваш локальний каталог репо.

Ви можете, мабуть, уявити інші варіанти щодо цього. Наприклад, ви можете використовувати dput з post_upload_command для створення файлу Packages замість гачка.

Ця вікі-сторінка Debian також може бути корисною.


1
Файл гака потрібно викликати D05...(двозначний номер) і його потрібно виконати. Також (принаймні, під час використання pbuilder-dist) після додавання додаткового пакету apt-utils вам доведеться зателефонувати pbuilder-dist <dist> update --override-configодин раз. А також знову за допомогою pbuilder-dist потрібно встановити OTHERMIRROR як змінну середовища, оскільки вона перекриває налаштування файлу config.
BubuIIC
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.