Điểm:4

Tôi có thể cài đặt apt ./meta-pkg_1.0_all.deb sẽ phụ thuộc vào .deb cục bộ không?

lá cờ us

Tôi có một số gói .deb tôi tạo và cài đặt:

  • pkg1_1.0_all.deb
  • pkg2_1.0_all.deb
  • pkg3_1.0_all.deb

Tôi có thể cài đặt chúng bằng cách sử dụng sudo dpkg -i pkg1_1.0_all.deb.

Bây giờ tôi muốn tạo một gói meta phụ thuộc vào tất cả chúng, cho phép tôi chỉ cài đặt sudo dpkg -i meta_1.0_all.deb.

tôi đã sử dụng tương đương để tạo một tệp điều khiển:

Phần: linh tinh
Ưu tiên: tùy chọn
Tiêu chuẩn-Phiên bản: 3.6.2

Đóng gói: bla
Phiên bản: 1.0
phụ thuộc:
Sự miêu tả:
 mô tả dài và thông tin
 .
 đoạn thứ hai

và cài đặt nó.

Sau đó, tôi đã sửa đổi phụ thuộc: phụ thuộc vào một gói đã biết: Phụ thuộc: tmux và cài đặt nó.

Tiếp theo, tôi đã cố gắng phụ thuộc vào các gói tùy chỉnh của mình: Phụ thuộc: pkg1 và bây giờ cài đặt đã bị hỏng:

dpkg: sự cố phụ thuộc ngăn cấu hình của bla:
 bla phụ thuộc vào pkg1; Tuy vậy:
  Gói pkg1 chưa được cài đặt.

đó là điều dễ hiểu, như pkg1 thực sự không được cài đặt.

Tôi đã thêm thư mục cục bộ của mình làm nguồn debian sau đây hướng dẫn (đã thay đổi một điều - đã thêm [đáng tin cậy=có] vào danh sách nguồn tệp deb [đáng tin cậy=có]:... vì vậy nó sẽ hoạt động)

Tôi hy vọng điều này sẽ cho phép tôi sudo apt cài đặt ./meta_1.0_all.deb và nó sẽ tìm thấy gói phụ thuộc trong thư mục hiện tại của tôi, nhưng nó lại bị lỗi với cùng một lỗi.

Tôi có thể làm gì để cho phép người dùng cài đặt một .deb và làm cho nó cài đặt một số gói .deb cục bộ?

lá cờ ru
Nó sẽ không tự động cài đặt các tệp .deb cục bộ không có trong kho lưu trữ. Bạn sẽ phải làm điều đó theo cách thủ công - `apt install bla /local/path/local1.deb /local/path/local2.deb ...` - trừ khi bạn cũng thêm các 'gói cục bộ' này vào máy chủ kho lưu trữ.
CIsForCookies avatar
lá cờ us
@ThomasWard vì vậy nếu chúng được tải lên máy chủ - tôi đã có thể cài đặt một .deb và nhận tất cả, nhưng nếu chúng nằm trong kho lưu trữ cục bộ - tôi không?
user.dz avatar
lá cờ ng
Giải pháp khả thi là kho lưu trữ phẳng/tầm thường, nó có thể chỉ là thư mục cục bộ (không cần máy chủ, nếu không được chia sẻ qua mạng). Xem https://askubfox.com/a/615932/26246
mchid avatar
lá cờ bo
Ngoài ra, ai đó trong [phần nhận xét](https://www.linuxwave.info/2009/04/adding-local-directory-to-apt.html#c2620391824185814815) đã đề cập rằng bạn cần sử dụng `deb file:/home /foo/debs /` thay vì `file:// /home/foo/debs` trên các phiên bản Ubuntu mới hơn.
CIsForCookies avatar
lá cờ us
@mchid thật kỳ lạ. Tôi đã dùng thử trên Ubuntu20.04 và 18.04 với định dạng `file:///` và nó đã hoạt động (trừ khi phiên bản mới hơn là phiên bản mới hơn 20.04)
CIsForCookies avatar
lá cờ us
@user.dz Tôi không chắc sự khác biệt trong giải pháp của bạn là gì (tệp `Release` và `Packages` thực sự tạo ra sự khác biệt ở đây? Tôi cũng có tệp `Packages.gz` của mình và nó không hoạt động như của bạn giải pháp), nhưng nó hoạt động! Nó cho tôi biết gói không thể được xác thực (rõ ràng), nhưng nó không có gì là cũ `có | sudo apt cài đặt ` không xử lý được. Cảm ơn!! (muốn viết nó như một câu trả lời để tôi có thể chấp nhận nó?)
user.dz avatar
lá cờ ng
@CIsForCookies `dpkg` là công cụ cốt lõi nhưng nó không biết về các kho lưu trữ, nó chỉ xử lý các gói `.deb` riêng lẻ. `apt` (hoặc `apt-get`) là công cụ cấp cao hơn xử lý các phụ thuộc gói sau thông qua các kho lưu trữ.Vì vậy, các gói của bạn sẽ được phục vụ thông qua kho lưu trữ (ngay cả khi chỉ là thư mục cục bộ). Bước cuối cùng để khắc phục xác thực, là ký vào tệp Phát hành sau https://wiki.debian.org/SecureApt#Setting_up_a_secure_apt_repository này. Bạn có thể viết câu trả lời phù hợp với bạn, tôi không phiền.
user.dz avatar
lá cờ ng
@CIsForCookies Nhân tiện, Packages.gz có thể không hoạt động do cách repo được khai báo trong sources.list hoặc vị trí của packages.gz không phải là nơi `apt` mong đợi.
mchid avatar
lá cờ bo
Nếu câu trả lời cho [Kho lưu trữ debian nên có bố cục/tệp nào?](https://askubuntu.com/questions/606527/what-layout-files-nên-debian-repository-have) có hiệu quả, chúng ta có thể đóng câu trả lời này dưới dạng bản sao.
nobody avatar
lá cờ gh
đây có phải là https://help.ubuntu.com/community/MetaPackages mà bạn đang tìm kiếm không?
Điểm:3
lá cờ bo

Bạn có thể toàn cầu hóa (sử dụng ký tự đại diện *) lệnh cài đặt:

sudo apt cài đặt ./*.deb

Điều này sẽ chọn tất cả các gói để cài đặt, giống như nó sẽ chọn các gói này từ một kho lưu trữ. Vì tất cả các phần phụ thuộc đều được thỏa mãn với một lệnh duy nhất nên bạn sẽ không gặp vấn đề về phần phụ thuộc.

CIsForCookies avatar
lá cờ us
Tôi thực sự không có phụ thuộc "thực sự". Tôi chỉ muốn tạo gói meta để cho phép một lệnh cài đặt. Với giải pháp của bạn, tôi có thể bỏ qua gói meta đó, nhưng tôi không chắc ký tự đại diện là thứ tôi muốn có

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.