Удачно опубликовать снимок операция не разрешена

Я пытаюсь создать локальное зеркало репозитория Ubuntu, используя aptly, и у меня возникает ошибка "операция не разрешена" в момент публикации. Вот что я делаю;

Я создал 3 зеркала

$ aptly mirror create -with-udebs xenial \
http://archive.ubuntu.com/ubuntu xenial main universe multiverse

$ aptly mirror create -with-udebs xenial-updates \
http://archive.ubuntu.com/ubuntu xenial-updates main universe multiverse

$ aptly mirror create -with-udebs xenial-security \
http://archive.ubuntu.com/ubuntu  xenial-security main universe multiverse

$ aptly mirror update xenial
$ aptly mirror update xenial-updates
$ aptly mirror update xenial-security

создано 3 снимка

$ aptly snapshot create snap-xenial          from mirror xenial
$ aptly snapshot create snap-xenial-updates  from mirror xenial-updates
$ aptly snapshot create snap-xenial-security from mirror xenial-security

слил их

$ aptly snapshot merge snap-merged snap-xenial snap-xenial-updates snap-xenial-security

и теперь я хочу опубликовать, где я попал в ошибку

$ aptly publish snapshot -distribution=xenial snap-merged
Loading packages...
Generating metadata files and linking package files...
ERROR: unable to publish: unable to process packages: link /media/user/usbdrive/aplty/full/pool/00/6f/a3e766cc601510d78861ac2f15d2_0ad_0.0.20-1_amd64.deb /media/user/usbdrive/aplty/full/public/pool/main/0/0ad/0ad_0.0.20-1_amd64.deb: operation not permitted

Мой файл.aptly.conf выглядит так

{
  "rootDir": "/media/user/usbdrive/aplty/full",
  "downloadConcurrency": 4,
  "downloadSpeedLimit": 0,
  "architectures": ["amd64"],
  "dependencyFollowSuggests": false,
  "dependencyFollowRecommends": false,
  "dependencyFollowAllVariants": false,
  "dependencyFollowSource": false,
  "dependencyVerboseResolve": false,
  "gpgDisableSign": false,
  "gpgDisableVerify": false,
  "gpgProvider": "gpg",
  "downloadSourcePackages": false,
  "skipLegacyPool": true,
  "ppaDistributorID": "ubuntu",
  "ppaCodename": "",
  "skipContentsPublishing": false,
  "FileSystemPublishEndpoints": {},
  "S3PublishEndpoints": {},
  "SwiftPublishEndpoints": {}
}

Я посмотрел разрешения на каталоги, и они выглядят хорошо

 $ ls -al /media/user/usbdrive/aplty/full/public/pool/main/0/0ad/
 total 64
 drwxr-xr-x 2 user user 32768 Aug 19 20:29 .
 drwxr-xr-x 3 user user 32768 Aug 19 20:29 ..

Я на Ubuntu 16.04, и я использую внешний диск с разделом fat32 над Thunderbolt3 для хранения файлов. И я знаю, что на пути есть подходящая опечатка, но я не верю, что это проблема.

Я был бы очень признателен за некоторые советы о том, что я делаю неправильно или как еще отладить это. Благодарю.

1 ответ

Решение

aptly по умолчанию использует жесткие ссылки при публикации репозиториев: он жестко связывает файлы в пуле пакетов (кеш для всех файлов пакетов) с местоположением в каталоге public/,

FAT32 не поддерживает жесткие ссылки, поэтому публикация завершается с ошибкой. Я бы порекомендовал использовать некоторые файловые системы Unix для лучшей эффективности, но если это невозможно, вы можете настроить другую конечную точку публикации с помощью copy метод link, который копирует файлы (поэтому каждый опубликованный репозиторий занимает дополнительное место), но он должен работать на FAT32.

Другие вопросы по тегам