Biên dịch nguồn thành gói DEB


34

Tôi luôn gặp sự cố khi cài đặt và gỡ bỏ phần mềm đã biên dịch, vì vậy tôi đã quyết định tôi muốn xây dựng phần mềm từ nguồn thành gói .deb để cài đặt / gỡ bỏ dễ dàng hơn.

Tôi muốn biết một cách dễ dàng và ngắn gọn để xây dựng nguồn thành gói .deb, với tư cách là người dùng cuối .

Tôi đã thử:

  • ubucompilator , mà không làm việc cho tôi
  • Đây là cách hướng dẫn, nhưng tôi thấy nó quá dài

1
Ubucompilator là một dự án thú vị và tôi hoan nghênh những nỗ lực của họ cho đến nay. Tuy nhiên, như bạn đã khám phá, nó chỉ cung cấp giao diện người dùng GUI cho bốn hoặc năm lệnh cấp thấp. Và, KHÔNG, bạn không thể sử dụng nó để dễ dàng tạo gói '.deb' thích hợp.
david6

Câu trả lời:


47

checkinstall thực hiện những gì bạn muốn đạt được: nó sẽ giám sát những tập tin nào được cài đặt và đưa chúng vào một gói .deb, sau đó có thể được cài đặt và gỡ bỏ

Cài đặt nó với

apt-get install checkinstall

sau đó bạn thực hiện cài đặt bình thường từ quy trình nguồn, thay thế 'sudo make install' bằng 'sudo checkinstall':

  ./configure
  make
  sudo checkinstall

Tham khảo: https://help.ubfox.com/community/CheckInstall


9

Chúng tôi có một Hướng dẫn đóng gói thực sự tốt có một phần về chủ đề của các gói mới .


1
Tôi đề nghị liên kết này, vì nó chứa tất cả thông tin mà ai đó sẽ cần. Ngoài ra, nếu có bất kỳ câu hỏi cụ thể nào, tôi có thể giúp đỡ họ, nhưng không giải thích toàn bộ quy trình tạo gói debian từ nguồn.
Thomas Ward

@ppumkin: đã cập nhật.
tumbleweed

6

Tôi đã sử dụng make checkinstalllệnh nhiều lần để tạo một .debgói trên một máy sẽ được cài đặt trên các máy chủ khác của tôi. Đây là một cách nhanh chóng để cài đặt phiên bản Beta. Nó hoạt động, nhưng nên được sử dụng một cách thận trọng. Có những cạm bẫy cho người dùng không hiểu nhiều chức năng của .debgói.

Tôi có hai mươi máy chủ sử dụng cùng các ứng dụng được phát triển tại nhà. Thêm hỗ trợ xây dựng và trình biên dịch cho mỗi máy chủ không khó.

Nhập các lệnh để tải xuống và biên dịch một phiên bản mới hai mươi lần là tốn thời gian. Cách khác là tải lên một tập lệnh để thực hiện tác vụ và sau đó thực thi tập lệnh. Nhưng nó thường dễ dàng hơn để cập nhật các ứng dụng bằng cách sử dụng .debtệp được tạo bằng checkinstall.


0

Nhiệm vụ đóng gói một số mã phần mềm ngẫu nhiên vào một .deb là một công việc khá phức tạp nếu phần mềm chưa xuất hiện ở dạng đó, đặc biệt là so với chỉ thực hiện, thực hiện cài đặt. Nếu bạn muốn mọi thứ đơn giản hơn, tôi nghĩ bạn đang đi sai hướng.

Tôi không nói rằng bạn không thể làm điều đó - Các nhà phát triển Debian làm điều đó rất nhiều. Nhưng nó không giống như cách đơn giản nhất để làm những gì bạn muốn.

Có lẽ bạn nên tập trung hơn vào việc học cách biên dịch và cài đặt phần mềm từ nguồn "hoạt động". Có lợi cho bạn là thực tế là mọi thứ bạn tự cài đặt sẽ kết thúc bằng / usr / local


cảm ơn vì sự ngăn chặn, nhưng tôi đã biết về việc biên dịch phần mềm, tôi đã làm yên lặng một số trong số chúng được biên dịch trên hệ thống của tôi. Điều duy nhất tôi thấy khó khăn là nâng cấp hoặc loại bỏ chúng. Vì vậy, mặc dù một tệp deb sẽ hữu ích hơn
Ashu

Lý do một gói gỡ lỗi có thể tự nâng cấp hoặc gỡ bỏ một cách trơn tru là vì ai đó có các tập lệnh được viết một cách tỉ mỉ làm điều này, cho mỗi gói. Ngoài ra, họ đã phải thêm rất nhiều siêu dữ liệu mô tả khác mà dpkg có thể sử dụng để xác định các tệp nào. Bạn sẽ có công việc của bạn cắt ra cho bạn.
thomasrutter

1
Thật ra, chỉ cần đi với câu trả lời của Floyd. Nó trông giống như một giải pháp tốt hơn về tổng thể, nếu nó thực sự làm những gì nó nói!
thomasrutter

Vâng Giải pháp của Floyd là tuyệt vời. Đặc biệt là bây giờ, nó vô cùng trưởng thành. Bây giờ tôi không phải xây dựng từ nguồn trên hàng tấn máy chủ. :)
Jack_Hu
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.