Làm cách nào tôi có thể sử dụng các tệp .deb cục bộ trong các bản dựng pbuilder của mình?


9

Thường thì tôi cần tạo các gói mà gói khác phụ thuộc vào (tức là xây dựng phụ thuộc). Thay vì có tất cả các gói đầu tiên được xây dựng trong ppa của tôi (đôi khi có thể mất một chút thời gian), tôi muốn sử dụng thư mục kết quả từ pbuilder làm nguồn cho chính pbuilder.

Tôi có thể làm cái này như thế nào? Tôi có thể làm điều này thông qua một cái móc không?

Câu trả lời:


5

Bạn có thể dán chúng trong một repo đơn giản được tạo bằng dpkg-scanpackages và làm cho nó có sẵn thông qua apache. Sau đó cập nhật cấu hình apt của pbuilder để sử dụng repo của bạn.


3
Xem thêm wiki.ubfox.com/PbuilderHowto#Bu dựng với các gói địa phương. Không chắc chắn nếu ví dụ OTHERMIRROR của họ, chống lại hệ thống tệp cục bộ hoạt động ngay lập tức. Tôi đã chọn con đường dễ dàng bằng cách sử dụng đường dẫn localhost cho repo gói bổ sung của mình.
andol

6

Điều này có thể được thực hiện một vài cách. Như adol đã đề cập, wiki Ubuntu có một ví dụ hay về cách thực hiện điều này bằng cách tạo một kho lưu trữ cục bộ với mini-dinstall và thêm nó vào cấu hình pbuilder của bạn. Câu trả lời của Dennis về việc sử dụng dpkg-scanpackages cũng hoạt động.

Tôi đã làm điều này gần đây với apt-ftparchive. Tôi thích cách tiếp cận này vì tôi thấy nó rất nhẹ. Đây là ví dụ chú thích về những gì tôi làm:

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

Bạn cũng cần một cái móc 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

Bây giờ tất cả những gì bạn phải làm là thả các gói vào repo địa phương của bạn và chúng sẽ có sẵn cho pbuilder. Nếu bạn đang cố gắng xây dựng chuỗi các chuỗi phụ thuộc, bạn có thể đặt thư mục kết quả pbuilder làm thư mục repo cục bộ.

Bạn có thể có thể tưởng tượng các biến thể khác về điều này. Chẳng hạn, bạn có thể sử dụng dput với post_upload_command để tạo tệp Gói thay vì sử dụng hook.

Đây trang wiki Debian cũng có thể là hữu ích.


1
Tệp hook cần được gọi D05...(số có hai chữ số) và cần được thực thi. Ngoài ra (ít nhất là khi sử dụng pbuilder-dist) sau khi thêm gói phụ apt-utils bạn phải gọi pbuilder-dist <dist> update --override-configmột lần. Và cũng một lần nữa với pbuilder-dist, bạn cần đặt OTHERMIRROR làm biến môi trường khi nó ghi đè cài đặt tệp cấu hình.
BubuIIC
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.