Hướng dẫn đóng gói Debian đơn giản nhất là gì?


150

Tôi đã đi đến wiki Ubuntu nhưng bị lẫn lộn, có quá nhiều cách. Xin vui lòng cho tôi biết một hướng dẫn dễ dàng để đóng gói Debian.


3
Bạn có muốn tạo các gói để sử dụng cho riêng mình, trên một máy tính cụ thể hoặc cho người khác sử dụng không?
andol

1
Ngôn ngữ nào là phần mềm bạn muốn đóng gói?
Umang

4
Tôi có cùng một vấn đề. Hầu hết các hướng dẫn và hướng dẫn bắt đầu với "lấy tarball ngược dòng". Từ thời điểm này, chúng tôi bị mất. Chúng tôi có một điều đơn giản chúng tôi muốn triển khai, không có tarball ngược dòng, không có mã nguồn. nó chỉ là một tập tin chiến tranh, một số tập lệnh và một số tập tin jar. Quả bóng tar ngược dòng là gì và có ai nhìn thấy hướng dẫn KHÔNG sử dụng một hướng dẫn toàn diện (ví dụ: giải quyết các vấn đề của người dùng)
John Little

2
Tôi sẽ tìm một bài tôi đã đăng trên StackOVerflow.

Nếu bạn muốn tạo "gói ảo" (phụ thuộc nhóm với nhau), đáng để xem qua xây dựng đẳng thức
Rolf

Câu trả lời:


103

