Как использовать определенный репозиторий apt
Я пытаюсь установить пакет imagemagick из своего собственного репозитория. Вот мой шаг за шагом:
Я создал репозиторий apt, используя утилиту prespro с conf:
Origin: custom-repo.s3.amazonaws.com
Label: custom-repo.s3.amazonaws.com
Codename: precise
Components: main
Architectures: i386 amd64
Description: Custom APT Repository
SignWith: 12312312
DebOverride: override.precise
DscOverride: override.precise
На целевом экземпляре я добавил это пользовательское хранилище в /etc/apt/sources.list.d/custom.list:
deb http://custom-repo.s3.amazonaws.com precise main
И изменили настройки APT (/etc/apt/ предпочтения):
Package: *
Pin: release o=custom-repo.s3.amazonaws.com
Pin-Priority: 999
Вот политика APT (после обновления):
imagemagick:
Installed: (none)
Candidate: 8:6.6.9.7-5ubuntu3.3
Version table:
8:6.6.9.7-5ubuntu3.3 0
500 http://archive.ubuntu.com/ubuntu/ precise-updates/main amd64 Packages
500 http://security.ubuntu.com/ubuntu/ precise-security/main amd64 Packages
999 http://custom-repo.s3.amazonaws.com/ precise/main amd64 Packages
8:6.6.9.7-5ubuntu3 0
500 http://archive.ubuntu.com/ubuntu/ precise/main amd64 Packages
Сейчас я пытаюсь установить пакет imagemagick из своего собственного репозитория (но он устанавливается с archive.ubuntu.com):
apt-get install imagemagick
Reading package lists... Done
Building dependency tree
Reading state information... Done
Suggested packages:
imagemagick-doc autotrace cups-bsd lpr lprng enscript ffmpeg gimp gnuplot grads hp2xx html2ps libwmf-bin mplayer povray radiance sane-utils texlive-base-bin transfig xdg-utils ufraw-batch
The following NEW packages will be installed:
imagemagick
0 upgraded, 1 newly installed, 0 to remove and 2 not upgraded.
Need to get 49.2 kB of archives.
After this operation, 213 kB of additional disk space will be used.
Get:1 http://archive.ubuntu.com/ubuntu/ precise-updates/main imagemagick amd64 8:6.6.9.7-5ubuntu3.3 [49.2 kB]
Fetched 49.2 kB in 0s (96.8 kB/s)
Selecting previously unselected package imagemagick.
(Reading database ... 94215 files and directories currently installed.)
Unpacking imagemagick (from .../imagemagick_8%3a6.6.9.7-5ubuntu3.3_amd64.deb) ...
Processing triggers for man-db ...
Setting up imagemagick (8:6.6.9.7-5ubuntu3.3) ...
1 ответ
Я думаю, что короткий ответ: apt выбирает версии пакетов, а не репозитории.
apt_preferences (1) говорит, что apt "установит версию с наивысшим приоритетом", что она и делает. Но это не означает, что он будет установлен из хранилища с самым высоким приоритетом. Это может быть просто выбор первого репозитория в своем списке, который имеет эту версию.
Насколько известно apt, версия пакета в вашем хранилище и archive.ubuntu.com совпадают, так как они имеют одинаковые номера версий. Если они одинаковые, то на самом деле проблем нет, за исключением того, что вы не можете протестировать свой репозиторий. Если они не совпадают, значит, у вас проблема с упаковкой, и вам следует изменить номер версии в вашем пакете.
Если вы хотите заставить apt использовать свой репозиторий для его тестирования, вы можете попытаться увеличить Pin-Priority для imagemagick до 1000. Это вызывает другую логику в apt, которая вынуждает его понижать пакет, и это может Заставь его выбрать свой репозиторий. Или установите другую версию пакета в своем хранилище и посмотрите, выберет ли apt правильную версию.