Tôi có một kho lưu trữ apt sử dụng máy chủ apache tại /var/www/organization.org/
cấu trúc tập tin là
.
+- Phát hành
+- dist/
+-ổn định/
| +-chính/
| | +- nhị phân-tất cả/
| | | +- Gói.gz
| | | +- gói1.deb
| | | +- gói2.deb
| | +- nhị phân-amd64/
| | | +- Gói.gz
| | | +- gói1.deb
| | | +- gói2.deb
| | +- nhị phân-arm64/
| | | +- Gói.gz
| | | +- gói1.deb
| | | +- gói2.deb
| +- đóng góp/
| | +- [...]
| +- không miễn phí/
| | +- [...]
+- thử nghiệm/
+- [...]
+- không ổn định/
+- [...]
Và tôi có cái này trong source.list của mình
deb http://server_url đóng góp chính ổn định không miễn phí
Khi tôi chạy
cập nhật sudo apt
, mọi việc diễn ra suôn sẻ.
Khi tôi làm Sudo apt cài đặt gói_name
, nó không thể tìm thấy bất kỳ gói nào.
Nó chỉ ra rằng trong Giải phóng
tệp, nó sử dụng đường dẫn này Tên tệp: /var/www/organization.org/binary-all/package_name.deb (thiếu dist/stable/main).
Vì vậy, khi tôi thêm một liên kết tượng trưng như thế này nhị phân-tất cả -> dist/ổn định/chính/nhị phân-tất cả/
, Tôi không gặp vấn đề gì khi cài đặt các gói. Vì vậy, mọi thứ đều hoạt động, nhưng đây là một bản hack ngăn cản thực sự hoạt động với các thư mục không ổn định/ và thử nghiệm/ vì các liên kết tượng trưng nằm ở thư mục gốc bên cạnh Bản phát hành và dist/.
Đây là tập lệnh mà tôi sử dụng để tạo Packages.gz và tệp Phát hành, có thể có liên quan.
#!/bin/bash
APT_REPO_DIR=/var/www/organization.org/
DISTS_DIR=$APT_REPO_DIR/dists
VÀNG='\033[1;33m'
MÀU XANH DƯƠNG='\033[1;34m'
NO_COLOR='\033[0m'
pushd dists
cho stable_directory trong */; làm # Thường được gọi là: ổn định, không ổn định, thử nghiệm
echo -e "Lập chỉ mục thư mục dưới ${YELLOW}$stability_directory${NO_COLOR}"
đẩy $stable_directory
cho license_directory trong */; làm # Thường được gọi là: chính, đóng góp, không miễn phí
echo -e "Lập chỉ mục ${BLUE}$license_directory${NO_COLOR}"
đẩy $license_directory
cho thư mục nhị phân trong `tìm nhị phân-* -type d`; làm # nhị phân-amd64, nhị phân-arm64...
dpkg-scanpackages $binary_directory | gzip -9c > $binary_directory/Packages.gz
xong
popd
xong
popd
xong
popd
dpkg-scangói $APT_REPO_DIR | tee $APT_REPO_DIR/Phát hành > /dev/null