Tôi muốn có thể tạo một gói không chứa bất kỳ mã hoặc chương trình nào, nhưng thay vào đó cài đặt các gói khác tồn tại trong kho trên máy tính, cách thức ubuntu-restricted-extras
gói đó hoạt động?
Tôi muốn có thể tạo một gói không chứa bất kỳ mã hoặc chương trình nào, nhưng thay vào đó cài đặt các gói khác tồn tại trong kho trên máy tính, cách thức ubuntu-restricted-extras
gói đó hoạt động?
Câu trả lời:
Một gói meta như thế này có thể được tạo bằng một công cụ được gọi là equivs
sẽ tạo ra một gói chỉ với thông tin phụ thuộc.
Đầu tiên, tạo một thư mục:
mkdir my-metapackage
cd my-metapackage/
Bây giờ chạy chương trình:
equivs-control ns-control
Nó sẽ tạo một tệp gọi là ns-control
, mở tệp này bằng trình soạn thảo văn bản của bạn. Tệp điều khiển mà bạn tạo nên được sửa đổi Depends
hoặc Recommends
dòng của nó để phụ thuộc vào các gói bạn muốn cài đặt:
Section: misc
Priority: optional
Standards-Version: 3.9.1
Package: my-metapackage
Version: 1.0
Depends: openssh-server, gedit
Description: This package installes an ssh server and a text editor
The Long description of this package ends with a newline!
(Chỉ là một ví dụ, bạn nên bao gồm thêm thông tin)
Và cuối cùng, xây dựng gói bằng cách chạy
equivs-build ns-control
Gói của bạn được đặt tại my-metapackage/my-metapackage_1.0_all.deb
.
Nếu bạn cũng muốn tạo một gói nguồn, --full
tùy chọn có thể được chuyển đến equivs-build
, ví dụ equivs-build --full ns-control
. Điều này sẽ sử dụng debuild và cũng tạo các tệp .dsc & .tar.gz.
Để tạo tệp .changes nguồn mà bạn có thể tải lên PPA, giải nén & xây dựng gói nguồn với
dpkg-source -x my-metapackage_1.0.dsc
cd my-metapackage-1.0
debuild -S
Nếu Bảo trì mà bạn đặt trong điều khiển ns khớp với khóa GPG của bạn, thì nó sẽ tạo và ký vào tệp my-metapackage_1.0_source.changes để bạn chuyển sang PPA của bạn
~/.devscripts
tệp và xác định cụ thể một khóa GPG khác để sử dụng trong tệp devscripts, nó sẽ QUÁ TRÌNH quá trình dpkg / debuild và có nó sử dụng khóa GPG cụ thể được chỉ định trong .devscripts
. Cũng như một điểm đáng chú ý cho câu cuối cùng trong câu trả lời của bạn
Depends:
giúp cài đặt tốt nếu và chỉ khi các gói ở đó; nó không cài đặt chúng nếu chúng không có trên máy của tôi. Để cài đặt chúng, tôi đã sử dụng Provides
thay thế và nó hoạt động như một bùa mê. Xem mã của tôi (chỉ thay đổi nó): github.com/palladius/debian-packages/blob/master/ mẹo