Đây là một cách tốt để tạo một .debtập tin cơ bản . Nó phù hợp để tạo .debcác tệp để sử dụng cá nhân nhưng không đủ nghiêm ngặt nếu bạn muốn gói được bao gồm trong Debian / Ubuntu - vì bạn nên đọc Hướng dẫn bảo trì mới của Debian và / hoặc Hướng dẫn đóng gói Ubuntu (mà tôi tin rằng bạn ' đã thử rồi).

Một công cụ tốt để kiểm tra sự .debtuân thủ của bạn là lintian(có thể cài đặt từ kho lưu trữ).

Có hai phiên ở đây trong phòng chat Ask Ubuntu.

Khái niệm cơ bản về bao bì trên Ubuntu (Bao bì: Phần 1)

Bao bì Ubuntu cho Launchpad PPA (Bao bì: Phần 2)


Điều này sẽ biên dịch độc đáo những gì cần thiết để bắt đầu với bao bì, nhưng trong HOWTO tôi bỏ lỡ thông tin để đưa biểu tượng ứng dụng vào tệp gỡ lỗi (và không tìm thấy bất cứ điều gì về điều đó ở nơi khác). Bất kỳ gợi ý về cách làm điều đó?
nightcod3r

14

Những phần bạn đang gặp khó khăn với? Mặc dù phức tạp, hướng dẫn có vẻ khá rõ ràng khi tôi đang theo dõi nó.

Tóm tắt nhanh:

  • Trích xuất nguồn .tar.gz
  • Chạy dh_make
  • Chỉnh sửa tập tin debian
  • Chạy debuild

3
Điều làm tôi bối rối là, quá trình này có giống nhau không, bất kể ngôn ngữ nguồn hoặc cấu trúc thư mục?
Seth

9
Mấu chốt là, chúng tôi không có .tar.gz. chúng tôi muốn gói một ứng dụng chúng tôi đã viết. Không có hướng dẫn nào có vẻ bao gồm điều này, tất cả đều bắt đầu với một "tarball ngược dòng" mà chúng ta không có.
John Little

@JohnLittle câu trả lời này có thể hỗ trợ: askubuntu.com/a/27731/5
Nathan Osman

1
Những gì về bao bì dài hạn, lặp đi lặp lại? Tôi có phải luôn luôn làm quá trình đóng gói dài và phức tạp như vậy không?
kravemir

Nếu người dùng không có khóa GPG , debuildsẽ thất bại với " debsign: lỗi gpg xảy ra! Hủy bỏ .... ".
agc

10

Bạn thậm chí có thể sử dụng dpkg-debđể tạo các gói đơn giản.

Đây là một hướng dẫn tốt đẹp từ Ubuntuforums .


5

Cách dễ nhất để gói một cái gì đó là sử dụng checkinstall .


4
checkinstall cung cấp một cách nhanh chóng để xây dựng gói nhị phân debin (.deb) từ phương thức cài đặt nguồn. Tuy nhiên, nó không cung cấp gói debian thích hợp (được xây dựng từ gói nguồn debian).
João Pinto

Người đàn ông OH .. Tôi đã phải sử dụng nó trước khi biên dịch .. đó giống như hàng giờ biên dịch.
Piotr Kula

5

Ban đầu được đăng trên StackOverFlow , hướng dẫn này dành cho phần mềm được biên dịch trước hoặc diễn giải:

Cách xây dựng gói deb đúng cách đang sử dụng dpkg-buildpackagenhưng đôi khi nó hơi phức tạp. Thay vào đó bạn có thể sử dụng dpkg -b <folder>và nó sẽ tạo ra gói Debian của bạn.

Đây là những điều cơ bản để tạo gói Debian dpkg -b <folder>với bất kỳ nhị phân hoặc với bất kỳ loại tập lệnh nào chạy tự động mà không cần biên dịch thủ công (Python, Bash, Pearl, Ruby):

  1. Tạo các tệp và thư mục để tạo lại cấu trúc sau:

    ProgramName-Version/
    ProgramName-Version/DEBIAN
    ProgramName-Version/DEBIAN/control
    ProgramName-Version/usr/
    ProgramName-Version/usr/bin/
    ProgramName-Version/usr/bin/your_script
    

    Các tập lệnh được đặt tại /usr/bin/được gọi trực tiếp từ thiết bị đầu cuối, lưu ý rằng tôi đã không thêm phần mở rộng cho tập lệnh. Ngoài ra, bạn có thể nhận thấy rằng cấu trúc của gói deb sẽ là cấu trúc của chương trình sau khi được cài đặt. Vì vậy, nếu bạn tuân theo logic này nếu chương trình của bạn có một tệp duy nhất, bạn có thể trực tiếp đặt nó bên dưới ProgramName-Version/usr/bin/your_script, nhưng nếu bạn có nhiều tệp, bạn nên đặt chúng bên dưới ProgramName-Version/usr/share/ProgramName/all your filesvà chỉ đặt một tệp bên dưới /usr/bin/sẽ gọi các tập lệnh của bạn từ đó/usr/share/ProgramName/

  2. Thay đổi tất cả các quyền thư mục thành root:

     chown root:root -R /path/to/ProgramName-Version  
    
  3. Thay đổi quyền của tập lệnh:

     chmod 0755 /path/to/the/script
    
  4. Cuối cùng, bạn có thể chạy: dpkg -b /path/to/the/ProgramName-Versionvà gói deb của bạn sẽ được tạo! (Bạn cũng có thể thêm các tập lệnh post / pre inst và mọi thứ bạn muốn, nó hoạt động như một gói Debian bình thường)

Dưới đây là một ví dụ về controltập tin. Bạn chỉ cần sao chép / dán nó vào một tệp trống có tên là "control" và đặt nó vào thư mục DEBIAN.

Package: ProgramName
Version: VERSION
Architecture: all
Maintainer: YOUR NAME <EMAIL>
Depends: python2.7, etc , etc,
Installed-Size: in_kb
Homepage: http://foo.com
Description: Here you can put a one line description.This is the short Description.
 Here you put the long description, indented by 1 space.

3

Không, hướng dẫn đóng gói đơn giản và rõ ràng nhất trên thế giới này là

Đóng gói các ứng dụng Java cho Ubuntu và các Debian khác

Vài ngày trước, đối với ứng dụng đầu tiên của tôi, tôi đã tạo gói DEB bằng cách làm theo hướng dẫn này. Rất rõ ràng và ứng dụng của tôi đóng gói thành công. Vâng, ít nhất nó là đơn giản nhất đối với tôi.

Bạn có thể so sánh nó với Hướng dẫn đóng gói Debian.


3
"Đơn giản" không có nghĩa là "hoàn thành". Có rất nhiều chính sách, hướng dẫn đóng gói .deb cơ bản sẽ không bao gồm các loại chương trình khác nhau, và do đó việc đóng gói không dễ dàng như chỉ là "hướng dẫn đơn giản".
Thomas Ward

chắc chắn đơn giản Nó đã cho tôi bắt đầu và tôi đã có thể tạo gói debian đầu tiên của mình trong vòng vài phút. Vẫn còn rất nhiều chi tiết để giải quyết (các mớ hỗn độn chất lượng gói xấu từ lintian) nhưng điểm khởi đầu tuyệt vời.
atmelino
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.