Tôi có thể xây dựng lại một gói mà không cần biên dịch lại nguồn không?


18

Tôi đang xây dựng một .deb mới và muốn sửa lỗi lintian trong bao bì. Tuy nhiên, mỗi khi tôi xây dựng lại, tệp quy tắc sẽ thực hiện 'làm sạch' và do đó bắt đầu biên dịch lại.

Có cách nào để hướng dẫn quy trình xây dựng mà tôi không muốn biên dịch lại, rằng tôi chỉ thay đổi bao bì và sử dụng bộ nhị phân cuối cùng sẽ ổn ngay bây giờ?

Câu trả lời:


26

Điều đó phụ thuộc vào cách bạn xây dựng gói. dpkg-buildpackagekhông gọi cleanmục tiêu nếu bạn vượt qua nó -nctùy chọn. Một tùy chọn hữu ích khác để xây dựng thử nghiệm là -uc(không ký vào tệp thay đổi). debuildkế thừa các tùy chọn này từ dpkg-buildpackage.

Đối với bản dựng thử nghiệm, bạn chỉ cần thực hiện fakeroot debian/rules binary(điều chỉnh mục tiêu cho phù hợp với gói nhiều nhị phân).


8

Sử dụng ccache, bạn có thể xây dựng gói như bình thường mà không thực sự biên dịch lại các tệp nguồn không thay đổi.

ccache hoạt động bằng cách lưu trữ các kết quả cũ của các phần tổng hợp và chỉ xây dựng lại nếu nguồn thực sự thay đổi.

debuild --prepend-path=/usr/lib/ccache --preserve-envvars=CCACHE_*

2
Tôi đã nhận dpkg-buildpackage: unknown option or argument --preserve-envvars=CCACHE_*nhưng tôi đã loại bỏ tùy chọn đó, dường như hoạt động tốt mà không có nó
Dave Butler
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.