Đưa ra một gói nguồn debian - Làm cách nào để tôi cài đặt bản dựng?


47

Tôi có một gói nguồn debian (kỹ thuật tốt ubfox), tức là .dsc, .tar.gz, v.v., tôi muốn xây dựng cái này. Các dpkg-buildpackagethất bại, vì tôi không có tất cả việc xây dựng phụ thuộc.

Thông thường tôi sẽ sử dụng apt-get build-dep, nhưng gói này không có trong apt.

Có cách nào 'sạch', 'phù hợp' để cài đặt tất cả các phụ thuộc của bản dựng, được cung cấp một gói nguồn. Tôi biết tôi chỉ có thể mở tệp debian / control, nhưng tôi tò mò liệu có cách nào 'phù hợp' không.

Tôi đã cài đặt build-essentialvà có tất cả các trình biên dịch thông thường, v.v., gói này yêu cầu phần mềm bổ sung.

Câu trả lời:


34

Sử dụng mk-build-depsđó là một phần của devscripts.


12

Dưới đây là một quy trình làm việc ví dụ bằng cách sử dụng đề xuất của ptman.

Giả sử bạn đã tải xuống .dsctệp, .orig.*ztệp và có thể cả .debian.*ztệp, sau đó giải nén gói nguồn bằng:

dpkg-source -x [package_name]_[package_version].dsc

Di chuyển vào thư mục nguồn được trích xuất và chạy:

sudo mk-build-deps -i

Điều này sẽ tạo tập tin [package_name]-build-deps_[version].debvà cài đặt nó, và cũng cài đặt tất cả các phụ thuộc mà nó gợi ý.

Bây giờ bạn sẽ có thể xây dựng gói của bạn từ nguồn:

debuild

Khi bạn kết thúc, bạn có thể dễ dàng loại bỏ các phụ thuộc đã được kéo vào, bằng cách xóa build-depsgói mà bạn đã tạo:

sudo apt-get purge --auto-remove [package_name]-build-deps

2
Bạn cũng có thể vượt qua -rđể sudo mk-build-deps -igỡ bỏ gói sau khi cài đặt nó. Ngoài ra, thay vì xây dựng bằng root, bạn có thể cài đặt bằng root bằng cách sử dụng --root-cmd sudo. Cuối cùng, sử dụngmk-build-deps --install --root-cmd sudo --remove
Lucas

Ngoài ra, bạn có thể cần phải sudo apt install devscripts equivsđầu tiên.
Alba Mendez

9

Trên thực tế tôi có thể sử dụng dpkg-checkbuilddepsmà cho thấy các phụ thuộc xây dựng. Điều đó mang lại cho tôi 99% những gì tôi cần


2
Thật kỳ lạ, tệp packagename-version.dsc chứa các phụ thuộc xây dựng trong dòng bắt đầu bằng chuỗi Build-Depends
quack quixote

6

Tôi thường sử dụng debuildtừ devscriptsđể xây dựng các gói và nếu có liên quan, nó sẽ in một dòng của các bản dựng bị thiếu.

Cách "thích hợp" là sử dụng pbuilderhoặc tương tự sẽ xây dựng gói ở mức tối thiểu chrootvà chỉ cần cài đặt bất kỳ bản dựng bổ sung nào theo quy định của gói, điều này cũng loại bỏ một loạt các vấn đề tiềm ẩn khác (cài đặt cục bộ các thư viện không đóng gói ví dụ).


-6

Thử:

apt-get install build-essential

Tôi đã cài đặt bản dựng. Gói này yêu cầu phần mềm bổ sung.
Rory

Và nó không giải thích những gì đòi hỏi? có lẽ libncurses-dev cũng có.
Lanselot

1
Đó không phải là vấn đề; tất nhiên là thế. Vấn đề là có một lệnh thực sự cài đặt các phụ thuộc, không phải là lệnh chỉ hiển thị chúng.
Matthias Urlichs
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.