У меня есть репозиторий apt, использующий сервер apache по адресу /var/www/organization.org/.
файловая структура
.
+- Освобождение
+- расст/
+- стабильный/
| +- основной/
| | +- двоичный-все/
| | | +- Пакеты.gz
| | | +- package1.deb
| | | +- package2.deb
| | +-бинарный-amd64/
| | | +- Пакеты.gz
| | | +- package1.deb
| | | +- package2.deb
| | +-бинарный-arm64/
| | | +- Пакеты.gz
| | | +- package1.deb
| | | +- package2.deb
| +- вклад/
| | +- [...]
| +- несвободный/
| | +- [...]
+- тестирование/
+- [...]
+- нестабильный/
+- [...]
И у меня есть это в моем source.list
deb http://server_url стабильный основной вклад платный
Когда я бегу
судо подходящее обновление
, дела идут гладко.
Когда я делаю sudo apt установить имя_пакета
, он не может найти ни одного пакета.
Оказывается, в Выпускать
файл, он использует этот путь Имя файла: /var/www/organization.org/binary-all/package_name.deb (отсутствует dists/stable/main).
Поэтому, когда я добавляю символические ссылки, подобные этому двоичный-все -> дистрибутивы/стабильный/основной/двоичный-все/
, у меня нет проблем с установкой пакетов. Так что все работает, но это хак, который не позволяет реально работать с папками нестабильного/ и тестирования/, потому что симлинки находятся в корне, кроме Release и dists/.
Это сценарий, который я использую для создания Packages.gz и файла Release, который может быть уместным.
#!/бин/баш
APT_REPO_DIR=/var/www/organization.org/
DISTS_DIR=$APT_REPO_DIR/расстояния
ЖЕЛТЫЙ='\033[1;33м'
СИНИЙ='\033[1;34м'
NO_COLOR='\033[0m'
пушд дист
для каталога_стабильности в */; do # Обычно называется: стабильный, нестабильный, тестируемый
echo -e "Индексирование каталогов в ${YELLOW}$stability_directory${NO_COLOR}"
pushd $ каталог_стабильности
для license_directory в */; do # Обычно называется: main, contrib, non-free
echo -e "Индексирование ${BLUE}$license_directory${NO_COLOR}"
pushd $license_directory
для бинарного_каталога в `find binary-* -type d`; do # двоичный-amd64, двоичный-arm64...
dpkg-scanpackages $binary_directory | gzip -9c > $binary_directory/Packages.gz
сделано
попд
сделано
попд
сделано
попд
dpkg-scanpackages $APT_REPO_DIR | Тройник $APT_REPO_DIR/Release > /dev/null