Làm cách nào để sao chép gói từ Debian sang PPA của tôi?


10

Tôi muốn thêm gói người sành ăn mới nhất từ Debian sid vào PPA của nhóm chúng tôi để người dùng Ubuntu muốn chạy phiên bản Gourmet cập nhật có thể thêm PPA đó vào nguồn phần mềm của họ. (Phụ thuộc khôn ngoan, đó không phải là vấn đề vì hầu như tất cả các phụ thuộc hiện tại của chúng tôi đều có sẵn trong tất cả các phiên bản Ubuntu hiện được hỗ trợ.)

Tôi đã tải xuống *.dsctệp và debian và orig tarball, và thậm chí nhận ra rằng tôi có thể sử dụng tệp này cho source.changestệp của gói . Tôi cũng đã tải xuống khóa chung của người bảo trì Debian để dputcó thể xác thực gói. Sau đó, tôi đã cố gắng tải gói lên PPA của chúng tôi bằng cách sử dụng dput ppa:~gourmet/ppa gourmet_0.17.3-1_source.changes(Tôi cũng đã thử mà không có tilda.) Điều này dường như thành công, nhưng tôi đã không nhận được email xác nhận và hiện tại không có gói nào được hiển thị tại PPA của chúng tôi , điều đó khiến tôi tin rằng rằng gói bị từ chối vì khóa của người bảo trì Debian rõ ràng không nằm trong số các khóa của thành viên nhóm chúng tôi.

Vậy cách dễ nhất để "sao chép" một gói từ Debian (sid) sang Launchpad PPA là gì? Tôi có thực sự cần phải xây dựng lại toàn bộ gói cục bộ trước khi tôi có thể tải nó lên không?


BTW, vì phiên bản phát triển Ubuntu tự động đồng bộ hóa các gói của nó từ Debian (trước đó là DebianImportFreeze), tôi sẽ vui vẻ chấp nhận câu trả lời cho tôi biết cách sao chép gói từ Utopic.
Bernhard Reiter

Câu trả lời:


12

Bạn cần phải xây dựng lại gói nguồn cục bộ trước khi tải lên để điều chỉnh nhật ký thay đổi và tạo lại tệp thay đổi. Mặc dù việc backport một gói là một nhiệm vụ khá phổ biến, điều này đã được viết theo kịch bản. Kiểm tra các backportpackage Biểu tượng tranglệnh ubuntu-dev-công cụCài đặt công cụ ubfox-dev gói.

Để backport một gói từ Debian, chỉ cần cung cấp chuỗi phân phối đích, PPA và tệp dsc cho gói:

backportpackage -d trusty -u ppa:gourmet/ppa http://ftp.de.debian.org/debian/pool/main/g/gourmet/gourmet_0.17.3-1.dsc

Thậm chí còn đơn giản hơn khi nhập một gói từ bản phát hành Ubuntu này sang bản khác vì bạn không cần tìm tệp dsc. Hãy nói rằng chúng tôi muốn chuyển từ không tưởng sang đáng tin cậy:

backportpackage -s utopic -d trusty -u ppa:gourmet/ppa gourmet

Tuyệt vời! Điều duy nhất trông giống như một lỗi đối với tôi là gói đã kết thúc trong PPA cá nhân của tôi (~ ockham-razor / ppa) mặc dù tôi đã chuyển qua ~gourmet/ppalàm đối số cho -utham số. (Nhưng may mắn thay tôi đã có thể sao chép nó từ PPA của mình sang nhóm Gourmet qua Launchpad.)
Bernhard Reiter

1

Có một số cách để làm điều này.

Khi tôi làm điều này cho Rhybeatbox, tôi đã làm theo các công thức sau:

a. Lấy tệp nguồn và các tệp debian

nhập mô tả hình ảnh ở đây

b. Giải nén nguồn (.orig.tar.xz)

c. đổi tên thư mục nguồn giống nhưrhythmbox-3.0.3

c. giải nén tệp debian (.debian.tar.xz)

d. di chuyển thư mục debian trong thư mục nguồn

e. dch -iđể thay đổi tập tin thay đổi

f. thay đổi tên gói "không ổn định" thành tên của mục tiêu ubfox - ở đây tôi đã sử dụng chính xác cho 12.04. Thay đổi phiên bản phù hợp với ứng dụng của bạn. Ở đây nhịp điệu là 3.0.3 - vì vậy tôi vừa thêm-1~ppafossfreedom

rhythmbox (3.0.3-1~ppafossfreedom) precise; urgency=low

  * rebuild

 -- fossfreedom <fossfreedom@somewheremail.com>  Thur, 07 Jun 2012 13:19:18 +0100

g. tạo một gói nguồn mới:dh_build --createorig

h. Xây dựng chỉ nguồn với chìa khóa của bạn: debuild -S -k0xABCDEFGnơi ABCDEFGlà chìa khóa của bạn

Tôi. tải lên gói của bạn để xây dựng:

cd ..
dput ppa:fossfreedom/rhythmbox rhythmbox_3.0.3-1_sources.changes    

Vâng, về cơ bản là xây dựng lại gói. Ồ tốt Tôi đã hy vọng cho một cách dễ dàng hơn, nhưng tôi đoán không có cách nào.
Bernhard Reiter

Hãy xem dgetlệnh từ devscriptsgói. Nó sẽ đơn giản hóa điều này khá nhiều.
andrews Something

@andrews Something - biến điều đó thành một câu trả lời với một ví dụ :) - Tôi sẽ quan tâm xem liệu điều đó có thể đơn giản hóa bao bì của tôi không.
fossfreedom

Vâng, tôi có một câu trả lời hoàn toàn khác, nhưng bạn vẫn nên tìm hiểu về dget=) Tệp dsc chứa tất cả thông tin về các phần khác của gói nguồn. Vì vậy, dgetsẽ lấy tất cả mọi thứ và giải nén nó một cách chính xác nếu bạn cung cấp cho nó một liên kết đến tập tin dsc. dget -ux http://http.debian.net/debian/pool/main/r/rhythmbox/rhythmbox_3.0.3-1.dsc
andrews Something

câu trả lời gọn gàng - thực hiện tốt +1
fossfreedom
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.