Bạn cần xem https://wiki.debian.org/Packaging - hướng dẫn đóng gói ở đó sẽ giúp bạn rất nhiều, cũng như các phần của hướng dẫn bảo trì mới.
Đối với câu hỏi của bạn, theo thứ tự:
Kho chứa tập tin "danh sách". Ví dụ: http://http.us.debian.org/debian/dists/stretch/main/binary-amd64/Packages.xz . apt-get update
tải về các tập tin danh sách này, và lưu trữ chúng trong /var/lib/apt/lists
. Các tệp danh sách liệt kê tất cả các gói bao gồm một loạt siêu dữ liệu và một URL tương đối để tìm .deb tại. (Chúng là các tệp văn bản thuần có thể đọc được của con người, vì vậy bạn chỉ cần nhìn vào nó).
Hệ điều hành không thành vấn đề. Bạn có thể lưu trữ nó trên Windows, nếu bạn muốn. (Chà, bạn có thể gặp rắc rối với tên tệp mà Windows không thích.) (Xem thêm # 4 và # 5).
Vâng, nó nằm trong tệp deb. Một tập tin deb thực sự là một kho lưu trữ (sử dụng ar
). Bên trong là một số tập tin tar; một trong số đó là (về cơ bản) được trích xuất ra /
.
Đó chỉ là HTTP (hoặc HTTPS hoặc FTP hoặc ... apt-get hỗ trợ rất nhiều giao thức). Không có gì đặc biệt, mặc dù. Lưu ý rằng có các tệp Phát hành, được ký bằng gpg, đảm bảo tính toàn vẹn ngay cả với HTTPS. Gương Debian chủ yếu sử dụng HTTP, không phải HTTP. (Một vài HTTPS hỗ trợ để bảo mật).
Nó chỉ là một hệ thống tập tin có cấu trúc.
Tổng quan nhanh, cấp cao về cách apt-get tương tác với nguồn gói:
Bạn định cấu hình các nguồn cần xem trong tệp nguồn.list của bạn. Hãy xem xét một dòng như:
deb http://http.us.debian.org/debian/ stretch main
deb
cho biết đây là nguồn cho các tệp geb .deb (binary); sau đó là tiền tố URL, bộ / phát hành ("kéo dài") và thành phần ("chính").
apt-get có một danh sách các kiến trúc, nó lấy từ dpkg. Hãy nói dpkg --print-architecture
là amd64
. apt-get hiện có thể xây dựng các URL mà nó thực sự sẽ tải xuống từ đó, bằng cách kết hợp tiền tố URL, từ "dists", bộ, thành phần và kiến trúc. Sau đó, nó xử lý một số tên tệp cố định, như "Gói.xz". Điều đó cung cấp cho URL ở trên (trong # 1). Có thêm một vài tệp có tên / đường dẫn được xác định, như tệp Phát hành http://http.us.debian.org/debian/dists/stretch/Release và chữ ký của nó (tương tự, với .gpg được thêm vào). Đây là tất cả các tệp văn bản thuần túy (có thể được nén). Tệp phát hành chứa tổng kiểm tra cho các tệp khác mà apt-get sẽ tải xuống, như Gói.xz.
Tệp Gói.xz liệt kê tất cả các gói trong bộ / tên mã / kiến trúc đó. Nó cũng đưa ra đường dẫn nơi tập tin đó được đặt; ví dụ pool/main/0/0ad/0ad_0.0.21-2_amd64.deb
.
Khi bạn yêu cầu apt-get tải xuống gói, nó sử dụng vị trí đó + URL cơ sở để tải xuống gói, vì vậy gói đó có tại http://http.us.debian.org/debian/pool/main/0/0ad /0ad_0.0.21-2_amd64.deb
Các thư mục thú vị khác là source
thay vì binary-amd64
. Điều đó được sử dụng cho các deb-src
mục của bạn ; nó chứa thông tin về các gói nguồn (và mặt khác khá giống nhau).
Có một số thứ khác (tất cả đều là tùy chọn, tôi tin) có thể là một phần của kho lưu trữ (nghĩa là có sẵn qua HTTP): khác nhau giữa các phiên bản khác nhau của tệp Gói.xz; bản dịch mô tả gói, danh sách đầy đủ của mọi tệp có thể cài đặt và gói đó thuộc về (Nội dung-amd64.gz, được sử dụng bởi ví dụ: tệp apt, không phải bởi apt-get), v.v. nhưng bạn có thể thấy tất cả chúng bằng cách duyệt qua http://http.us.debian.org/debian/dists/stretch/ ; hầu hết trong số chúng là các tệp văn bản đơn giản.
Tất cả các tập tin này là văn bản đơn giản. Về lý thuyết, chúng có thể được tạo ra bằng tay. Trong thực tế, mọi người đều sử dụng một trong những công cụ tạo kho lưu trữ này . Ở đây, và tôi cảnh báo đây là một lựa chọn đã được đưa ra từ lâu, vì vậy có thể đã lỗi thời, chúng tôi sử dụng mini-dinstall. Đầu ra của những công cụ đó là các tệp thông thường hoặc tệ nhất là các liên kết tượng trưng. Bạn có thể đồng bộ hóa chúng với bất kỳ máy chủ web nào bạn muốn.